When and what to automate in software testing? A multi-vocal literature review

Abstract Context Many organizations see software test automation as a solution to decrease testing costs and to reduce cycle time in software development. However, establishment of automated testing may fail if test automation is not applied in the right time, right context and with the appropriate approach. Objective The decisions on when and what to automate is important since wrong decisions can lead to disappointments and major wrong expenditures (resources and efforts). To support decision making on when and what to automate, researchers and practitioners have proposed various guidelines, heuristics and factors since the early days of test automation technologies. As the number of such sources has increased, it is important to systematically categorize the current state-of-the-art and -practice, and to provide a synthesized overview. Method To achieve the above objective, we have performed a Multivocal Literature Review (MLR) study on when and what to automate in software testing. A MLR is a form of a Systematic Literature Review (SLR) which includes the grey literature (e.g., blog posts and white papers) in addition to the published (formal) literature (e.g., journal and conference papers). We searched the academic literature using the Google Scholar and the grey literature using the regular Google search engine. Results Our MLR and its results are based on 78 sources, 52 of which were grey literature and 26 were formally published sources. We used the qualitative analysis (coding) to classify the factors affecting the when- and what-to-automate questions to five groups: (1) Software Under Test (SUT)-related factors, (2) test-related factors, (3) test-tool-related factors, (4) human and organizational factors, and (5) cross-cutting and other factors. The most frequent individual factors were: need for regression testing (44 sources), economic factors (43), and maturity of SUT (39). Conclusion We show that current decision-support in software test automation provides reasonable advice for industry, and as a practical outcome of this research we have summarized it as a checklist that can be used by practitioners. However, we recommend developing systematic empirically-validated decision-support approaches as the existing advice is often unsystematic and based on weak empirical evidence.

[1]  Rodney T. Ogawa,et al.  Towards Rigor in Reviews of Multivocal Literatures: Applying the Exploratory Case Study Method , 1991 .

[2]  Cem Kaner,et al.  Lessons Learned in Software Testing , 2001 .

[3]  Mahmood Niazi,et al.  Do Systematic Literature Reviews Outperform Informal Literature Reviews in the Software Engineering Domain? An Initial Case Study , 2015 .

[4]  Vahid Garousi,et al.  Test Cost-Effectiveness and Defect Density: A Case Study on the Android Platform , 2013, Adv. Comput..

[5]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[6]  Vahid Garousi,et al.  Selecting the Right Topics for Industry-Academia Collaborations in Software Testing: An Experience Report , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

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

[8]  James M. Bieman,et al.  Testing scientific software: A systematic literature review , 2014, Inf. Softw. Technol..

[9]  Nelly Bencomo,et al.  A View of the Dynamic Software Product Line Landscape , 2012, Computer.

[10]  L. Hedges,et al.  The Handbook of Research Synthesis and Meta-Analysis , 2009 .

[11]  Pearl Brereton,et al.  The educational value of mapping studies of software engineering literature , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[12]  Sally Hopewell,et al.  Grey Literature and Systematic Reviews , 2006 .

[13]  Vahid Garousi,et al.  When to automate software testing? decision support based on system dynamics: an industrial case study , 2014, ICSSP 2014.

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

[15]  Katja Karhu,et al.  Trade-off between automated and manual software testing , 2011, Int. J. Syst. Assur. Eng. Manag..

[16]  Affan Yasin,et al.  On the Quality of Grey Literature and its use in Information Synthesis during Systematic Literature Reviews , 2012 .

[17]  M Egger,et al.  Grey literature in meta-analyses of randomized trials of health care interventions. , 2007, The Cochrane database of systematic reviews.

[18]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[19]  Geir Kjetil Hanssen,et al.  Automated Acceptance Testing: A Literature Review and an Industrial Case Study , 2008, Agile 2008 Conference.

[20]  O. P. Sangwan,et al.  A systematic review on fault based mutation testing techniques and tools for Aspect-J programs , 2013, 2013 3rd IEEE International Advance Computing Conference (IACC).

[21]  K. A. Hayden,et al.  State-of-the-evidence reviews: advantages and challenges of including grey literature. , 2006, Worldviews on evidence-based nursing.

[22]  Daniela Cruzes,et al.  Synthesizing evidence in software engineering research , 2010, ESEM '10.

[23]  Darko Marinov,et al.  ReAssert: Suggesting Repairs for Broken Unit Tests , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[24]  James A. Whittaker,et al.  How Google tests software , 2012, CSIIRW '10.

[25]  Elfriede Dustin,et al.  Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality , 2009 .

[26]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[27]  Vahid Garousi,et al.  UML-driven software performance engineering: A systematic mapping and trend analysis , 2013 .

[28]  Frank Elberzhager,et al.  A systematic mapping study on the combination of static and dynamic quality assurance techniques , 2012, Inf. Softw. Technol..

[29]  Lionel C. Briand,et al.  A Systematic Review of the Application and Empirical Investigation of Search-Based Test Case Generation , 2010, IEEE Transactions on Software Engineering.

