Why is automated regression testing important in an Agile environment? An Agile development approach can dramatically improve the quality of software, but it requires a very different approach to software testing. Here’s a previous blog post with more on why an Agile testing approach makes so much sense:
What’s the Impact of Agile on Regression Testing?
Because the testing approach is so different, regression testing; and, in particular automated regression testing becomes a lot more important:
- In a traditional plan-driven project management approach (Waterfall), all testing is typically done at the very end of the project
- At that point-in-time, all software development is normally complete and the software is stabilized
- In an Agile environment, software testing is done concurrently with development throughout the project
- As a result, software is still changing as it is being tested
The difference is shown below:
A big challenge this creates is this:
- In a Waterfall-style development process, the software should be stabilized once it goes into testing
- In an Agile environment, the software is continuously changing throughout the project. During each sprint, in addition to testing new functionality, it is essential to do regression testing. The purpose of regression testing is to verify that some new changes haven’t inadvertently broken something that was previously tested
- In a large, complex project, the number of features requiring regression testing will grow significantly as the project is in progress. That makes it almost impossible to do manual regression testing. Attempting to do manual regression testing would slow down the progress of the project significantly if it can be done at all.
For these reasons, it is important to do regression testing to ensure the quality and integrity of the software in an Agile environment. And, for a large, complex software project, automated regression testing becomes essential.