Automating regression testing for evolving GUI software

With the widespread deployment of broadband connections worldwide, software development and maintenance are increasingly being performed by multiple engineers, often working around-the-clock to maximize code churn rates. To ensure rapid quality assurance of such software, techniques such as ‘nightly/daily building and smoke testing’ have become widespread since they often reveal bugs early in the software development process. During these builds, a development version of the software is checked out from the source code repository tree, compiled, linked, and (re)tested with the goal of (re)validating its basic functionality. Although successful for conventional software, smoke tests are difficult to develop and automatically re-run for software that has a graphical user interface (GUI). In this paper, we describe a framework called DART (Daily Automated Regression Tester) that addresses the needs of frequent and automated re-testing of GUI software. The key to our success is automation: DART automates everything from structural GUI analysis, smoke-test-case generation, test-oracle creation, to code instrumentation, test execution, coverage evaluation, regeneration of test cases, and their re-execution. Together with the operating system's task scheduler, DART can execute frequently with little input from the developer/tester to re-test the GUI software. We provide results of experiments showing the time taken and memory required for GUI analysis, test case and test oracle generation, and test execution. We empirically compare the relative costs of employing different levels of detail in the GUI test oracle. We also show the events and statements covered by the smoke test cases. Copyright © 2005 John Wiley & Sons, Ltd.

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

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

[3]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[4]  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..

[5]  Heinz Züllighoven,et al.  The Need for Speed : Automating Acceptance Testing in an eXtreme Programming Environment – , 2002 .

[6]  Brian Marick,et al.  When Should a Test Be Automated , 1998 .

[7]  Peter Schuh Recovery, Redemption, and Extreme Programming , 2001, IEEE Softw..

[8]  Atif M. Memon,et al.  DART: a framework for regression testing "nightly/daily builds" of GUI applications , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[9]  Kent L. Beck Extreme Programming , 1999, TOOLS.

[10]  Charles J. Poole,et al.  Using Extreme Programming in a Maintenance Environment , 2001, IEEE Softw..

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

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

[13]  Marilyn C. Salzman,et al.  Smoke and mirrors: setting the stage for a successful usability test , 1994, Behav. Inf. Technol..

[14]  ATIF M. MEMON Advances in GUI testing , 2003, Adv. Comput..

[15]  Ron Jeffries,et al.  Extreme Programming Installed , 2000 .

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

[17]  Malte Finsterwalder Automating Acceptance Tests for GUI Applications in an Extreme Programming Environment , 2001 .

[18]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

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

[20]  Mary Lou Soffa,et al.  Using a goal-driven approach to generate test cases for GUIs , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[21]  James Grenning,et al.  Launching Extreme Programming at a Process-Intensive Company , 2001, IEEE Softw..

[22]  Cem Kaner Improving the maintainability of automated test suites , 1997 .

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

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

[25]  Lee J. White,et al.  User-based testing of GUI sequences and their interactions , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

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

[27]  Even-André Karlsson,et al.  Daily build and feature development in large distributed projects , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[28]  Barry W. Boehm,et al.  The Agile Methods Fray , 2002, Computer.

[29]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

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

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