This post is a collage from my answers on Quora.
What is agile testing
Some people refer to “agile testing” as a very different kind. But there are like hundreds of flavors of agile teams. Some differ so much that the whole label of “agile” barely makes sense.
Same with testing. In an extreme, some agile development teams still have an independent QA team alongside, others still have “QA phase”, but they probably call that “agile testing” because they “do agile development”.
The real (ha-ha, I know, “no true Scotsman..”) agile testing becomes enabled when development is done in small increments and the whole team is involved end-to-end. Testing – as an exploration and critical thinking activity it is – becomes capable to contribute in all [intertwined] steps. Typical examples would be –
- Formalizing business requests into “User Stories”; exploring, modeling, and critiquing them.
- Participating in design and code reviews. Testing ideas on the fly, as well as advocating for risk reduction and testability.
- Keeping a systemic view in sight and bringing up risks and concerns.
- And, of course, having ownership of what they test, when they test, and how they test.
There are also some important organizational advantages.
- Agile team has much more decision powers, and that’s applicable to all members, including testers. The potential for influence on requirements, scope, testability,.. is much higher.
- Agile team has much greater ownership of product quality, and that includes negotiation of ship/no ship decisions. Testers, being an integral part of the team, may influence product quality more directly and more strongly.
- Agile team does not pigeonhole people into a single function or role. Testers can participate in design, code reviews, environment management, as well as in coding and administration tasks. They also spread testing attitude across the whole team.
I can’t help but mention a couple of downsides though.
- Being agile tester requires very different mentality than “traditional” QA’s have. Some are capable to become fluid, flexible, adaptive.. others not, for variety of reasons out of scope for this question.
- Being agile tester requires certain maturity and professional seniority. It does require strong people skills and assertive abilities. Not all people are good at that. Additionally, it means that there are no (or at least much less) entry level or junior agile tester positions.
Disclaimer! All said above is my own view based on the experiences working with agile teams, being an agile tester and a test lead. As such, I carved and crafted my role and space (as well as my testers’) to make it what I believe agile testing should be. Other people may have different experiences. We all build our own destiny.
And a little bit about critiquing of agile
Yes, agile development model has problems. Some even say that it’s the worst development model. Sounds familiar, eh? Let me remind you.
Do you know what’s inherently common between agile and democracy? Each team and each country build it their own way. It also depends a lot on the culture, and leaders, and economy, and surrounding situation.
Agile testing is accused in lack of skilled testing and over-reliance on automation. “Traditional”, waterfall testing is accused in lack of skilled testing and over-reliance on scripts.
Maybe it’s time to stop making generalized critique.
Testing is what testers make it to be in every particular context. Agile is no exception.