Due to the popularity of attractive video games and the availability of technical advancements, organizations come up with new games every year. The video game industry is a billion-dollar market with global revenue likely to be more than 138 billion by 2021.
Every year thousands of video games are released in the market and most of them fail due to stiff competition. In order to be successful in such a market, organizations need to focus not only on the development process but also on the testing process. Game testing is the process focused on testing the game and finding bugs in it.
Game testing is like any other software testing but with some differences such as the use of automation is higher in software testing compared to game testing. It is more of a manual process.
Game testers can be individuals who do not have a professional degree while software testers need to have a bachelor’s or master’s degree and based on the domain of the projects, they are required to have in-depth domain knowledge.
In both the testing processes, from testers, dedication, analytical and logical skills are required.
Game Development Life Cycle (GDLC)
Before we discuss the game testing process. Let’s first understand the game development life cycle in brief.
1. Concept Development
In this first phase, as the name suggests, the idea or concept of the game is developed. A concept document is prepared in this phase that details the concept. This becomes helpful to the programmers, artists, and other team members in understanding the idea behind the game development process.
In this phase, once the concept is finalized and the concept document is ready, three more documents are created. These documents are-
- Game design document – This is the most important document in the game development process. It has details of the user interface, features, characters, graphics, sounds of the game.
- Technical design document – It contains details of the programming language to be used, tools to be used, reusable components to be used from existing software, etc.
- Project plan – This document has a detailed project plan of the whole development life cycle and it has sections such as the scope of the project, team members, milestone deliverables, schedules, budget, etc.
Moreover, in this phase, the designers build the prototype based on the decided concept art, gaming levels, and other details.
Here, on the basis of the prototype built in the previous phase, programmers start coding the game. Artists start working on modeling, textures, and animation.
In this phase, a workable product with all the features and complete gameplay is developed but it also uses temporary assets and placeholders. This is the first milestone in the development process.
In this milestone, the game is completely developed with all assets.
6. Code Freeze/Gold
In this phase, all the bugs found in the beta phase are solved the game is basically ready to be released.
7. Release to Manufacture
In this phase, the game is released to the manufacturer.
Once the game is released, the next step is maintenance. Here, whenever required, the team will release a patch to solve the bugs. Also, upgrades are also released if any new features are added to the game.
Game Testing Life Cycle
Before going into the game testing life cycle, first, we need to understand the various levels of testing in any game development life cycle. Based on the development phases discussed in the above section, the following is the basic structure of game testing:
Like any other project, in gaming projects also the testing begins as soon as the project begins.
In this step, the software test plan document is created. This document typically includes test coverage, various methods to be used for testing, and test responsibilities. Some of the major sections of this document are as follows-
- Game description
- Features to be tested (in scope)
- Out of the scope features
- Techniques to be used
- Severity level definitions
- Pass/fail criteria
- Test deliverables and milestones
- Test environments (hardware and software requirements of the environments)
- Schedule of the test
- Risks and mitigation plan
Other important tasks in this phase include finalizing the bug tracking tool, assigning tasks to testing team members, etc.
Two more deliverables of this phase are the test case and test suite. A test case is an individual test designed to check a certain feature or a sub-feature. It has a list of steps that need to be followed in order to complete the execution of the test case.
A test suite is a combination of related test cases of a particular feature or a sub-feature.
Test kickoff activities have two parts – tester preparation and kick-off meeting. In the first part i.e. tester preparation, the teaser needs to follow sun activities as given below-
- Read the document explaining the game feature requirement.
- Gather all the programs and files required for the test.
- Examine the tests.
The second part i.e. kick-off meeting is conducted by the test expert. It has the following sub-activities-
- Give feature overview
- Discuss any questions related to the feature
- Discuss special test instructions, if any
- In case of any improvement or suggestions, discuss them
- Discuss any questions related to the test execution
- Record important issues on the kick-off form and give the copy to the tester
This process helps the tester in improving his test execution, test understanding, and test quality. Kickoff forms collected from various kickoff meetings can also be used in the next meetings and executions.
The deliverable of the alpha development phase, as discussed in the development life cycle, is a working game without some temporary assets. Here, modules developed by different programmers are integrated and then tested a whole system.
The main goals of this phase are to test the game end-to-end by covering all the features at least once. Also, to make sure complete playthrough of the game, to identify critical bugs, to establish performance baselines (examples are load times, frame rate).
The final deliverable of the alpha testing phase is to develop a stable game that has all the features.
The beta development phase has a complete product with all the assets in place along with the final user interface, game logic, AI, artwork, and audio. The main goals of this phase are testing multiplayer gameplay, loading bugs, sound, and visual bugs networking bugs, performance baselines (e.g. frame rate).
Beta testing has two varieties as discussed below-
- Closed Beta – In closed beta or internal beta, the game is not available for the outside public. Usually, an internal testing team along with the developers tests the game and tries to polish it as much as possible. Once they are satisfied with the game, developers make it available for the open beta.
- Open Beta – In open beta or external or public beta, the game is released to the external set of testers. They test the game and provide feedback. The idea here is to do load testing with multiple users accessing the game at the same time and identify the bugs.
Once beta testing is finished, the game is ‘code freeze’ or ‘code lock’. In the gold development phase, the release guidelines are as below:
- All known showstopper bugs should be fixed. (Severity 1)
- More than 90% of all major bugs should be fixed. (Severity 2)
- More than 85% of minor bugs should be fixed. (Severity 3)
- Open issues should be communicated to the technical support team or added in the game’s ‘Readme.txt’ file.
- A performance baseline should have been achieved. (e.g. 60 fps frame rate)
Here, the team should perform as many test suites a possible one last time before sending it to the platform manufacturer. The manufacturer runs its own tests and finds the bugs. Once these bugs are solved, the game gets the ‘Gold’ status.
Once the game is released in the market, it is very much likely that bugs will be found. When developers solve such bugs, the testing team needs to test them. These bug fixes are released as patches. Moreover, if any new features are added to the game, they again require testing, and these new features are released as upgrades.
A typical game testing life cycle has the following six steps. These steps should be followed at every testing level (discussed above) and for every build-
- Plan and Design the Test – The software testing plan is designed in the pre-production phase, and this document needs to be rechecked and modified in every build. If there are any changes in the design document and new test cases are developed, they need to be incorporated in the plan. Also, details of old fixed bugs need to be documented along with thorough testing of these bugs.
- Prepare for Test – Here, the testing team should work on their tests and environments. The development team will provide the test code.
- Perform the Test – Now, the next step is to perform the testing and identify the bugs.
- Report the Results – Once bugs have been found, they need to be reported in a predefined structured manner.
- Repair the Bug – The testing team will communicate and explain the bugs to the development team. The development team will solve these bugs.
- Repeat from Step 1 – Now once the development team fixes the bugs, a new build will be available. The testing team will start from step 1 and again revisit the test plan document.
This whole cycle is repeated until the team is satisfied with the product. It is important to keep track of all the solved and pending bugs.
Game testing is a process that does not demand any professional degree from the testers, but it is important to have certain qualities like in-depth knowledge of the video games, analytical skills, logical skills, dedication, patience, ability to work under pressure, etc. The whole testing process is spread across almost all the phases of the development cycle and it has many levels and steps. It is crucial that the testers focus on each level and step during the testing to make the game a success in the market.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can connect with him on LinkedIn.