A game is software that consists of many functions and components. Even if we simply list the content included in the RPG game, there is a lot of content as shown below.

graph TD; Player --> Game NPC --> Game Monster --> Game Vehicle --> Game Stage --> Game Equip --> Game Looting --> Game Ranking --> Game Quest --> Game

Players use/equip various items and encounter and interact with many NPCs and Monsters. This journey can have many variables and an unfathomable number of scenarios.

This amount of content indicates that there is a lot to test, but it also raises questions about whether complex content can be tested automatically.

However, there are examples of actual automation of game testing as shown below.

This article covers End-to-End (E2E) UI manipulation and automated testing through user input. It is unrelated to topics such as game server stress testing.

Game Test Automation Cases

Activision's Call of Duty (PC, Console)
NCSoft ( Mobile )
QA ν…ŒμŠ€νŠΈ μžλ™ν™”μ— λ„μ „ν•˜λ‹€
β€˜Technology: Push the Boundaries’ μ‹œλ¦¬μ¦ˆμ—μ„œλŠ” μ΄λŸ¬ν•œ 엔씨인듀이 각자의 λΆ„μ•Όμ—μ„œ ν•œκ³„μ— λ§žμ„œ λŠμž„μ—†λŠ” λ„μ „μœΌλ‘œ νƒ„μƒμ‹œν‚¨ β€˜κΈ°μˆ β€™μ„ μ†Œκ°œν•©λ‹ˆλ‹€. κ·Έ 첫 번째 μ΄μ•ΌκΈ°λŠ” κ²Œμž„ QA의 μžλ™ν™” ν…ŒμŠ€νŠΈλ₯Ό ν–₯ν•œ λ„μ „μž…λ‹ˆλ‹€. 이 μ΄μ•ΌκΈ°λŠ” β€˜κΈ°λ³Έμ μ΄κ³  반볡적인 ν…ŒμŠ€νŠΈλ₯Ό μžλ™ν™”ν•  μˆ˜λŠ” μ—†μ„κΉŒ?β€™λΌλŠ” μƒκ°μ—μ„œ μΆœλ°œν•©λ‹ˆλ‹€.
Riot Games's League of Legends ( PC )
Automated Testing for League of Legends
http://riot.com/1QLle1Q #RiotTechBlog
Like a dragon ( PC, Console )

Large companies are actually adopting game test automation and applying it to their industries. I think this is because there are many benefits to applying it. The advantages that can be seen in the above case are as follows.

Advantages of Game Testing Automation

Saves manpower and time by automating regression tests.
  • This part may resonate with some people and not with others. It's not possible to know exactly how much time is spent on regression tests in each team, but automating them can save a significant amount of time. Did you know that Netflix introduced a 'Skip Intro' button and saved 195 years of time? While this may be slightly different, reducing one repetitive task accumulates to significant time savings. Additionally, as the product grows, the need for regression testing increases. As the product grows, the time spent on testing also increases, highlighting the growing importance of automation and the potential time savings it can bring.
  • As games involve a lot of interaction, any element that disrupts the user's focus can be fatal. If these elements are recorded and compared every time, potential disruptors can be detected before they are deployed. Even if they are deployed, issue tracking will be much smoother.

So how was the automation system built in the above cases? Things you can know are as follows:

How was Game Testing Automation Implemented?

Not all cases were automated.
  • As seen in the Ubisoft presentation, we did not automate every case. Automation was about relieving testers from tedious and repetitive tasks, not replacing them. Automation saved time for testers to engage in more productive and exploratory work.
Tests scripts are written by humans.
  • In all the cases mentioned above, Python scripts were used. Yes, you have to write scripts for the desired test cases. This requires knowledge of programming languages like Python and learning how to write test scripts. Additionally, these scripts may need maintenance for new features or functionality changes.
Examples of Automated Test Scripts Vary.
  • The libraries created for automating tests were all internally developed by the company. They cannot be used by other companies. This means there is no standard library for automating game tests currently.
The system requires a lot.
  • You need to develop a WebServer and use a database. You may also use a TSDB to store metrics over time. Furthermore, you have to create a WebPage to visualize all these tests. Integration with a version control system for source code is essential. Creating a system that includes test automation in the development process, integrated with a CI system, and running automated tests with every update, along with alerting in case of failures, is necessary to achieve significant effects.

  • Additionally, for reliability and stability, features like AutoRetry for tests and handling incorrect failures need to be implemented.

  • Creating version-specific metric trend comparisons to verify many aspects, etc.

Building test automation for games doesn't seem that easy. I think you can see significant results by going through the roadmap below. What do you think?

Journey to Game Testing Automation:

  1. Integrate a game testing automation library into the game.
  2. Learn how to write game testing scripts that can manipulate the game from outside.
  3. Write and execute game testing scripts.
  4. Integrate with a CI system to automate the execution of testing scripts.
  5. Create a report system that allows tracking of the causes of test failures.
  6. Implement notifications through platforms like Slack for awareness.

Embarking on the journey of game testing automation and achieving meaningful results may feel like a long process. However, if game testing automation appeals to you, why not give it a try?

Dogu Technologies - Seamless Test Automation Platform
Revolutionize your testing workflow with our game and application test automation platform. Execute automated tests using Dogu and optimize your software quality assurance.