Software testing; test automation; test patterns; test code engineering; experience report; industrial case study
Résumé :
[en] Motivated by a real-world industrial need in the context of a large IT solutions company based in Turkey, the authors and their colleagues developed and introduced automated test suites for GUI testing of two large-scale law-practice management software (comprising of 414 and 105 KLOC). We report in this paper our experience in developing and introducing a set of large automated test suites (more than 50 KLOC in total), using best practices in state-of-the art and –practice, and to report its observed benefits by conducting cost-benefit analysis in the specific industrial context. The project was conducted based on the principles of case-study and “action research” in which the real industrial needs drove the research. Among the best practices that we used are the followings: (1) the page-object test pattern, (2) modularity in test code, (3) creating test-specific libraries, and (4) using systematic guidelines to decide when and what (test cases) to automate. To assess the cost-benefit and Return On Investment (ROI) of test automation, we followed a hybrid measurement approach to assess both the quantitative and qualitative (intangible) benefits of test automation. The empirical findings showed that the automated GUI testing approach has indeed benefitted the test and QA team in the company under study and automation has been highly welcome by the test engineers. By serving as a success story and experience report in development and introduction of automated test suites in an industrial setting, this paper adds to the body of evidence in this area and it aims at sharing both technical (e.g., using automated test patterns) and process aspects (e.g., test process improvement) of our project with other practitioners and researchers with the hope of encouraging more industry-academia collaborations in test automation.
Centre de recherche :
Interdisciplinary Centre for Security, Reliability and Trust (SnT) > Software Verification and Validation Lab (SVV Lab)
Disciplines :
Sciences informatiques
Auteur, co-auteur :
GAROUSI, Vahid ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Yıldırım, Erdem
Co-auteurs externes :
yes
Langue du document :
Anglais
Titre :
Introducing automated GUI testing and observing its benefits: an industrial case study in the context of law-practice management software
Date de publication/diffusion :
2017
Nom de la manifestation :
ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)
Lieu de la manifestation :
Toronto, Canada
Date de la manifestation :
November 2017
Manifestation à portée :
International
Titre de l'ouvrage principal :
Proceedings of ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)
Pierre Audoin Consultants (PAC), "Software testing spends to hit Euro 100bn by 2014," https://www.pac-online.com/software-testing-spendshit-eur100bn-2014-press-release, 2014.
Y. Amannejad, V. Garousi, R. Irving, and Z. Sahaf, "A Search-based Approach for Cost-Effective Software Test Automation Decision Support and an Industrial Case Study," in Proc. of International Workshop on Regression Testing, co-located with the IEEE International Conference on Software Testing, Verification, and Validation, Cleveland, OH, USA, 2014, pp. 302-311.
V. Garousi and F. Elberzhager, "Test automation: not just for test execution," IEEE Software, In Press, 2017.
V. Garousi and M. Felderer, "Developing, verifying and maintaining high-quality automated test scripts," IEEE Software, vol. 33, no. 3, pp. 68-75, 2016.
Infosys Co., "Case Study-Automating testing for a leading insurance company in Europe and the United States," https://www.infosys.com/industries/insurance/casestudies/ Pages/automated-testing.aspx, Last accessed: Apr. 2017.
P. S. M. d. Santos and G. H. Travassos, "Action research use in software engineering: An initial survey," in Proceedings of the International Symposium on Empirical Software Engineering and Measurement, 2009, pp. 414-417, 1671296.
T. Leibrich, "5 Reasons Why Test Automation Can Fail," https://www.thoughtworks.com/insights/blog/5-reasons-why-testautomation-can-fail, Last accessed: Apr. 2017.
C. Pinheiro, V. Garousi, F. Maurer, and J. Sillito, "Introducing Automated Environment Configuration Testing in an Industrial Setting," in Proceedings of the International Conference on Software Engineering and Knowledge Engineering, Workshop on Software Test Automation, Practice, and Standardization, 2010, pp. 186-191.
S. A. Jolly, V. Garousi, and M. M. Eskandar, "Automated Unit Testing of a SCADA Control Software: An Industrial Case Study based on Action Research," in IEEE International Conference on Software Testing, Verification and Validation (ICST), 2012, pp. 400-409.
V. Garousi, M. Felderer, and T. Hacalo-lu, "Software test maturity assessment and test process improvement: A multivocal literature review," Information and Software Technology, vol. 85, pp. 16-42, 2017.
V. Garousi and M. V. Mäntylä, "When and what to automate in software testing? A multi-vocal literature review," Information and Software Technology, vol. 76, pp. 92-117, 2016.
P. Runeson and M. Höst, "Guidelines for conducting and reporting case study research in software engineering," Empirical Software Engineering, vol. 14, no. 2, pp. 131-164, 2009.
Innova IT Solutions A.-., "UYAP-Compatible Law Automation System (HOPE), in Turkish: UYAP Uyumlu Hukuk Otomasyonu (HOPE)," http://www.innova.com.tr/uyap-uyumlu-hukuk-otomasyon-sistemi.asp, Last accessed: Apr. 2017.
D. J. Reifer, Software Maintenance Success Recipes. CRC Press, 2012.
S. Newman, Building Microservices: Designing Fine-Grained Systems. O'Reilly Media, 2015.
V. Garousi and K. Herkilo-lu, "Selecting the right topics for industryacademia collaborations in software testing: an experience report," in IEEE International Conference on Software Testing, Verification, and Validation, 2016, pp. 213-222.
V. Garousi and D. Pfahl, "When to Automate Software Testing? A Decision-Support Approach Based on Process Simulation," Wiley Journal of Software: Evolution and Process, vol. 28, no. 4, pp. 272-285, 2016.
G. Meszaros, xUnit Test Patterns. Pearson Education, 2007.
D. E. Perry, A. A. Porter, and L. G. Votta, "Empirical studies of software engineering: a roadmap," presented at the Conference on The Future of Software Engineering, 2000.
V. R. Basili, "Software modeling and measurement: the Goal/Question/Metric paradigm," Technical Report, University of Maryland at College Park1992.
R. L. Glass and T. DeMarco, Software Creativity 2.0. developer. Books, 2006.
V. Garousi, M. Felderer, and M. V. Mäntylä, "The need for multivocal literature reviews in software engineering: complementing systematic literature reviews with grey literature," in International Conference on Evaluation and Assessment in Software Engineering, Limmerick, Ireland, 2016, pp. 171-176.
D. R. Kuhn, D. R. Wallace, and J. A. M. Gallo, "Software Fault Interactions and Implications for Software Testing," IEEE Trans. Softw. Eng., vol. 30, no. 6, pp. 418-421, 2004.
V. Garousi and M. Felderer, "Worlds apart: industrial and academic focus areas in software testing," IEEE Software, vol. 34, no. 5, pp. 38-45, 2017.
D. I. K. Sjoberg, T. Dyba, and M. Jorgensen, "The Future of Empirical Methods in Software Engineering Research," in Future of Software Engineering, 2007, pp. 358-378.
D. Graham and M. Fewster, Experiences of Test Automation: Case Studies of Software Test Automation. Addison-Wesley Professional; 1 edition, 2012.
LogiGear Corp., "Test automation case studies-TestArchitect," http://testarchitect.logigear.com/resources/case-study.html, Last accessed: Apr. 2017.
Infosys Limited, "End-to-end test automation for a next-generation network of a leading UK telecommunications service provider," https://www.infosys.com/engineering-services/case-studies/Pages/testautomation-tier-1-network.aspx, Last accessed: Apr. 2017.
Belatrix Software Factory, "Case Study: From Manual Testing to Automated Testing," http://www.belatrixsf.com/downloads/AutomatedTesting-EN.pdf, Last accessed: Apr. 2017.
ELEKS Corp., "Proven cost effectiveness through automated testing," http://eleks.com/case-studies/proven-cost-effectiveness-throughautomated-testing, Last accessed: Apr. 2017.
M. Gittens, P. Gupta, D. Godwin, H. Pereyra, and J. Riihimaki, "Focused iterative testing: a test automation case study," presented at the Proceedings of the International Workshop on Testing Database Systems, 2008.
L. Williams, G. Kudrjavets, and N. Nagappan, "On the Effectiveness of Unit Test Automation at Microsoft," in International Symposium on Software Reliability Engineering, 2009, pp. 81-89.
V. Garousi, M. M. Eskandar, and K. Herkilo-lu, "Industry-academia collaborations in software testing: experience and success stories from Canada and Turkey," Software Quality Journal, special issue on Industry Academia Collaborations in Software Testing, pp. 1-53, 2016.
G. Urul, V. Garousi, and G. Urul, "Test Automation for Embedded Realtime Software: An Approach and Experience Report in the Turkish Industry," in Proceedings of the Turkish National Software Engineering Symposium "Ulusal Yaz-l-m Mühendisli-i Sempozyumu" (UYMS), 2014.
C. Wiederseiner, S. A. Jolly, V. Garousi, and M. M. Eskandar, "An Open-Source Tool for Automated Generation of Black-box xUnit Test Code and its Industrial Evaluation," in Proceedings of the International Conference on Testing: Academic and Industrial Conference-Practice and Research Techniques (TAIC PART), 2010, pp. 118-128.
G. Weishaar, "The Future of Testing: How to build in quality &efficiency right from the start?," http://www2016.taicpart.org/slides/ Weishaar-TAICPART2016-Presentation.pdf, Last accessed: Apr. 2017.
E. Egroth, R. Feldt, and H. H. Olsson, "Transitioning Manual System Test Suites to Automated Testing: An Industrial Case Study," in IEEE International Conference on Software Testing, Verification and Validation, 2013, pp. 56-65.
E. Semaria, "Testing Migration: Shifting from Manual to Automatic," https://blog.fugue.co/2016-03-21-testing-migration-shifting-frommanual-to-automatic.html, 2016, Last accessed: Apr. 2017.
M. Cohn, Succeeding with Agile: Software Development Using Scrum. Addison-Wesley, 2010.
B. Dijkstra, "The test automation pyramid," http://www.ontestautomation.com/the-test-automation-pyramid/, Last accessed: Apr. 2017.
J. Ferguson, BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle. Manning Publications Company, 2014.
SmartBear Software, "Selecting the Right Automated Testing Tool," https://smartbear.com/learn/automated-testing/selecting-automatedtesting-tools/, Last accessed: Apr. 2017.
H. Bajaj, "Choosing the right automation tool and framework is critical to project success," https://www.infosys.com/it-services/validationsolutions/ white-papers/documents/choosing-right-automation-tool.pdf, Last accessed: Mar. 2017.
Various authors, "How to Choose the Best Automation Testing Tool," http://www.softwaretestinghelp.com/choosing-automation-tool-foryour-organization/, Last accessed: Apr. 2017.
P. Raulamo, M. V. Mäntylä, and V. Garousi, "Choosing the right test automation tool: a Grey literature review," in International Conference on Evaluation and Assessment in Software Engineering, Karlskrona, Sweden, 2017, pp. 21-30.
P. Raulamo-Jurvanen, K. Kakkonen, and M. Mäntylä, "Using Surveys and Web-Scraping to Select Tools for Software Testing Consultancy," in International Conference on Product-Focused Software Process Improvement (PROFES), 2016.
C. Wohlin, K. Wnuk, D. Smite, U. Franke, D. Badampudi, and A. Cicchetti, "Supporting Strategic Decision-Making for Selection of Software Assets," in Proceedings of International Conference on Software Business, 2016, pp. 1-15.
P. Niederwieser, "Taming Functional Web Testing with Spock and Geb," https://qconlondon.com/london-2013/qconlondon.com/dl/qconlondon-2013/slides/PeterNiederwieser-TamingFunctionalWebTestingWithSpo ckAndGeb.pdf, Last accessed: Apr. 2017.
S. Amland, "Risk-based testing:: Risk analysis fundamentals and metrics for software testing including a financial application case study," Journal of Systems and Software, vol. 53, no. 3, pp. 287-295, 9/15/ 2000.
D. F. Rico, ROI of software process improvement: Metrics for project managers and software engineers. J. Ross Publishing, 2004.
S. Tilkov, "Jay Fields on Working with Unit Tests," IEEE Software, vol. 33, no. 5, pp. 117-120, 2016.
Z. Sahaf, V. Garousi, D. Pfahl, R. Irving, and Y. Amannejad, "When to Automate Software Testing? Decision Support based on System Dynamics-An Industrial Case Study," in Proc. of International Conference on Software and Systems Process, 2014, pp. 149-158.
M. Fowler, "GivenWhenThen," http://martinfowler.com/bliki/GivenWhenThen.html, Last accessed: Apr. 2017.
S. Govindaraj, Test-Driven Python Development. Packt Publishing Ltd, 2015.
P. Sams, Selenium Essentials. Packt Publishing Ltd, 2015.
J. Abrahms, "Selenium's Page Object Pattern: The Key to Maintainable Tests," https://justin.abrah.ms/python/selenium-page-object-pattern-The-key-to-maintainable-tests.html, Last accessed: Apr. 2017.
M. Klewitz, "CodeIris tool," http://www.codeiris.com/what-is-it/, Last accessed: Mar. 2017.
Healthcare Information and Management Systems Society (HIMSS), "ROI Research in Healthcare," http://apps.himss.org/transformation/docs/ResearchReport1.pdf, Last accessed: Apr. 2017.
QASymphony Corp., "The Qualitative &Intangible Benefits of Exploratory Testing," https://www.youtube.com/watch?v=dE0nU4nfaaU, Last accessed: Apr. 2017.
V. Garousi, K. Petersen, and B. Özkan, "Challenges and best practices in industry-academia collaborations in software engineering: a systematic literature review," Information and Software Technology, vol. 79, pp. 106-127, 2016.
C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, 2000.