368 THE GAME PRODUCTION HANDBOOK, 2/E
supposed to be ready for testing, the development team is better able to plan
their work so they can accommodate the testing schedule.
After the build is in testing, the testing cycle is fairly straightforward. The
testers will run through the test plan, find bugs, and enter them in the database.
When the bugs are in the database, they are assigned to the appropriate person
for fixing. This person fixes the bug and resubmits his work for verification in a
future build. The tester will then check the fix in the build and indicate that is it
is ready to be closed out of the database.
Writing Bugs
Once production and testing are in full swing, the central bug tracking database
is the most valuable resource for tracking the progress of the game. Members of
the development team should be required to input any bugs they encounter in
the database, along with any feature requests, or feedback that requires a change
in the game. While a feature request and feedback are not bugs, it is good to
include them in the database so they can be tracked, addressed, and verified in
the game. If a feature request is not approved for inclusion in the game, it can
be tagged as a feature request and addressed for any future patches or sequels
to the game. During a code freeze, engineers usually don’t make any changes
to the code unless it is specifically recorded in the bug database and assigned to
someone to be fixed.
Because the team will have so many people writing and entering bugs in the
database, it is imperative to establish a standardized process for writing bugs and
training everyone on it. The bugs need to contain the pertinent information so
that the development team can easily figure out what the bug is, find it in the
game, and fix it. Most bug-tracking databases have a standard set of information
fields to be filled in when writing a bug. These fields include:
Version: This is the version of the build where the bug was found. The ver-
sion is useful for tracking the progress of the bug from the time it is found, to
when it is fixed, and then when it is verified. If the bug pops up again later on
in the cycle, the version history will be useful information for tracking down
the cause of the bug.
Category: This indicates if it is an art, design, or engineering bug. Usually
this is fairly easy to figure out, but if in doubt the tester will make a best
guess as to the category. When the appropriate lead takes a look at the bug,
they may re-categorize it.
Component: A sub-category of “category.” This offers more details on what
behaviors the bug is exhibiting. For example, sub-categories in “engineer-
ing” might be networking, AI, UI, physics, load/save, and so on.