Maintenance of automated test suites in industry: An empirical study on Visual GUI Testing

Context: Verification and validation (V&V) activities make up 20-50% of the total development costs of a software system in practice. Test automation is proposed to lower these V&V costs but available research only provides limited empirical data from industrial practice about the maintenance costs of automated tests and what factors affect these costs. In particular, these costs and factors are unknown for automated GUI-based testing.Objective: This paper addresses this lack of knowledge through analysis of the costs and factors associated with the maintenance of automated GUI-based tests in industrial practice.Method: An empirical study at two companies, Siemens and Saab, is reported where interviews about, and empirical work with, Visual GUI Testing is performed to acquire data about the technique's maintenance costs and feasibility.Results: 13 factors are observed that affect maintenance, e.g. tester knowledge/experience and test case complexity. Further, statistical analysis shows that developing new test scripts is costlier than maintenance but also that frequent maintenance is less costly than infrequent, big bang maintenance. In addition a cost model, based on previous work, is presented that estimates the time to positive return on investment (ROI) of test automation compared to manual testing.Conclusions: It is concluded that test automation can lower overall software development costs of a project while also having positive effects on software quality. However, maintenance costs can still be considerable and the less time a company currently spends on manual testing, the more time is required before positive, economic, ROI is reached after automation.

[1]  Paolo Tonella,et al.  Visual vs. DOM-Based Web Locators: An Empirical Study , 2014, ICWE.

[2]  Tanja E. J. Vos,et al.  TESTAR: Tool Support for Test Automation at the User Interface Level , 2015, Int. J. Inf. Syst. Model. Des..

[3]  Jesús Torres Valderrama,et al.  Generation of test cases from functional requirements. A survey , 2006 .

[4]  Stefan Berner,et al.  Observations and lessons learned from automated testing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[5]  Myra B. Cohen,et al.  Making system user interactive tests repeatable: when and what should we control? , 2015, ICSE 2015.

[6]  Robert Feldt,et al.  Visual GUI testing in practice: challenges, problemsand limitations , 2015, Empirical Software Engineering.

[7]  Wasif Afzal,et al.  An experiment on the effectiveness and efficiency of exploratory testing , 2014, Empirical Software Engineering.

[8]  Jan Bosch,et al.  Climbing the "Stairway to Heaven" -- A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[9]  Edgars Diebelis,et al.  Self-Testing Approach and Testing Tools , 2012 .

[10]  Michael Olan,et al.  Unit testing: test early, test often , 2003 .

[11]  Stefan Wagner A model and sensitivity analysis of the quality economics of defect-detection techniques , 2006, ISSTA '06.

[12]  Marc Kellogg,et al.  Automating functional tests using Selenium , 2006, AGILE 2006 (AGILE'06).

[13]  Brent Hailpern,et al.  Software debugging, testing, and verification , 2002, IBM Syst. J..

[14]  Chang Liu Platform-independent and tool-neutral test descriptions for automated software testing , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[15]  Mika V. Mäntylä,et al.  Defect Detection Efficiency: Test Case Based vs. Exploratory Testing , 2007, ESEM 2007.

[16]  Matthias Hauswirth,et al.  Automated GUI performance testing , 2011, Software Quality Journal.

[17]  Johan Andersson,et al.  The Video Store Revisited Yet Again: Adventures in GUI Acceptance Testing , 2004, XP.

[18]  Thomas Ericson,et al.  TIM—a test improvement model , 1997 .

[19]  Juha Itkonen,et al.  Exploratory testing: a multiple case study , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[20]  Paolo Tonella,et al.  Capture-replay vs. programmable web testing: An empirical assessment during test case evolution , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[21]  Robert Feldt,et al.  Transitioning Manual System Test Suites to Automated Testing: An Industrial Case Study , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[22]  Gary T. Leavens,et al.  A Simple and Practical Approach to Unit Testing: The JML and JUnit Way , 2002, ECOOP.

[23]  Rob Miller,et al.  GUI testing using computer vision , 2010, CHI.

[24]  Katja Karhu,et al.  Empirical Observations on Software Testing Automation , 2009, 2009 International Conference on Software Testing Verification and Validation.

[25]  Ellis Horowitz,et al.  Graphical User Interface Testing , 2012 .

[26]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

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

[28]  Chen Fu,et al.  Maintaining and evolving GUI-directed test scripts , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[29]  Lars Pareto,et al.  Costs and Benefits of Structure-aware Capture/Replay tools , 2006 .

[30]  Rob Miller,et al.  Sikuli: using GUI screenshots for search and automation , 2009, UIST '09.

[31]  Atif M. Memon,et al.  GUITAR: an innovative tool for automated testing of GUI-driven software , 2014, Automated Software Engineering.

[32]  Paul Krause Software Test Automation: Effective Use of Test Execution Tools, Mark Fewster and Dorothy Graham, Addison-Wesley, 1999 (Book Review) , 2000, Softw. Test. Verification Reliab..

[33]  Robert Feldt,et al.  Automated System Testing Using Visual GUI Testing Tools: A Comparative Study in Industry , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

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

[35]  Helena Holmström Olsson,et al.  JAutomate: A Tool for System- and Acceptance-test Automation , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[36]  Andrew J. Kornecki,et al.  Certification of software for real-time safety-critical systems: state of the art , 2009, Innovations in Systems and Software Engineering.

[37]  Kai Petersen,et al.  Benefits and limitations of automated software testing: Systematic literature review and practitioner survey , 2012, 2012 7th International Workshop on Automation of Software Test (AST).

[38]  Fadi A. Zaraket,et al.  GUICOP: Specification-Based GUI Testing , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[39]  Bertrand Meyer,et al.  Reconciling Manual and Automated Testing: The AutoTest Experience , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[40]  Chen Fu,et al.  Creating GUI Testing Tools Using Accessibility Technologies , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[41]  D. M. Hutton,et al.  Software Test Automation: Effective Use of Test Execution Tools , 2000 .

[42]  John Paul,et al.  Automated Software Testing: Introduction, Management, and Performance , 1999 .

[43]  Atif M. Memon,et al.  Test case generator for GUITAR , 2008, ICSE Companion '08.

[44]  Sarfraz Khurshid,et al.  Symbolic execution for software testing in practice: preliminary assessment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[45]  Michael Ellims,et al.  The Economics of Unit Testing , 2006, Empirical Software Engineering.