This article looks to discuss Regression Testing in Agile Development, and covers the importance of regression testing and regression testing strategies in Agile projects.
The History of Agile
A 59 Seconds Agile Video Animation
Importance of Regression Testing For Product Owners
New product features can bring new problems during software development. An alteration in logic to one of the functionalities could affect another. An error handling standard may not have been followed when creating a new page with data entry forms. There will always be defects not captured during software testing, and one of a product owner’s worst nightmares is seeing critical defects existing in the production environment.
Quality Assurance is a key component in any project, and it is especially in the forefront of all Agile projects. It is not enough to simply test an enhancement as it comes along. As a sprint draws closer to its end, there is a mass of changes big and small, each of them tested separately or together with a certain set of other features. It may or may not be enough, but there is always a risk in interacting with these changes and the application as a whole. There is a way to minimize those risks, and ways to strategize around it.
The Importance of Regression Testing
Delivering potentially releasable increments means that the team should ensure that the sprint didn’t cause snags in already existing features. This is what regression testing (including automated regression test, unit tested and regression testing strategies) essentially is: an activity where the team checks how the current build affects the previous builds and the overall system. Whether it’s a bug fix or a new functionality, the team needs to guarantee that no new defects are introduced.
Regression testing holds a very important role in an agile methodology. It can also be a very time-consuming activity. Because testing grows geometrically in each sprint, the product owner, the Scrum Master, and the developers need to collaborate on a plan and strategy around quality assurance in their agile environment.
Regression Testing in Agile Development: Planning
Some of the items to plan for regression testing are:
– What test cases to use
– How to improve the test cases for regression testing
– What tests can be automated, and how
– What the timeline is for regression testing
Some teams get away without regression testing by checking only what matters during the sprint. This strategy may work, but if done arbitrarily, it is not sustainable and, worse, it can cause serious technical debt. The quality of the entire product needs to be considered during every sprint. There are some ways a team can go about regression testing, and they can choose what will fit their needs and constraints.
Our Favourite Agile Books
We found these books great for finding out more information on Agile Scrum:
Regression Testing in Agile Development: Two-Level Regression Testing
In Agile development, there are two levels of regression testing:
Iteration regression – testing new features since the last release or within the iteration as well as parts of the application that could be affected.
Full regression – testing all the core features of the product to ensure the product is working as expected before a release.
On choosing the coverage of the regression testing, the team must consider when the last full regression testing was. Having a regularly scheduled end-to-end regression testing can help the team manage their timeline better.