[30]  Rajesh Subramanyan,et al.  A survey on model-based testing approaches: a systematic review , 2007, WEASELTech '07.

[31]  Daniela Cruzes,et al.  Recommended Steps for Thematic Synthesis in Software Engineering , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[32]  Vahid Garousi,et al.  Web application testing: A systematic literature review , 2014, J. Syst. Softw..

[33]  Johnny Saldaña,et al.  Qualitative Data Analysis: A Methods Sourcebook. Third Edition. , 2014 .

[34]  Richard T. Vidgen,et al.  An exploration of technical debt , 2013, J. Syst. Softw..

[35]  J. Bach Test Automation Snake Oil , 1999 .

[36]  Mark Harman,et al.  A Comprehensive Survey of Trends in Oracles for Software Testing , 2013 .

[37]  Sarah Kate Bennett,et al.  Doing a Literature Review in Health and Social Care: A Practical Guide , 2012 .

[38]  Wasif Afzal,et al.  A Systematic Mapping Study on Non-Functional Search-based Software Testing , 2008, SEKE.

[39]  Mark Harman,et al.  Testing and verification in service‐oriented architecture: a survey , 2013, Softw. Test. Verification Reliab..

[40]  Daniela Cruzes,et al.  Research synthesis in software engineering: A tertiary study , 2011, Inf. Softw. Technol..

[41]  Tony Gorschek,et al.  A method for evaluating rigor and industrial relevance of technology evaluations , 2011, Empirical Software Engineering.

[42]  Vahid Garousi,et al.  A Survey of Software Engineering Practices in Turkey (extended version) , 2014, J. Syst. Softw..

[43]  Vahid Garousi,et al.  A survey of software testing practices in Canada , 2013, J. Syst. Softw..

[44]  Vahid Garousi,et al.  Software test-code engineering: A systematic mapping , 2015, Inf. Softw. Technol..

[45]  Emilia Mendes,et al.  A Systematic Literature Review of Software Process Improvement in Small and Medium Web Companies , 2009, FGIT-ASEA.

[46]  Jeffrey C. Carver,et al.  A systematic literature review to identify and classify software requirement errors , 2009, Inf. Softw. Technol..

[47]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[48]  Gopalaswamy Ramesh,et al.  Software Testing: Principles and Practices , 2005 .

[49]  Ken Johnston,et al.  How We Test Software at Microsoft , 2008 .

[50]  Apostolos Ampatzoglou,et al.  The financial aspect of managing technical debt: A systematic literature review , 2015, Inf. Softw. Technol..

[51]  John D. McGregor,et al.  A systematic mapping study of software product lines testing , 2011, Inf. Softw. Technol..

[52]  Vahid Garousi,et al.  A systematic mapping study of web application testing , 2013, Inf. Softw. Technol..

[53]  Vahid Garousi,et al.  Classification and trend analysis of UML books (1997–2009) , 2011, Software & Systems Modeling.

[54]  Tore Dybå,et al.  Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise , 2007, IEEE Transactions on Software Engineering.

[55]  W. Whyte,et al.  Participatory Action Research , 1989 .

[56]  Rajeev Kumar,et al.  UML behavioral model based test case generation: a survey , 2013, SOEN.

[57]  Dwayne Van Eerd,et al.  Searching for grey literature for systematic reviews: challenges and benefits , 2014, Research synthesis methods.

[58]  A. Huberman,et al.  Qualitative Data Analysis: A Methods Sourcebook , 1994 .

[59]  Ivans Kulesovs iOS Applications Testing , 2015 .

[60]  Deepti Mishra,et al.  Test case prioritization: a systematic mapping study , 2012, Software Quality Journal.

[61]  Vahid Garousi,et al.  The need for multivocal literature reviews in software engineering: complementing systematic literature reviews with grey literature , 2016, EASE.

[62]  David Lee,et al.  Principles and methods of testing finite state machines-a survey , 1996, Proc. IEEE.

[63]  Daniel J. Mosley,et al.  Just Enough Software Test Automation , 2002 .

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

[65]  Vahid Garousi,et al.  Graphical user interface (GUI) testing: Systematic mapping and repository , 2013, Inf. Softw. Technol..

[66]  Vahid Garousi,et al.  A Search-Based Approach for Cost-Effective Software Test Automation Decision Support and an Industrial Case Study , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[67]  Adam Kolawa,et al.  Automated Defect Prevention , 2007 .

[68]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[69]  Pearl Brereton,et al.  Protocol for a Tertiary study of Systematic Literature Reviews and Evidence-based Guidelines in IT and Software Engineering , 2009 .

[70]  Clare Oakland,et al.  Doing a Literature Review in Health and Social Care: A Practical Guide Aveyard Helen Doing a Literature Review in Health and Social Care: A Practical Guide208pp £19.99 Open University Press Third edition 9780335263073 0335263070 , 2015 .