Unity Application Testing Automation with Appium and Image Recognition

Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 779)


This work is dedicated to the problem of integrating simple functional tests (smoke tests) into the automated continuous integration pipeline. While functional testing is typically performed manually by the QA staff members, there is a large number of scenarios that can be automated, and readily available instruments, such as Appium and Calabash, designed for this task. Automated smoke testing is especially challenging for the applications with nonstandard GUI, such as games made with Unity. The only viable option in this case is to analyze screen content as a flat image and identify GUI elements with pattern matching algorithms. This approach is not novel, but its practical applicability and limitations are rarely discussed. We consider a case study of a mobile tennis game project, developed in Unity and covered with a suite of Appium-supported functional tests. We show how image matching capabilities of OpenCV library can be used in Appium tests to build a reliable automated QA pipeline.


GUI Testing Computer game Automation Non-native Smoke test OpenCV Unity Appium 


  1. 1.
    Appium. Project homepage, Accessed 1 Nov 2016
  2. 2.
    Automating user interface tests. Accessed 1 Nov 2016
  3. 3.
    Calabash. Project homepage, Accessed 1 Nov 2016
  4. 4.
    Jemmy framework. Project homepage, Accessed 20 Nov 2016
  5. 5.
  6. 6.
    Restful web services tutorial. Accessed 4 Feb 2017
  7. 7.
    World of tennis. Project homepage, Accessed 20 Nov 2016
  8. 8.
    Beck, K.: Test Driven Development: By Example. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)Google Scholar
  9. 9.
    Bradski, G., Kaehler, A.: Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly Media Inc., Sebastopol (2008)Google Scholar
  10. 10.
    Dalheimer, M.: Programming with Qt: Writing Portable GUI Applications on Unix and Win 32, 2nd edn. O’Reilly Media, Sebastopol (2002)Google Scholar
  11. 11.
    Duvall, P., Matyas, S., Glover, A.: Continuous Integration: Improving Software Quality and Reducing Risk. Addison-Wesley Professional, Boston (2007)Google Scholar
  12. 12.
    Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)Google Scholar
  13. 13.
  14. 14.
    Helppi, V.V.: Using opencv and akaze for mobile app and game testing, January 2016. Accessed 2 Nov 2016
  15. 15.
    Kazmierczak, S.: Appium with image recognition, February 2016. Accessed: 2 Nov 2016
  16. 16.
    Mahalingam, M.: Learning Continuous Integration with TeamCity. Packt Publishing Ltd., Birmingham (2014)Google Scholar
  17. 17.
    McConnell, S.: Daily build and smoke test. IEEE Softw. 13(4), 144 (1996)Google Scholar
  18. 18.
    Meszaros, G.: xUnit test patterns: Refactoring test code. Pearson Education, Boston (2007)Google Scholar
  19. 19.
    Mozgovoy, M., Purgina, M., Umarov, I.: Believable self-learning ai for world of tennis. In: Proceedings of the IEEE Conference on Computational Intelligence in Games (CIG 2016), pp. 247–253. IEEE, September 2016Google Scholar
  20. 20.
    North, D.: Behavior modification: the evolution of behavior-driven development. Better Software 8(3) (2006)Google Scholar
  21. 21.
    Umarov, I., Mozgovoy, M.: Creating believable and effective AI agents for games and simulations: Reviews and case study. In: Contemporary Advancements in Information Technology Development in Dynamic Environments, pp. 33–57 (2014)Google Scholar
  22. 22.
    Van Veenendaal, E.: Standard glossary of terms used in software testing. International Software Testing Qualifications Board, pp. 1–51 (2010)Google Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.Tsuruga, Ikki-Machi, Aizu-WakamatsuJapan

Personalised recommendations