On the long-term use of visual gui testing in industrial practice: a case study

Visual GUI Testing (VGT) is a tool-driven technique for automated GUI-based testing that uses image recognition to interact with and assert the correctness of the behavior of a system through its GUI as it is shown to the user. The technique’s applicability, e.g. defect-finding ability, and feasibility, e.g. time to positive return on investment, have been shown through empirical studies in industrial practice. However, there is a lack of studies that evaluate the usefulness and challenges associated with VGT when used long-term (years) in industrial practice. This paper evaluates how VGT was adopted, applied and why it was abandoned at the music streaming application development company, Spotify, after several years of use. A qualitative study with two workshops and five well chosen employees is performed at the company, supported by a survey, which is analyzed with a grounded theory approach to answer the study’s three research questions. The interviews provide insights into the challenges, problems and limitations, but also benefits, that Spotify experienced during the adoption and use of VGT. However, due to the technique’s drawbacks, VGT has been abandoned for a new technique/framework, simply called the Test interface. The Test interface is considered more robust and flexible for Spotify’s needs but has several drawbacks, including that it does not test the actual GUI as shown to the user like VGT does. From the study’s results it is concluded that VGT can be used long-term in industrial practice but it requires organizational change as well as engineering best practices to be beneficial. Through synthesis of the study’s results, and results from previous work, a set of guidelines are presented that aim to aid practitioners to adopt and use VGT in industrial practice. However, due to the abandonment of the technique, future research is required to analyze in what types of projects the technique is, and is not, long-term viable. To this end, we also present Spotify’s Test interface solution for automated GUI-based testing and conclude that it has its own benefits and drawbacks.

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

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

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

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

[6]  Walter F. Tichy,et al.  Status of Empirical Research in Software Engineering , 2006, Empirical Software Engineering Issues.

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

[8]  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).

[9]  Antonio Martini,et al.  Exploring the Presence of Technical Debt in Industrial GUI-Based Testware: A Case Study , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

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

[11]  C. Brodsky The Discovery of Grounded Theory: Strategies for Qualitative Research , 1968 .

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

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

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

[15]  Tarun Lalwani,et al.  UFT/QTP Interview Unplugged: And I thought I knew UFT! , 2013 .

[16]  Atif M. Memon,et al.  Conceptualization and Evaluation of Component-Based Testing Unified with Visual GUI Testing: An Empirical Study , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

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

[18]  WohlinClaes,et al.  Towards a decision-making structure for selecting a research design in empirical software engineering , 2015 .

[19]  Jeffrey C. Carver The Use of Grounded Theory in Empirical Software Engineering , 2006, Empirical Software Engineering Issues.

[20]  Chirag I. Patel,et al.  Optical Character Recognition by Open source OCR Tool Tesseract: A Case Study , 2012 .

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

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

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

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

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

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

[27]  Pekka Abrahamsson,et al.  Long-Term Effects of Test-Driven Development A Case Study , 2009, XP.

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

[29]  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).

[30]  Emil Alegroth On the Industrial Applicability of Visual GUI Testing , 2013 .

[31]  Robert Feldt,et al.  Maintenance of automated test suites in industry: An empirical study on Visual GUI Testing , 2016, Inf. Softw. Technol..

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

[33]  Paolo Tonella,et al.  Approaches and Tools for Automated End-to-End Web Testing , 2016, Adv. Comput..

[34]  Lisa G. Johnston,et al.  An Empirical Comparison of Respondent-driven Sampling, Time Location Sampling, and Snowball Sampling for Behavioral Surveillance in Men Who Have Sex with Men, Fortaleza, Brazil , 2008, AIDS and Behavior.

[35]  Johnny Saldaña,et al.  The Coding Manual for Qualitative Researchers , 2009 .

[36]  Theodore D. Hellmann,et al.  An Exploratory Study of Automated GUI Testing: Goals, Issues, and Best Practices , 2014 .

[37]  Claes Wohlin,et al.  Towards a decision-making structure for selecting a research design in empirical software engineering , 2014, Empirical Software Engineering.

[38]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[39]  Vasant Honavar Principles of Artificial Intelligence Fall 2005 Handout , .