Effective Regression Testing of Web Applications through Reusability of Resources
View/ Open
Abstract
Regression testing is one of the most important and costly phases of a software development project. Regression testing is performed to ensure no new faults are introduced due to changes in a software. Web applications undergo frequent changes. With such frequent changes, executing the entire regression test suite is not cost-effective. Hence, there is a need for techniques that can reduce the overall cost of regression testing. We propose two regression testing techniques that demonstrate the benefits from reusability of existing resources in reducing the costs of regression testing of web applications. Our techniques are based on PHP Analysis and Regression Testing Engine (PARTE) approach that identifies code paths that were modified between two versions of an application. We extend PARTE to introduce two components. Reusable Tests component selects existing tests that can be reused to regression test the modified version of the application, and identifies obsolete tests. Test Repair component repairs such obsolete tests. Our hypothesis is that this combined approach of identifying reusable tests and repairing obsolete tests, can reduce the overall effort of regression testing. To test our hypothesis, we conducted experiments on real-world web applications. In our first experiment, we learned that there are significant number of input values from the original version of an application that can be reused to test the modified version. Based on this learning, we conducted our second experiment to evaluate if a regression test selection technique can benefit from the reusability of input values. Results from the second experiment demonstrated that reusability of input values minimized the cost of verification of input values in selected tests, and identified obsolete tests. Findings from these two experiments encouraged us to conduct an experiment to evaluate if PARTE approach can be further extended to repair obsolete tests. Results from our third experiment showed that a few obsolete tests can be automatically repaired. Thus, these novel approaches demonstrate the benefits from the reusability of existing resources and shows how further studies can be performed to evaluate approaches that combine one or more regression testing techniques to further reduce the costs of regression testing.