skip to main content
10.1145/3613372.3613408acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Cytestion: Automated GUI Testing for Web Applications

Published:25 September 2023Publication History

ABSTRACT

Automated testing in web applications is becoming increasingly popular due to its cost-effectiveness, efficiency, and repeatability. Ensuring the quality of such software is vital, especially in scenarios where business requirements are uncertain and volatile. In this paper, we propose Cytestion, a tool that automatically explores a web application’s Graphical User Interface (GUI) to detect faults that cause visible failures, such as crashes, errors, and unexpected behaviors. For that, it applies a scriptless and progressive approach. To work as an oracle, Cytestion evaluates the output of each test case execution by considering the HTTP status of server requests, default and customized failure GUI messages, and console failure messages. We evaluated the effectiveness and cost of our approach in two empirical studies. The first study works with injected faults in open-source projects, while the second is a case study on eight industrial projects. Cytestion detected several faults in both studies and outperformed a state-of-the-art GUI testing tool.

References

  1. Andrea Adamoli, Dmitrijs Zaparanuks, Milan Jovic, and Matthias Hauswirth. 2011. Automated GUI performance testing. Software Quality Journal 19, 4 (2011), 801–839.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Emil Alégroth, Robert Feldt, and Helena H Olsson. 2013. Transitioning manual system test suites to automated testing: An industrial case study. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation. IEEE, IEEE, Luxembourg, Luxembourg, 56–65. https://doi.org/10.1109/ICST.2013.14Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Emil Alégroth, Zebao Gao, Rafael Oliveira, and Atif Memon. 2015. Conceptualization and evaluation of component-based testing unified with visual gui testing: an empirical study. In 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST). IEEE, IEEE, Graz, Austria, 1–10. https://doi.org/10.1109/ICST.2015.7102584Google ScholarGoogle ScholarCross RefCross Ref
  4. Francisco Almenar, Anna I Esparcia-Alcázar, Mirella Martínez, and Urko Rueda. 2016. Automated Testing of Web Applications with TESTAR: Lessons Learned Testing the Odoo Tool. In Search Based Software Engineering: 8th International Symposium, SSBSE 2016, Raleigh, NC, USA, October 8-10, 2016, Proceedings 8. Springer, Springer, Raleigh, North Carolina, USA, 218–223. https://doi.org/10.1007/978-3-319-47106-8_15Google ScholarGoogle ScholarCross RefCross Ref
  5. James H Andrews, Lionel C Briand, and Yvan Labiche. 2005. Is mutation an appropriate tool for testing experiments?. In Proceedings of the 27th international conference on Software engineering. Association for Computing Machinery, St. Louis MO USA, 402–411.Google ScholarGoogle Scholar
  6. Tanzirul Azim and Iulian Neamtiu. 2013. Targeted and depth-first exploration for systematic testing of android apps. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications. Association for Computing Machinery, New York, NY, USA, 641–660. https://doi.org/10.1145/2509136.2509549Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Ishan Banerjee, Bao Nguyen, Vahid Garousi, and Atif Memon. 2013. Graphical user interface (GUI) testing: Systematic mapping and repository. Information and Software Technology 55, 10 (2013), 1679–1694.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Earl T Barr, Mark Harman, Phil McMinn, Muzammil Shahbaz, and Shin Yoo. 2014. The oracle problem in software testing: A survey. IEEE transactions on software engineering 41, 5 (2014), 507–525.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Sebastian Bauersfeld, Tanja EJ Vos, Nelly Condori-Fernández, Alessandra Bagnato, and Etienne Brosse. 2014. Evaluating the TESTAR tool in an industrial case study. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. Association for Computing Machinery, New York, NY, USA, 1–9.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Axel Bons, Beatriz Marín, Pekka Aho, and Tanja EJ Vos. 2023. Scripted and scriptless GUI testing for web applications: An industrial case. Information and Software Technology 158 (2023), 107172.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Emil Borjesson and Robert Feldt. 2012. Automated system testing using visual gui testing tools: A comparative study in industry. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation. IEEE, 350–359.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hatim Chahim, Mehmet Duran, Tanja EJ Vos, Pekka Aho, and Nelly Condori Fernandez. 2020. Scriptless testing at the GUI level in an industrial setting. In Research Challenges in Information Science: 14th International Conference, RCIS 2020, Limassol, Cyprus, September 23–25, 2020, Proceedings 14. Springer, 267–284.Google ScholarGoogle ScholarCross RefCross Ref
  13. Peter Chapman and David Evans. 2011. Automated black-box detection of side-channel vulnerabilities in web applications. In Proceedings of the 18th ACM conference on Computer and communications security. 263–274.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kinga Dobolyi, Elizabeth Soechting, and Westley Weimer. 2011. Automating regression testing using web-based application similarities. International journal on software tools for technology transfer 13 (2011), 111–129. https://doi.org/10.1007/s10009-010-0170-xGoogle ScholarGoogle ScholarCross RefCross Ref
  15. Zebao Gao, Chunrong Fang, and Atif M Memon. 2015. Pushing the limits on automation in GUI regression testing. In 2015 IEEE 26th international symposium on software reliability engineering (ISSRE). IEEE, 565–575.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Boni García, Micael Gallego, Francisco Gortázar, and Mario Munoz-Organero. 2020. A survey of the selenium ecosystem. Electronics 9, 7 (2020), 1067.Google ScholarGoogle ScholarCross RefCross Ref
  17. Mark Grechanik, Qing Xie, and Chen Fu. 2009. Creating GUI testing tools using accessibility technologies. In 2009 International Conference on Software Testing, Verification, and Validation Workshops. IEEE, 243–250.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Mark Grechanik, Qing Xie, and Chen Fu. 2009. Maintaining and evolving GUI-directed test scripts. In 2009 IEEE 31st International Conference on Software Engineering. IEEE, 408–418.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Birgit Hofer, Bernhard Peischl, and Franz Wotawa. 2009. Gui savvy end-to-end testing with smart monkeys. In 2009 ICSE Workshop on Automation of Software Test. IEEE, 130–137.Google ScholarGoogle ScholarCross RefCross Ref
  20. Gunel Jahangirova. 2017. Oracle problem in software testing. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. 444–447.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. René Just, Darioush Jalali, Laura Inozemtseva, Michael D Ernst, Reid Holmes, and Gordon Fraser. 2014. Are mutants a valid substitute for real faults in software testing?. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. 654–665.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Rebecca Krosnick and Steve Oney. 2021. Understanding the challenges and needs of programmers writing web automation scripts. In 2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 1–9.Google ScholarGoogle ScholarCross RefCross Ref
  23. Maurizio Leotta, Diego Clerissi, Filippo Ricca, and Paolo Tonella. 2013. Capture-replay vs. programmable web testing: An empirical assessment during test case evolution. In 2013 20th Working Conference on Reverse Engineering (WCRE). IEEE, 272–281.Google ScholarGoogle ScholarCross RefCross Ref
  24. Maurizio Leotta, Diego Clerissi, Filippo Ricca, and Paolo Tonella. 2014. Visual vs. DOM-based web locators: An empirical study. In Web Engineering: 14th International Conference, ICWE 2014, Toulouse, France, July 1-4, 2014. Proceedings 14. Springer, 322–340.Google ScholarGoogle ScholarCross RefCross Ref
  25. Maurizio Leotta, Diego Clerissi, Filippo Ricca, and Paolo Tonella. 2016. Approaches and tools for automated end-to-end web testing. In Advances in Computers. Vol. 101. Elsevier, 193–237.Google ScholarGoogle Scholar
  26. Grischa Liebel, Emil Alégroth, and Robert Feldt. 2013. State-of-practice in GUI-based system and acceptance testing: An industrial multiple-case study. In 2013 39th Euromicro Conference on Software Engineering and Advanced Applications. IEEE, 17–24.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Mirella Martínez, Anna I Esparcia-Alcázar, Tanja EJ Vos, Pekka Aho, and Joan Fons i Cors. 2018. Towards automated testing of the internet of things: Results obtained with the testar tool. In Leveraging Applications of Formal Methods, Verification and Validation. Distributed Systems: 8th International Symposium, ISoLA 2018, Limassol, Cyprus, November 5-9, 2018, Proceedings, Part III 8. Springer, 375–385.Google ScholarGoogle Scholar
  28. Atif Memon, Ishan Banerjee, and Adithya Nagarajan. 2003. GUI ripping: Reverse engineering of graphical user interfaces for testing. In 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings. IEEE, 260–269.Google ScholarGoogle ScholarCross RefCross Ref
  29. Ali Mesbah, Arie van Deursen, and Stefan Lenselink. 2012. Crawling Ajax-Based Web Applications through Dynamic Analysis of User Interface State Changes. ACM Trans. Web 6, 1, Article 3 (mar 2012), 30 pages. https://doi.org/10.1145/2109205.2109208Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Fatini Mobaraya, Shahid Ali, 2019. Technical Analysis of Selenium and Cypress as Functional Automation Framework for Modern Web Application Testing. In 9th International Conference on Computer Science.Google ScholarGoogle ScholarCross RefCross Ref
  31. Ad Mulders, Olivia Rodriguez Valdes, Fernando Pastor Ricós, Pekka Aho, Beatriz Marín, and Tanja EJ Vos. 2022. State model inference through the GUI using run-time test generation. In International Conference on Research Challenges in Information Science. Springer, 546–563.Google ScholarGoogle ScholarCross RefCross Ref
  32. Michel Nass, Emil Alégroth, and Robert Feldt. 2021. Why many challenges with GUI test automation (will) remain. Information and Software Technology 138 (2021), 106625.Google ScholarGoogle ScholarCross RefCross Ref
  33. Bao N. Nguyen, Bryan Robbins, Ishan Banerjee, and Atif Memon. 2014. GUITAR: An Innovative Tool for Automated Testing of GUI-Driven Software. Automated Software Engg. 21, 1 (mar 2014), 65–105. https://doi.org/10.1007/s10515-013-0128-9Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Dario Olianas, Maurizio Leotta, and Filippo Ricca. 2022. SleepReplacer: a novel tool-based approach for replacing thread sleeps in selenium WebDriver test code. Software Quality Journal (2022), 1–33.Google ScholarGoogle Scholar
  35. Rafael AP Oliveira, Upulee Kanewala, and Paulo A Nardi. 2014. Automated test oracles: State of the art, taxonomies, and trends. Advances in computers 95 (2014), 113–199.Google ScholarGoogle ScholarCross RefCross Ref
  36. Filippo Ricca, Maurizio Leotta, and Andrea Stocco. 2019. Three open problems in the context of e2e web testing and a vision: Neonate. In Advances in Computers. Vol. 113. Elsevier, 89–133.Google ScholarGoogle Scholar
  37. Fernando Pastor Ricós, Arend Slomp, Beatriz Marín, Pekka Aho, and Tanja EJ Vos. 2023. Distributed state model inference for scriptless GUI testing. Journal of Systems and Software 200 (2023), 111645.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Olivia Rodríguez-Valdés, Tanja EJ Vos, Pekka Aho, and Beatriz Marín. 2021. 30 years of automated GUI testing: A bibliometric analysis. In Quality of Information and Communications Technology: 14th International Conference, QUATIC 2021, Algarve, Portugal, September 8–11, 2021, Proceedings 14. Springer, 473–488.Google ScholarGoogle ScholarCross RefCross Ref
  39. Carlos Gabriel Gomes de Melo Silva. 2019. Estudo comparativo de ferramentas de testes de ponta a ponta automatizados em sistemas web. B.S. thesis. Universidade Federal do Rio Grande do Norte.Google ScholarGoogle Scholar
  40. Tommi Takala, Mika Katara, and Julian Harty. 2011. Experiences of system-level model-based GUI testing of an Android application. In 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation. IEEE, 377–386.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Paolo Tonella, Filippo Ricca, and Alessandro Marchetto. 2014. Recent advances in web testing. Advances in Computers 93 (2014), 1–51.Google ScholarGoogle ScholarCross RefCross Ref
  42. Tanja EJ Vos, Pekka Aho, Fernando Pastor Ricos, Olivia Rodriguez-Valdes, and Ad Mulders. 2021. TESTAR–scriptless testing through graphical user interface. Software Testing, Verification and Reliability 31, 3 (2021), e1771.Google ScholarGoogle ScholarCross RefCross Ref
  43. Tanja EJ Vos, Peter M Kruse, Nelly Condori-Fernández, Sebastian Bauersfeld, and Joachim Wegener. 2015. Testar: Tool support for test automation at the user interface level. International Journal of Information System Modeling and Design (IJISMD) 6, 3 (2015), 46–83.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Dacong Yan, Shengqian Yang, and Atanas Rountev. 2013. Systematic testing for resource leaks in Android applications. In 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE). IEEE, 411–420. https://doi.org/10.1109/ISSRE.2013.6698894Google ScholarGoogle ScholarCross RefCross Ref
  45. Xun Yuan and Atif M. Memon. 2010. Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback. IEEE Transactions on Software Engineering 36, 1 (2010), 81–95. https://doi.org/10.1109/TSE.2009.68Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Cytestion: Automated GUI Testing for Web Applications

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      SBES '23: Proceedings of the XXXVII Brazilian Symposium on Software Engineering
      September 2023
      570 pages
      ISBN:9798400707872
      DOI:10.1145/3613372

      Copyright © 2023 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 25 September 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate147of427submissions,34%
    • Article Metrics

      • Downloads (Last 12 months)68
      • Downloads (Last 6 weeks)11

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format