Considerations for Regression Testing Process in Agile Development Environments
Testing is central piece in agile development methodology, that fast is taking roots and at the same time it is becoming challenging, in particular due to short time periods between incremental updates of the software, as such the time for overall testing including regression testing is becoming limited. In regression testing, the changed code as well as certain portion of existing code that is impacted is to be retested. Intuitively, it seems that the best option is to automate the regression testing. However, precisely due to time constraints the automation approach is proving to be challenging for regression testing in agile development environments. As the time to create and update these automation scripts will become limiting factor in case of overnight/weekly releases. Regression testing in agile development environments should be using some prioritization of tests for next cycle to enable timely regression testing. We can use the information of future release plans, defined by the specifications for each release, and prioritize the test cases as we write them. As there can be information available for future release cycles (as there are releases in planned for short intervals) we can have some methods of using this information and make the process of regression testing process in future more effective and efficient. In this paper, we present a technique of using future builds (new enhancements, features, or fixes) to select test cases on a class of software which is used for interconnecting diverse systems in near real time fashion. The results are encouraging and the technique can be used to guide regression testing process in agile development environment.