Updated: Mar 2
Agile testing is a software testing practice based on the values of Agile software development. It’s a continuous process – where the product is developed and tested through the development life cycle rather than sequential (where testing is a separate phase). As part of the Agile testing process, the entire team is responsible for high product quality through collective ownership of all testing aspects.
The Origin of Agile Testing
Although a review of the history seems a bit too academic, I decided to write a few words on it, as I believe that to understand the true meaning of Agile testing, we must know its origin.
“People must know the past to understand the present and face the future.”
- Nellie L. McClung
Agile testing started in the late 1990s. It was originally introduced in an Extreme Programming (“XP”) project named Chrysler Comprehensive Compensation System, also known as C3. This project replaced the payroll application with a single system with no user interface (it uses files to read employee statistics that were analyzed and sent to a print vendor to process deposits).
The C3 project is an important milestone from an Agile perspective as it became famous as the ‘birth project” of XP. Under the leadership of Kent Beck (who took ownership of the project after it failed to reach a stable state), it became the first real project to embrace all the practices that are now known as Extreme Programming.
The C3 project had no separated testing groups. Instead, the testing was conducted by the same group. They created Test-Driven Development (TDD) from the different XP principles, including “Pair-Programming,” they created Test-Driven Development (TDD).
To understand why Test-Driven Development worked so well in this project that had no testing teams, let’s return to the layers of the product that had no user interface. This little detail makes all the difference, as it allows programmers to test their code with a clear definition of the expected results. This is the perfect scenario for programmers with no test groups to rely on.
As the project became a success (at least relative to its earlier phases), the popularity of Extreme Programming and its principles increased in the industry. By the time the project was canceled (1999), many other software projects were following XP and replicating C3’s early success.
As the popularity of Extreme Programming continued to grow, it greatly influenced the testing field as it promoted new ideas such as the removal of the testing role and that all tests should be automated.
Agile Testing in Scrum
XP is an Agile framework with a specific technical guideline for Agile software development. At the beginning of this chapter, we saw how it changed testing in the Agile environment.
However, as the years went by, Scrum won as the leading Agile framework that set the standards for Agile software development. Scrum focuses on the “framework” of the development process but ignores the “how-to” for handling software development's practical side, particularly how to conduct tests in this environment.
Furthermore, Scrum does not specify any information about any test role. It embraces team ownership of the product with the expectation that they should decide how to do the work without external interference. As you can imagine, the lack of a real definition for this topic resulted in many misconceptions, innovations, and experiments. After a few decades, there is still no consensus definition that fully addresses this topic.