This document promotes the website www.GrowingAgile.co.nz and Twitter handle @GrowingAgile, which are owned by Sam Laing. The website and Twitter profile provide information about agile practices and growing agile organizations.
Raise your hands if you said or heard any of the following:
Testing is about:
checking the system
finding bugs
Trying to break the system
Testers are responsible for quality
Testing is a phase after development
Today I am going to show you how agile testing is none of these things
Let’s look at testing as a phase.
How many of you have boards like this with a test column after the dev column?
This is traditional thinking
In agile testing is an activity that takes place THROUGHOUT
It’s just another task.
A great tip is to use different coloured stickies for test tasks and try to get them done first.
Even if you don’t do TDD, get the tester to brainstorm what they are going to test before any code gets written
A great technique is the show me column.
Most teams do code reviews, and usually the last task to get done
Instead review every task, dev and test by showing someone else on the team
Drives shared knowledge, identifiies and fixes issues faster
Bugs are more expensive the later you fix them, using this you can fix them within hours of them being introduced.
Now lets talk about finding bugs
How many of you measure tester performance based on the number of bugs they find
Or how about the number they don’t find that are found in the wild?
Consider this star
Can you work out how many points it has?
Write down your answer
How many of you wrote down something other than 5?
If this was code, we just found a bug
How could we prevent that bug?
What if we told you this was one point, and this was not a point
How many of you would have written down 5.
Asking a few questions before you assumed what we meant would have prevented bugs
By asking questions early, before code is written you can prevent bugs
Focus on making sure the whole team has a shared understanding before any code gets written
Often teams make assumptions in planning. Don’t
Ask even the most stupid questions. If it’s not clear to you, it’s not clear to everyone
Make sure everyone leaves the room with the same picture in their mind
6 month report story
Most testers we know, explain there jobs by saying the check stuff
Does the system work
Does it meet the spec
Does 1 + 1 = 2
You know what’s really good at checking stuff? Computers!
If it’s a simple check – automate it. Free up testers from checking
Best way to automate – testers write test cases, devs write fixture.
Put the two together and you have an functional level test before any code is written.
So if tester’s aren’t checking what should they be doing?
Understanding the user needs, making sure they system that is built will solve a real business need
Do exploratory testing that computers suck at and giving feedback on how the system behaves
Most importantly ask “how can you test it”
People who do TDD know that code written this way is designed to be testable.
Testers should help by asking how can we test this up front.
Many testers are proud of their ability to break stuff
But lets face it broken systems don’t help anyone.
Instead of a blame game between dev and test it’s more useful to collaborate
Testers and developers should be working together to build the best possible system. Not trying to catch each other out.
Tell Maersk Story – if we show you the acceptance tests you might just build a system that makes them pass !
Testers tell developers how you will test it before they build it, chances are they will build it right.
Often testers are seen as the owners of the quality gate
They alone get to say if something is ready for release
Often they seem dead against products being released, mostly because they will be blamed if quality is not good
In agile the whole team is repsonsible
Testers aren’t the last people in the chain anymore, they are just part of a team taking pride in their work
To summarise the agile testing mindset is about:
Testing as an activity not a phase
Prevent bugs rather than finding them
Being a tester give feedback not a checker
Helping to build rather than breaking
The team being responsible for quality not just the tester
We’d like to leave you with my top 3 tips to make your testing more agile
We’ll be around tonight and tomorrow if you have questions