Protecting Original Functionality
When moving from a traditional Waterfall methodology approach to Agile development, there is an important need to get your house in order to cope with the very iterative testing approach that
Agile brings. Having a well thought out Test Strategy and having a Test Plan that will cater for the fast pace of code change will be essential in ensuring that original functionality remains working correctly and newly applied changes are equally tested to a satisfactory level.
Regression testing by nature essentially checks that the previous functionality of an application is still working correctly and that the new changes executed have not introduced new defects into the applications code base. As iterations of change come down the project pipeline, it becomes essential to check that the new code changes work in harmony with the existing code and that any unmodified code is not affected in any way.
In an Agile development environment, there are many iterations of change and therefore regression testing becomes more relevant as continuous changes to the application need to be verified and proven, Automation of regression tests becomes essential to protect the integrity of the original functionality.
When transitioning to Agile you must ensure you have a strategy to build a regression suite of tests, ideally form the outset of software development and then keep building upon the core set of tests as the sprints add up. Once tests are executed and proven, then you can start to automate them to reduce the time to execute and thus reduce the overall time to test within a sprint.
You should ensure that the following has been thought through before creating your Agile test plan which compliments regression testing, firstly select which test cases should be included into the test suite and which ones are suitable for automation; how long each test will take to run and as a suite and finally always look at the output of the test execution to ensure that constant refinements are made to ensure maximum optimisation.
In addition, you should also consider
Performance Testing at the end of regression testing to ensure that the system performance is not negatively affected due to changes implemented in the code base.