Why regression testing is important in Agile methodology? Agile testing requires me to test iteratively the newly developed code and at the same time making sure the old implemented functionality is intact. Following TDD or writing unit test just helps in achieving an automated low level regression test suite. But it cannot be used alone in Agile. After every 2 or 3 iterations there should be a regression planned, I believe. During iterations, testers mostly focus on the story testing and the edge scenarios remain untested sometimes (primarily due to pending story development). So how do we do regression testing effectively.
Regression testing is not just about selective re-testing, it’s also about achieving the test coverage. So the big question is how do we go about it. In my previous post I have written about how do we segregate test cases in happy, sad and bad path test cases. So what all to be picked up in regression testing? Should we target testing all the test cases? Can we just quickly execute all the happy path test cases? Can we further filter out test cases from happy path test cases which can give us quick coverage and at the same time checking the functionality? There are a lot of questions which keep coming to mind. So let’s try finding how we can do effective regression testing in agile methodology.
The happy path test cases which we have written can be further classified based on the testing ease and business value. On a broader perspective we can classify most of them in Complex scenarios, Critical path scenarios, Integration scenarios and Boundary value Scenarios. Critical path scenarios are generally targeted during story testing and are a part of acceptance criteria as well. These test cases ensure that the functionality is working fine. Integration scenarios span over more than one functionality and are a must while doing regression testing. Not much of boundary value scenarios get tested in story testing due to the reason that other functionality is not implemented. These test cases are generally the prime target of regression testing.
Proper test cases selection will actually fasten the process of regression testing, increasing the overall coverage of testing. Regression testing in agile methodology is also to ensure that we uncover all the bugs which span across the functionality.