Saturday, July 25, 2009

Types of Game Testing - Soak Testing

Soaking, in the context of video games, typically involves leaving the game running for a period of hours or days in various modes of operation, such as idling, paused, or at the title screen. This test requires no user interaction beyond initial setup, and is therefore usually managed by lead testers. The purpose of soaking is to detect the presence of memory leaks or rounding errors that manifest over time, resulting in system instability or odd game behavior. Soak tests are one of the checked requirements for first-party compliance and must be performed on every title. Because it requires no user interaction, soaking is also a euphemism for employees shirking their duties (i.e. not playing the game).

Types of Game Testing - Localization Testing

While general text issues are a minor part of functionality testing, some QA departments use dedicated localization testers. This is especially true with Japanese publishers. Early Japanese game translations were rife with Engrish, and in recent years this has become a more serious concern with Japanese developers as games have taken on a more cinematic presentation. To maintain the impact of the drama, localization testers are employed to review the game's script (which may be thousands of pages long for RPGs or other story-driven experiences), looking to make technical corrections as well as reviewing the translation work itself to ensure that it matches natural speech patterns. Thus, a localization tester acts as an editor. Though localization testing is currently a mainstay of Japanese game development, it will likely expand as the Chinese, Korean, and Russian game industries gain global traction. Those seeking work in this area do not necessarily need to speak foreign languages, but being able to understand the original texts is a helpful and desirable skill. Unlike other forms of testing, however, localization may involve very little actual game interaction. In some cases, the only times that the tester needs to play the game is to understand the context of dialog or interface messages that are not immediately obvious. The game's "script", which is not a script in the literary sense, but rather a collection of all the text strings referenced in the game, is typically catalogued in a spreadsheet that the tester is given to work with.

Types of Game Testing -Compatibility Testing

Compatibility testing is normally required only for PC titles, and testers assigned to this task are expected to have at least basic knowledge of PC hardware. An individual who can assemble their own PCs and setup an operating system is minimally qualified for this job. Compatibility testing differs from functionality testing in that the tester does not really care whether the game itself is correct, but simply that it runs on different configurations of hardware. The tester is usually provided with multiple PCs and/or extra parts. This collection of hardware encompasses various brands of CPUs, video cards, sound cards, and input peripherals such as gamepads and joysticks, and possibly other components as well. The tester is also expected to cross-test different hardware configurations with different operating systems. In addition to a basic pass/fail test, the tester may also be asked to evaluate performance. The results of these performance tests will be used to determine the game's advertised minimum system requirements. In some cases, compatibility or performance issues may be fixed by the developer, especially if a popular brand and model of a certain component is affected. In other cases, especially with legacy hardware or software, support will simply be dropped, and the game's system requirements will reflect this.

Types of Game Testing -Compliance Testing

In large part, compliance testing is the raison d'etre for the existence of game testing labs. First-party licensors for console platforms (e.g. Nintendo, Sony, Microsoft) have strict technical requirements for each title that is licensed for their platforms. Sony publishes a Technical Requirements Checklist (TRC), while Microsoft publishes Technical Certification Requirements (TCR), and Nintendo publishes a set of "guidelines"(Lot Check) that serve a similar purpose. Some of these requirements are highly technical in nature and fall outside the scope of the game tester; however, other parts, most notably the formatting of standard error messages, handling of memory card data, and handling of legally trademarked and copyrighted material, do fall within the responsibility of the game testers to test. If even a single violation is found by the first party during submission for license approval, the game can be rejected (kicked back) to the publisher, possibly costing tens of thousands of dollars in additional testing and resubmission fees. In addition, the delay may cause the title to miss an important launch window, potentially costing the publisher even larger sums of money. The title cannot be published for the system without first-party approval, so it is in the publisher's financial interest to ensure that the title is tested for compliance as rigorously and as frequently as possible.

The requirements themselves are proprietary documents released to developers and publishers under confidentiality agreements. They are not available for the general public to review, although familiarity with these standards is considered a valuable skill to have as a tester.

Compliance may also refer to regulatory bodies such as the ESRB, if the game targets a particular content rating. Testers must flag "objectionable content" in the game that may be inappropriate for the desired rating. As with licensing, games that do not receive the desired rating must be re-edited, retested, and resubmitted at additional cost.

Types of Game Testing -Functionality Testing

Functionality Testing
This is the type of testing that is most commonly associated with the phrase "game testing", as it usually entails playing the game in some form. Functionality testing does not require much in the way of technical knowledge, though understanding basic concepts about programming can give testers insight about the possible cause of a problem, which both reduces the amount of work they have to do, and generally makes their reports easier to understand by the developer. Functionality testers look for general problems within the game itself or its user interface. Major issues include stability (does the game crash?), correctness of game mechanics (does the sword deal damage?), and integrity of game assets (are textures corrupted?).