February 25, 2010

Game Testing: How to test game software?

Games are available on a number of devices such as computers, mobile handsets, television sets and so on. In this post, I am going to focus on testing the software of a game that runs on a computer. See the video, Game Testing for Game Tester, or read on...

When you plan to test a software application, you tend to think about the types of testing required. Similarly, when you plan to test gaming software, you should identify the types of testing required. The common types of testing for game software are listed below. Keep in mind that the objectives of a game are quite different from the objectives of a business application. For example, the objectives of a business application could be to provide the given user the features to easily, reliably and accurately perform certain business tasks. In the case of a game, the main objective is having fun. There may be other objectives such as appealing to different types of player demographics, educating the players or developing team skills. Therefore, a game may be required to provide the following:
1. An intriguing or complex plot
2. Realistic/ delightful graphics (including characters, backgrounds and equipment) and sounds
3. Random events (to keep the player interested)
4. Little known facts (to educate the player)
5. Facilitate players to work as teams (In case of multi-player games)
Therefore, the following types of testing should be seen in the light of the given game's objectives.
1. Installation testing
Unless it is a (totally) web-based game, there would be some software that the player needs to install on their computer first. The installation process has a series of steps that should be tested on the common computer configurations (each configuration specifies data like the Processor, RAM, Hard Disk, Display, Display RAM, operating system etc.) used by players.
You should design test cases for the installation steps and then execute these test cases on each of the common configurations.
You should also check the completeness and accuracy of the content in the installation guide. This may be done just once (on the most common computer configuration).

2. Feature testing
This is the most important type of game testing. Typically, the game would have a number of features. You should aim to cover the game's features as exhaustively as feasible. An efficient way to accomplish this is to design test cases in a number of ways, such as:
a. Detailed test cases - These test cases are suitable to cover obvious features e.g. game options, progression from one level to the next, correct working of the controls, start/ suspend/ resume/ stop game etc.
b. Task based test cases - These test cases are at a higher level of detail. They take into account the objectives a player could have e.g. go through each level and win the game, choose and old saved game and continue it etc.
c. Test matrices - These test cases are useful when there are different features for different player statuses e.g. a particular weapon is available to the player only after clearing a particular level, the player can go through an obstacle only when they have collected a particular item before. A test matrix is drawn in the form of a table. The rows could then represent the features and the columns the player statuses (e.g. current level).
Executing the different types of test cases may still not be sufficient to discover a majority of the defects. You should perform exploratory testing. In simple words, this would mean play the game and perform interesting tasks that you think would reveal defects.

3. UI testing
Since games are typically based on user interfaces, this is also an important type of game testing. UI testing includes testing of the graphic elements (e.g. characters in the plot, backgrounds, objects in the foreground) as well as the content (both viewable and audible). An efficient way to test the UI is to first list the checks desired for every graphical element and content type. Then check each item in your list in every logical division of the game (e.g. each screen and each level).

There is an important thing that you should keep in mind regarding UI testing. It is possible that your game is released in multiple languages and cultures. If so, you should create a matrix (a table) listing all the supported languages. Then you should take the help of a speaker of a given supported language to check the content. You should get the content checked in each supported language at least once.

4. Performance testing
A novel story line, incredible graphics and sounds and numerous well-integrated features of a game may still fail to satisfy the player if the game becomes too slow or freezes up. You can check the speeds of operation of the game on common computer configurations. A good way to do this is to identify the common tasks a player is likely to perform. Then you should determine the acceptable times for these tasks. These times are the goals. You should then perform each task in the game and note the time it actually takes to do so. Since there are a large number of tasks to be timed, you should automate the performance tests.
Another flavor of performance testing comprises testing your game at extremes. For example, run a complete game without any pauses at all or run a game continuously for 24 hours or keep on increasing the number of players if your game is multi-player. Running such tests would give you data on how the performance of your game degrades on high loads. If the game shows performance problems at a realistic load, it means that you have discovered a problem that should be fixed.

You now know about the main types of tests that you can run on a game. Remember that feature tests and UI tests are especially important. Wouldn't you like to use your knowledge to test some game software?

4 comments:

  1. Mr. Srideep Mitra from TestPlant Ltd. has let me know that the eggPlant tool can be used for game testing. Here is a video showing the same:
    http://www.testplant.com/SupportServices/play_game.swf
    You will need Adobe Flash Player to view the video. At this time, the size of the video is approx. 125 MB so ensure that you have good bandwidth available to you.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Nice article, thank you for sharing wonderful writeups. I am happy to find your blog on the internet related to the Sports topic. If someone is searching for a that can help them to build Software so you can look at Betfoc as a Software Development Company, one of my friends took their services, and they are wonderful at delivering services on the time.
    Visit Us - Igaming Software Development

    ReplyDelete

Note: Only a member of this blog may post a comment.