If you are recent to Agile like us you are probably still figuring out how you previous tasks fit into the process. We have been using scrum for a while now and completed several sprints without releasing a build to customers. When it came time to release we looked over what areas had been changed and it was a very large chunk of core features. Our App is in VB6 so Automated regression tests are out of the question at the moment, i am working on writing an extension for Coded UI Tests though, so this means that all or testing is done manually. To be confident that we did not introduce new buts this meant we had to spend 3 weeks just doing regression testing. This alone goes against scrum principles because your product should be potentially releasable at the end of each sprint. So we knew doing a massive block of testing like this didn’t seem right but what is the best way to handle regressing testing in an Agile environment
I Just started reading Agile Testing by Lisa Crispin and Janet Gregory and its very insightful. I would recommend giving it a read even if your not a tester it talks about different levels of testing and how they fit into the Agile process.
So how do they recommend you handle regression testing? Regression testing should be included as part of your Done Criteria, this makes a lot of since when you think about it. It means that at the end of the sprint your product is potentially releasable. If you haven’t made sure the affected area’s have not been touched then you can not be confidant that releasing the product would be a good idea. One of the important things of scum is the constant review process, what went well and what didn’t? Which is why this is one small change we are making and i think we will get many more good ideas from this book. Of course the most beneficial way to do this would be to have an set of automated regression tests but if this is not possible its up to the team to help out. This might mean you need your testers to create good documentation that the programmers can follow to make sure the team completes the sprint.