SAFe Knowledge Base » Agile Testing
Agile Testing
If you don’t care about quality, you can meet any other requirement.
—Gerald M. Weinberg
Agile Testing is an approach to systems and software testing that develops and tests systems in small increments, often developing tests before writing the code, Story, or Feature. Although traditional development often uses a deferred, big-batch testing approach, tests help elaborate and better define the intended system behavior, even before the system is implemented. Quality is built-in from the beginning. Like Agile development, Agile testing is a collaborative, team-oriented process. All team members share responsibility for testing the system.
This test-first approach applies to all types of Agile work. That includes capabilities, features, stories, NFRs, and code. It can even be used for the hardware components of a system. In the same way, tests are written during coding, and acceptance tests for capabilities, features, and stories are written during elaboration. The just-in-time practice of elaborating the proposed system behavior also mitigates the need for overly detailed requirement specifications and sign-offs. Even better, unlike conventionally-written requirements, these tests are automated wherever possible. But even when they are not, they still provide a definitive statement of what the system does rather than a statement of early thoughts about what it was supposed to do.
Details
Agile testing is a continuous process integral to Lean and Built-In Quality. Agile Teams and Agile Release Trains (ARTs) cannot go fast without high quality. Without constant, primarily automated testing, it's challenging to implement a fast, Continuous Delivery Pipeline and achieve Release on Demand. Wherever possible, that means testing—and even test automation—comes first.