Game Development Reference
Directed testing commonly begins when one or more testers report a “random�? crash
in the game. This is a very frustrating experience, because it often delays running com-
plete test suites and a significant amount of time may be spent restarting the applica-
tion and re-running tests. Unstable code, especially in the later phases of the project,
can be very stressful. Again, remember Rule 1: Don't panic .
“Random�? crashes are seldom random. Use directed testing and the scientific method to eliminate
uncertainty along your path to being able to reproduce the bug often enough so that you can get
the development team to find and fix it.
The Scientific Method
It's no coincidence that the department where game testers work is often called the
lab . Like most laboratories, it's a place where the scientific method is used both to
investigate and to explore. If, like most of us, you've forgotten this lesson from middle
school science class, here's a review of the steps in the scientific method:
1. Observe some phenomenon.
2. Develop a theory—a hypothesis —as to what caused the phenomenon.
3. Use the hypothesis to make a prediction; for example, if I do this, it will
happen again .
4. Test that prediction by retracing the steps in your hypothesis.
5. Repeat steps 3 and 4 until you are reasonably certain your hypothesis is
These steps provide the structure for any investigative directed testing. Assume you've
encountered a quirky defect in a PC game that seems very hard to reproduce. It may
be a condition that breaks a script, gets your character stuck in the geometry of the
level, causes the audio to drop out suddenly, or that favorite of game testers and players
alike, a crash to your PC's desktop. Here's what you do:
First , review your notes. Quickly jot down any information about what you were
doing when the defect occurred, while it's still fresh in your mind. Review the video-
tape. Determine as best you can the very last thing you were doing in the game before
Second , process all this information and make your best educated guess as to what
specific combination and order of inputs may have caused the crash. Before you can
retrace your steps, you have to determine what they were. Write down the input path
you think most likely caused the crash.