Industrial Application of Visual GUI Testing: Lessons Learned

  • Emil Alégroth
  • Robert Feldt


A large body of academic knowledge has been devoted to automated software testing in order to support the software market’s demands for continuous software delivery. However, most of these automated techniques approach testing from lower levels of system abstraction, e.g., component level, which limit their applicability for high-level regression testing of, for instance, system and acceptance tests, thus forcing companies to perform these test activities manually, which is considered time consuming, tedious, and error prone.

In this book chapter, we present visual GUI testing (VGT), a tool driven test technique that uses image recognition in order to interact and assert the correctness of a system under test (SUT) through the bitmap graphical user interface (GUI) that is shown to the user on the computer monitor. This approach makes VGT flexible and applicable to any SUT with a GUI but also allows VGT tools to emulate end-user behavior and therefore automate previously manual system and acceptance test cases. In addition to presenting the technique itself, this chapter will also present some VGT tools and empirically identified problems with the technique and how these problems can be mitigated in practice. Finally we will discuss how VGT can be used in the context of continuous software development in order to support market demands for quicker software delivery.


Application Programming Interface Image Recognition System Under Test Continuous Integration Integrate Development Environment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Olsson, H.H., Alahyari, H., Bosch, J.: Climbing the “stairway to heaven” – a multiple-case study exploring barriers in the transition from agile development towards continuous deployment of software. In: 2012 38th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), pp. 392–399. EUROMICRO, IEEE (2012)Google Scholar
  2. 2.
    Olan, M.: Unit testing: test early, test often. J. Comput. Sci. Coll. 19(2), 319–328 (2003)Google Scholar
  3. 3.
    Berner, S., Weber, R., Keller, R.: Observations and lessons learned from automated testing. In: Proceedings of the 27th International Conference on Software Engineering, pp. 571–579. ICSE, ACM (2005)Google Scholar
  4. 4.
    Grechanik, M., Xie, Q., Fu, C.: Creating GUI testing tools using accessibility technologies. In: International Conference on Software Testing, Verification and Validation Workshops, 2009. ICSTW’09, pp. 243–250. ICST, IEEE (2009)Google Scholar
  5. 5.
    Börjesson, E., Feldt, R.: Automated system testing using visual GUI testing tools: A comparative study in industry. In: 2012 I.E. Fifth International Conference on Software Testing, Verification and Validation (ICST), pp. 350–359. ICST, IEEE (2012)Google Scholar
  6. 6.
    Alegroth, E., Feldt, R., Olsson, H.: Transitioning manual system test suites to automated testing: An industrial case study. In: 2013 I.E. Sixth International Conference on Software Testing, Verification and Validation (ICST), pp. 56–65. ICST, IEEE (2013)Google Scholar
  7. 7.
    Alegroth, E., Nass, M., Olsson, H.: JAutomate: A tool for system-and acceptance-test automation. In: 2013 I.E. Sixth International Conference on Software Testing, Verification and Validation (ICST), pp. 439–446. ICST, IEEE (2013)Google Scholar
  8. 8.
    Alégroth, E., Feldt, R., Ryrholm, L.: Visual GUI testing in practice: challenges, problems and limitations. Empir. Softw. Eng. 1–51. Springer US (2014)Google Scholar
  9. 9.
    Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Book, Pearson Education (2010)Google Scholar
  10. 10.
    Itkonen, J., Rautiainen, K.: Exploratory testing: A multiple case study. In: 2005 International Symposium on Empirical Software Engineering, 10 pp. (Nov 2005)Google Scholar
  11. 11.
    Dustin, E., Rashka, J., Paul, J.: Automated Software Testing: Introduction, Management, and Performance. Book, Addison-Wesley Professional (1999)Google Scholar
  12. 12.
    Memon, A.M., Pollack, M.E., Soffa, M.L.: Automated test oracles for GUIs. In: ACM SIGSOFT Software Engineering Notes, vol. 25, pp. 30–39. ACM (2000)Google Scholar
  13. 13.
    Memon, A.: An event-flow model of GUI-based applications for testing. Softw. Test. Verif. Rel. 17(3), 137–157 (2007)CrossRefMathSciNetGoogle Scholar
  14. 14.
    Potter, R.: In: Triggers: GUIding Automation with Pixels to Achieve Data Access, pp. 361–382. Center for automation research, University of Maryland (1992)Google Scholar
  15. 15.
    Yeh, T., Chang, T., Miller, R.: Sikuli: Using GUI screenshots for search and automation. In: Proceedings of the 22nd Annual ACM Symposium on User Interface Software and Technology, pp. 183–192. ACM symposium of UI software and technology, ACM (2009)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.Software Engineering and TechnologyChalmers UniversityGothenburgSweden
  2. 2.Department of Software EngineeringBlekinge University of TechnologyKarlskronaSweden

Personalised recommendations