Automatically repairing event sequence-based GUI test suites for regression testing

Although graphical user interfaces (GUIs) constitute a large part of the software being developed today and are typically created using rapid prototyping, there are no effective regression testing techniques for GUIs. The needs of GUI regression testing differ from those of traditional software. When the structure of a GUI is modified, test cases from the original GUI's suite are either reusable or unusable on the modified GUI. Because GUI test case generation is expensive, our goal is to make the unusable test cases usable, thereby helping to retain the suite's event coverage. The idea of reusing these unusable (obsolete) test cases has not been explored before. This article shows that a large number of test cases become unusable for GUIs. It presents a new GUI regression testing technique that first automatically determines the usable and unusable test cases from a test suite after a GUI modification, then determines the unusable test cases that can be repaired so that they can execute on the modified GUI, and finally uses repairing transformations to repair the test cases. This regression testing technique along with four repairing transformations has been implemented. An empirical study for four open-source applications demonstrates that (1) this approach is effective in that many of the test cases can be repaired, and is practical in terms of its time performance, (2) certain types of test cases are more prone to becoming unusable, and (3) certain types of “dominator” events, when modified, make a large number of test cases unusable.

[1]  Mary Lou Soffa,et al.  Hierarchical GUI Test Case Generation Using Automated Planning , 2001, IEEE Trans. Software Eng..

[2]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[3]  Mary Lou Soffa,et al.  Interprocedual Data Flow Testing , 1989, Symposium on Testing, Analysis, and Verification.

[4]  Atif M. Memon,et al.  Designing and comparing automated test oracles for GUI-based software applications , 2007, TSEM.

[5]  Atif M. Memon,et al.  Studying the fault-detection effectiveness of GUI test cases for rapidly evolving software , 2005, IEEE Transactions on Software Engineering.

[6]  Mary Lou Soffa,et al.  Coverage criteria for GUI testing , 2001, ESEC/FSE-9.

[7]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[8]  Wei-Tek Tsai,et al.  Regression testing in an industrial environment , 1998, CACM.

[9]  Atif M. Memon,et al.  Model-Based Testing of Community-Driven Open-Source GUI Applications , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[10]  Jeffrey M. Voas Quality Time: How Assertions Can Increase Test Effectiveness , 1997, IEEE Softw..

[11]  Theodore G. Lewis,et al.  Integrating the MVC Paradigm into an Object-Oriented Framework to Accelerate GUI Application Development , 1991 .

[12]  Brad A. Myers,et al.  User interface software tools , 1995, TCHI.

[13]  Daniel P. Siewiorek,et al.  A method to automate user interface testing using variable finite state machines , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[14]  Mary Lou Soffa,et al.  Interprocedual data flow testing , 1989 .

[15]  Sigrid Eldh Software Testing Techniques , 2007 .

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

[17]  Atif M. Memon,et al.  Automating regression testing for evolving GUI software , 2005, J. Softw. Maintenance Res. Pract..

[18]  Lee J. White,et al.  Generating test cases for GUI responsibilities using complete interaction sequences , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[19]  Gregg Rothermel,et al.  Empirical Studies of a Safe Regression Test Selection Technique , 1998, IEEE Trans. Software Eng..

[20]  Atif M. Memon,et al.  Using GUI Run-Time State as Feedback to Generate Test Cases , 2007, 29th International Conference on Software Engineering (ICSE'07).

[21]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[22]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[23]  Wayne Zachary,et al.  A Tool for Automatically Generating Transcripts of Human-Computer Interaction , 1993 .

[24]  Jeffrey J. Hendrickson,et al.  Integrated data capture and analysis tools for research and testing on graphical user interfaces , 1992, CHI.

[25]  Atif M. Memon GUI Testing: Pitfalls and Process , 2002, Computer.

[26]  Lee J. White,et al.  Firewall regression testing of GUI sequences and their interactions , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[27]  Mary Lou Soffa,et al.  Incremental global reoptimization of programs , 1992, TOPL.

[28]  Lee J. White Regression testing of GUI event interactions , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[29]  XieQing,et al.  Automating regression testing for evolving GUI software , 2005 .

[30]  David S. Rosenblum,et al.  Using Coverage Information to Predict the Cost-Effectiveness of Regression Testing Strategies , 1997, IEEE Trans. Software Eng..

[31]  Gregg Rothermel,et al.  A Comparative Study of Regression Test Selection Techniques , 1997 .

[32]  Thomas J. Ostrand,et al.  A visual test development environment for GUI systems , 1998, ISSTA.

[33]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[34]  Mary Lou Soffa,et al.  A methodology for controlling the size of a test suite , 1993, TSEM.

[35]  Mary Lou Soffa,et al.  Regression testing of GUIs , 2003, ESEC/FSE-11.

[36]  David J. Kasik,et al.  Toward automatic generation of novice user test scripts , 1996, CHI.

[37]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[38]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[39]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[40]  Mary Lou Soffa,et al.  Automated test oracles for GUIs , 2000, SIGSOFT '00/FSE-8.

[41]  Lee J. White,et al.  Utilization of extended firewall for object-oriented regression testing , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[42]  J WeyukerElaine,et al.  Using Coverage Information to Predict the Cost-Effectiveness of Regression Testing Strategies , 1997 .

[43]  Michael D. Ernst,et al.  Feedback-Directed Random Test Generation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[44]  David W. Binkley,et al.  Semantics Guided Regression Test Cost Reduction , 1997, IEEE Trans. Software Eng..

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

[46]  David Chenho Kung,et al.  Or Regression Testing of Object-Oriented Programs , 1996, J. Syst. Softw..

[47]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

[48]  John D. McGregor,et al.  Incremental testing of object-oriented class structures , 1992, ICSE '92.

[49]  Mary Lou Soffa,et al.  A comprehensive framework for testing graphical user interfaces , 2001 .

[50]  Jim W. Thatcher Screen Reader/2 - Programmed Access to the GUI , 1994, ICCHP.

[51]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .