A Regression Test Selection Technique Applied to Legacy Systems

Software testing is a necessary step in both the software production chain and during future maintenance. Testing can be performed using many different techniques. It is much easier to test a piece of software during the original development process, rather than after the system has been deployed and in use for many years. However, testing must be performed whenever software is altered. How should testing be performed on legacy software? The answer to this question is the focus of this thesis. Regression testing is performed on software during its maintenance stage. Usually it is done after changes have been made to the software or its environment. The concept of regression testing does not assume the existence of a test suite for the software. It might be the case that test cases have to be created from the scratch. However, when software with a huge existing test suite is under consideration, then it is not always a good idea to run the whole test suite in order to perform regression testing. This might be too expensive both in time and human effort. This problem motivate the concept of regression test selection, which tells us that by using certain selection criteria it is possible to select a subset of an existing test suite and run that subset on the software instead. Our project involves reducing the burden of regression testing for a legacy system that is built on top of the Oracle E-Business Suite and Oracle database. The changes are made through patches that are sent by Oracle. Most of the time, patches do not introduce big changes to the E-Business Suite. Also, it is likely that the legacy software application uses a relatively small portion of Oracle's Enterprise Resource Planning (ERP) system. In this case, it is crucial to be able to select a subset of the test suite for regression testing. Running the whole test suite can be very costly, and

[1]  Alessandro Orso,et al.  Test-Suite Augmentation for Evolving Software , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[2]  William M. Ulrich Legacy Systems: Transformation Strategies , 2002 .

[3]  Alessandro Orso,et al.  A generic instrumentation framework for collecting dynamic information , 2004, SOEN.

[4]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[5]  Alessandro Orso,et al.  MATRIX: Maintenance-Oriented Testing Requirements Identifier and Examiner , 2006, Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART'06).

[6]  Paul Ammann,et al.  Introduction to Software Testing: List of Criteria , 2008 .

[7]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[8]  Alessandro Orso,et al.  Scaling regression testing to large software systems , 2004, SIGSOFT '04/FSE-12.

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

[10]  Gregg Rothermel,et al.  Effective regression testing using safe test selection techniques , 1995 .

[11]  Shuang Wang,et al.  Comparison of Unit-Level Automated Test Generation Tools , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[12]  Yannis Smaragdakis,et al.  JCrasher: an automatic robustness tester for Java , 2004, Softw. Pract. Exp..

[13]  Mary Jean Harrold,et al.  Using random test selection to gain confidence in modified software , 2008, 2008 IEEE International Conference on Software Maintenance.

[14]  Mark Harman,et al.  Regression Testing Minimisation, Selection and Prioritisation - A Survey , 2009 .

[15]  Asif Iqbal,et al.  Identifying Modifications and Generating Dependency Graphs for Impact Analysis in a Legacy Environment , 2011 .

[16]  Anil Passi,et al.  Oracle E-Business Suite Development & Extensibility Handbook , 2009 .

[17]  Grace A. Lewis,et al.  Modernizing Legacy Systems - Software Technologies, Engineering Processes, and Business Practices , 2003, SEI series in software engineering.

[18]  Ian Abramson,et al.  Oracle Database 11g A Beginner's Guide , 2008 .

[19]  Michael C. Feathers Working Effectively with Legacy Code , 2004, XP/Agile Universe.

[20]  Gregory E. Mundy,et al.  A study of software reuse in NASA legacy systems , 2007, Innovations in Systems and Software Engineering.