How Agile Testing Has Evolved
When we wrote the first chapter in our book More Agile Testing: Learning Journeys for the Whole Team, we took a little jaunt down memory lane to the beginning of our own agile testing journeys. In our first Extreme Programming teams, testing supposedly belonged to the customers and the programmers. Testers floundered a bit trying to figure out where they fit. Lisa’s first book, Testing Extreme Programming (co-written with Tip House), attempted to address that issue, but most agile teams still struggled to understand how testers could work with programmers and customers. Meanwhile, various flavors of agile methods such as Scrum gained in popularity, but without a good handle on how to incorporate all types of testing into software delivery.
The very idea of cross-functional teams and frequent delivery struck fear into the hearts of many test managers and QA specialists, and such fear and misconceptions persist to this day. We still hear of agile coaches who say testers aren’t needed, and that thought scares us.
At the same time, many experienced testers felt they already employed an agile approach, embracing change and learning as they tested. They also felt that many of the principles and practices popularized by the agile movement had already been in use for decades.
The evolution of agile testing is quite inclusive. Over the years, agile teams have come to realize the importance of many different types of testing. They’ve learned why they need expert testing practitioners on board. Meanwhile, we testers have discovered that we can learn not only from other testers with various specialties, but from practitioners in other roles such as business analysis and operations.
Guiding Development with Examples
An early insight in the agile world was the idea that we can transform examples of customers’ desired feature behavior into executable tests (checks) above the unit level, which helps programmers know what code to write. Ward Cunningham’s Framework for Integrated Test (FIT) and “Uncle” Bob Martin’s FitNesse were some of the first functional test tools used by agile teams for this purpose.
Over the years following the publication of the Agile Manifesto, Brian Marick, Joshua Kerievsky, Dan North, and Gojko Adzic helped drive the concept of guiding development with examples. The Agile Alliance Functional Test Tools group, led by Jennitta Andrea and Elisabeth Hendrickson, spurred the development of tools and frameworks to make guiding development with customer-facing tests much easier. These days we have the same power tools for automating tests as for writing production code.