An optimized change-driven regression testing selection strategy for binary Java applications

Selective regression testing involves re-testing of software systems with a subset of the whole test suite to verify that modifications have not caused adverse impacts to existing functions complied with the requirements specifications. With the growing of globalization and individual testing services providers, many testing and development teams belong to different organizations, and often the testing teams only get a binary release of the application without access to its source code. This makes source code analysis based regression test selection strategy not applicable. Meanwhile source code analysis based approach has scalability problem for large applications, which hinders its wide application in industry. This paper presents an optimized regression testing selection strategy based on binary java file change analysis, through which the problems around binary java applications are avoided. Besides static regression test suite reduction and test prioritization factors, continuous and real time testing execution information are incorporated as fault-proneness indicator of the selected test cases to dynamically select and prioritize the regression test suites. In addition, the whole strategy is lightweight, making the regression test selection process more automated and effective. Experiments show that this strategy can guarantee the change point coverage, reveal faults quickly, and scale to industry-size regression testing scenarios under resource and time constraints.

[1]  Laurie A. Williams,et al.  Applying regression test selection for COTS-based applications , 2006, ICSE.

[2]  Gregg Rothermel,et al.  An empirical investigation of the relationship between spectra differences and regression faults , 2000 .

[3]  Jiang Zheng In regression testing selection when source code is not available , 2005, ASE '05.

[4]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[5]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[6]  Yanping Chen,et al.  Specification-based regression test selection with risk analysis , 2002, CASCON.

[7]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

[8]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[9]  Gregg Rothermel,et al.  An empirical study of regression test selection techniques , 1998, Proceedings of the 20th International Conference on Software Engineering.

[10]  Gregg Rothermel,et al.  A safe, efficient algorithm for regression test selection , 1993, 1993 Conference on Software Maintenance.

[11]  Laurie A. Williams,et al.  A process for identifying changes when source code is not available , 2005, ACM SIGSOFT Softw. Eng. Notes.

[12]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[13]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

[14]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[15]  Aniello Cimitile,et al.  Post-maintenance testing based on path change analysis , 1988, Proceedings. Conference on Software Maintenance, 1988..

[16]  Joseph Robert Horgan,et al.  A study of effective regression testing in practice , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.