Developer for Nuclear Dawn mod (May 2005-Dec 2008) :: QA Tester for SEGA Europe (Dec 2007-Aug 2009) :: Production Tester for Splash Damage (Aug 2009-)

Report article Mod Tester's Handbook

A reference guide for testing mods. Includes info on how to find bugs, how to narrow down the steps to reproduce and how to write good bug reports. Also includes a 'game development terminology' reference section.

Posted by Crispy on Jul 25th, 2008 digg this super bookmark Page 10 of 11    
Intermediate QA/Testing.


Writing a Bug Report: QA terminology

A list of terms used frequently in development and testing

AI (a.k.a. Artificial Intelligence)
A set of behavioural responses programmed into computer-controlled characters and enemies designed to challenge and further immerse the player. Most AI is handled in the game code, but in some single-player or co-operative games, more tightly scripted elements like pathfinding can be put together in a level editor and fall under the responsibility of the game or level designer.

Alpha (channel)
A part of the texture that defines its area as being transparent or translucent in the game. Colours uncommon in most environments are used to designate the areas for Alpha removal, such as pure blue, magenta or bright green. If an Alpha is not functioning correctly for a game texture, one of the aforementioned colours may be visible.

Alpha (version)
An incredibly early build of the game that has enough there to boot up, but lacking many features. A working blueprint of the game that gives some idea of structure and layout. Many features will be unimplemented at this stage; expect crashes, hangs and soft locks due to missing/non-functional files, basic or placeholder artwork and rough audio.

Beta
The stage at which a game is feature and content complete and in a playable state. In theory the game can be tested from start to finish (perhaps by use of some debug commands to circumnavigate known issues). It is by no means bug-free, but most major issues should have been addressed.

Blocker
Any bug that prevents the user from progressing in the game. Blockers are absolute, i.e. if the level or game can be restarted or absolutely anything can be done (no matter how unintuitive or out of character) to bypass a critical issue, the issue in question is not a blocker. In short, blockers prevent full testing of the game and receive a very high fix priority.

Brush
In level editors that use Binary Space Partitioning (or BSP) such as the Half-Life 2 engine, any three-dimensional solid that is not an 'entity' or a model. Most of the major geometry in a level of this type -such as the ground, walls, ceilings, etc.- will be made out of brushes.

BSoD (a.k.a. Blue Screen of Death)
An acronym to describe a crash resulting in a blue screen with an error message or a call stack. Not just limited to PCs; BSoDs can occur on most consoles.

Build
A fully-compiled version of the game. Any time a change is made to the game files and the change is committed to the master game files, the game's build number increases by 1. With an SVN system your mod will likely run into thousands of builds before completion, since every minor change can be committed to the master files with ease. If you have a single member mastering your builds manually, they will probably only compile a new build when needed.

C2D / C2W (Crash to Desktop/Windows)
An acronym used to describe when a game closes itself abruptly and returns the user to the desktop environment of their computer.

Call stack
For the purposes of simplification (please correct me if I'm wrong), a list of a program's subroutines in operation at the time of a crash. Essentially a more detailed error message, a call stack appears on-screen as an alternative to a dump file or basic error message.

Clip
A term used commonly in testing to describe when a player avatar or object passes through an object. The term is through to be derived from id Software's 'noclip' debug mode, that removed player collision detection from the game. In games development, the term clipping actually means something entirely different.

CNR (cannot reproduce)
When regressing a bug, what the QA Lead would write in the bug notes if any of a bug's repro steps cannot be performed because of another bug. It is good practise to also cite the bug(s) preventing regression. A developer may also write this in a bug if they cannot reproduce the issue on their system.

CNT (cannot test)
The acronym used on a checklist or testplan to show that a check cannot be performed because of another bug or because a feature has not been implemented. It is good practise to also cite the bug(s) preventing this check.

Collision detection
The code that prevents two objects from intersecting with eachother. In 3D games, collision between models is handled by a 'bounding box' that may or may not be identical to the visible boundaries of the model. Similarly, in level design, artificial 'invisible walls' may be added to prevent the player from exiting the playable area of the game world. In 2D games this may be handled by 'sorting' (see depth sorting).

Console
A drop-down text input menu some games use to perform debug (and in-game) operations.

Crash
When a game closes itself abruptly. After a crash the user may be taken to a 'dump' screen or a screen with an error message or error code. Following this, the system should reboot itself automatically.

Critical path
A term used to describe the main, often necessary, route through a game. This can extend to unlockable upgrades, major paths through a level or conversation strings with key characters. It does not refer to optional extras such as bonus levels, non-essential upgrades and incidental dialogue. The closer a bug is to the 'critical path', the more likely the end-user is to find it and the bigger its fix priority.

Debug
A mode or set of commands that allows a developer or tester to perform operations that either have not been fully implemented or cannot normally be performed within the rules of the game. Examples of this include cheats like 'god' mode, 'noclip/fly' mode, 'notarget/invisible' mode, as well as modes that help artists assess their work, such as 'wireframe' mode. Any bug found when using debug mode should be re-attempted without the use of debug to ensure its validity before a bug report is entered into the bug database.

Depth sorting
A method of creating the illusion of a third dimension for 2D games. When two 2D objects occupy the same 2D co-ordinates, based on the values of these objects, depth sorting will determine which object appears to pass under the other. If a character in a top-down 2D game appears to pass over or inside of a tree, this would be a depth sorting bug.

Diffuse map
The essential layer of a texture that defines the combinations and arrangements of colours on a surface. The diffuse map makes a flat surface look like a brown door made out of wood, for example. Any other maps are simply accentuating and improving on this effect.

Draw distance
Draw distance is the distance within which objects in the world are drawn. Objects beyond this distance are 'culled' (not drawn) and will only be drawn as the player avatar approaches them. If the draw distance in a game is set too close to the player, objects will 'pop-up' suddenly, breaking the immersiveness of the gameplay.

Dump
The process that occurs after a crash whereby game data relating to the crash is recorded into a 'dump file'. Programmers can look at these dump files and attempt to work out which part of the game produced the error.

Entity
In some level editors (including Half-Life 2), entities are special additions to a level that control various properties relating to the world, the player and all other objects within the world. Entities are usually invisible, but can be assigned to brushes (as brush-based entities). For instance, (in Half-Life games) a rope down a cliffside can only be climbed once a 'func_ladder' has been placed beside it. Without the entity allowing a player to climb, the rope is just a non-interactive piece of scenery. Entities control most 'special' rules in a game (such as scripted sequences, physics puzzles, fogging, breakable scenery, etc.) and even some basic rules (such as light sources, transparent glass and doors).

Environment art
Any level art not created in level editing software. Generally speaking, any separate model placed inside a level to increase the level of detail. Usable weapons, character models, vehicles and structures are not considered environment art.

Exhaustive playthrough
An extensive playthrough of a single-player or co-operative game undertaken by a tester whose focus is to experience every aspect of the game. This includes: completing every level/mission/quest, talking to every character, collecting every item, unlocking every upgrade, etc.

Fogging
Fogging is often used in conjunction with draw distance. A maximum and minimum density for the fog in a level is set and these values both correspond to distances from the player avatar. Objects moving between the minimum and maximum fog densities will appear to fade in and out of the fog. This is a much smoother visual technique than just having objects pop-up in the distance.

Geometry
A useful term to describe large areas of 3D level art in abstract forms, such as cliffs and caves. E.g. "Missing/untextured face in cliff geometry".

Hang
If the game ceases to respond to user input (i.e. it freezes) this is called a hang. A hang is different to a crash because a hang usually requires the user to manually reboot the game or the system.

Hard Lock
Any hang or crash that requires the user to reboot both the hardware and the game to resume control of the game. All hard locks are class A issues.

HoM (Hall of Mirrors)
In some engines, the visual effect seen when viewing the face of an object with no texture assigned to it. This effect can be seen most clearly if falling out of the level.

Lag (note: not the same as latency)
While latency is, generally speaking, the measured or demonstrable time taken for data to be sent, received and retrieved, 'lag' is a term used to express a noticable and unacceptable delay between a user's input and their resulting actions in-game. Lag can be attributed to too much client-side traffic, too much server-side traffic or -less likely- game/engine code.

LOD (Level of Detail)
The name given to the optimisation technique of swapping in higher-detail versions of models as the player approaches them in the game world. If done correctly, this changeover appears to happen seamlessly because the model usually switches to a lower or higher detail version at a distance where the player cannot discern any difference between the two.

Loser playthrough
A playthrough of a single-player or co-operative game undertaken by a tester to ensure that failure in the game functions correctly on all levels. This includes: dying to every enemy, failing every level/mission/quest in every conceivable way, attempting purchases/transactions without an adequate stock of money/points/items, manually quitting levels via the menu, etc.

Milestones
For modders, milestones are targets for the team to hit that help plan out the mod's development timeline and motivate team members. If realistically achievable and communicated well to the team, milestones can have a very positive effect on productiveness and momentum. Bugs fixes can be scheduled for specific milestones to help with individual task management and development planning.

NAB (not a bug)
The comment you're likely to see if a developer decides that a perceived bug is actually an intended part of the design. Synonymous with 'as designed'.

NMI (need more info)
The comment you're likely to find if one of your bugs is sent back to you by a dev or QA Lead for more info. Be more specific, write clearer repro steps, whatever it takes for a developer to be able to understand and fix your bug.

Normal map
A layer within a game texture that provides extra information for shading a flat surface. Normal maps make a flat surface appear more bumpy and allow them to respond to light sources with more detail. On models, normal maps are usually derived from a higher detail version of the same model.

Poly (a.k.a. Polygon)
Any single face of a model. A high-poly model is a very detailed model with many different faces, used for models close to the player; the opposite being true of a low-poly model. In the term 'polycount', this word usually refers to triangles (or 'tris'), since when game engines analyse model topography all faces are broken down into triangles as their mathematical properties can be easily evaluated in calculations.

Portal
The ambiguous term some people use to describe a hole in a level's geometry that allows the player to view out of the world. In games development terminology, portal actually means an entirely different thing.

RC (a.k.a. Release Candidate)
The stage at which a game is thought to be ready for a major public release. The game should be feature-complete (as far as features planned for this specific release) and free of major bugs (i.e. all A classes and most if not all B classes). It should be playable without the use of any debug commands (if a multiplayer, any cheats should already have been removed - Hi Valve!). You can have a release candidate for any public version of the game, e.g. you could have a Beta 4.0 RC1 (the first effort at a version of Beta 4.0 for public release) or a v2.0 RC4 (the 4th attempt at a version 2.0 of the game for public release).

Regression
When a developer attempts to fix a bug, the fix must then be checked by a third party (usually a tester). This process is called regression, and is there to ensure that a) the bug is actually fixed in this build, and b) the fix has not created any additional bugs or exploits.

Roadrunner playthrough
A playthrough of a single-player or co-operative game undertaken by a tester to ensure basic functionality throughout and that the game is completable from start to finish. Roadrunners do the bare minimum to progress within the game in the fastest possible time, including avoiding enemies, taking shortcuts, skipping cutscenes and dialogue, even failing scripted sequences or deliberately dying if it saves time.

Soft Lock
If the user cannot freely control their character (i.e. they are stuck or cannot return to the game area) but can still access the game menus, this is known as a soft lock. Soft locks require the user to restart the level or the title to resume control of the game. The majority of soft locks are class A issues.

Specular map
The layer of a texture that defines the reflectivity of a surface to create a mirror effect.

Texture (or texture map)
A 2D image stretched across a single or multiple surfaces in the game world. Figuratively speaking, the 'paint' applied to any surface in the game to give the resulting visual effect. In more modern 3D games, multiple layers of textures are combined on a single flat surface to give the impression of reflectivity, transparency or 'bumpiness'. These layers each do different things and have different names: see Alpha, Diffuse, Normal, Specular.

Comments
AgeNt_
AgeNt_ Jul 25 2008, 1:59pm says:

very useful for beginning moders! gj

+1 vote     reply to comment
Sigma
Sigma Jul 25 2008, 4:09pm replied:

and for experienced ones to :)
required read for every modder :)

+1 vote     reply to comment
OkeiDo
OkeiDo Jul 25 2008, 7:21pm says:

Interesting read, I myself have tested a few mods now and still am so I'm quite familiar with some parts in this tutorial. However, it felt like some parts were mostly for single player games/mods but it's good that you managed to cover all parts. Good job and keep your tutorials comming! I will definitely show this to my fellow testers.

+2 votes     reply to comment
Crispy
Crispy Feb 16 2009, 3:23am replied:

Hi! I know it's some time since you made this comment, but I've updated the Bug Hunter section with some ideas for multiplayer testing anyway.

+1 vote     reply to comment
Shiggy
Shiggy Jul 26 2008, 1:57am says:

This is a very good read. I have been testing games for a while, and this clearly explains all of the characteristics of a bug that a game tester must explain to the developer. This is a must read for any developer/game tester, since it shows how much organization can help you in the bug-fixing process.

+1 vote     reply to comment
Gibberstein
Gibberstein Jul 26 2008, 10:02am says:

I thought page three was a bit too deep and overcomplicated for most mod teams - it doesn't need to be so formal in a small team. Might be valid for one of the few really large mod teams though.

The rest of it is spot on though - if all bug reports were done to this standard I'd be a very happy developer :)

+2 votes     reply to comment
Crispy
Crispy Jul 27 2008, 10:11am replied:

Funnily enough this piece started off as part of a bigger tutorial, which I then decided to split into one for QA testers and one for QA Leads. When I wrote the introduction to what will now be the management tutorial, I put in a warning that small mod teams don't need to exhaust their efforts on fancy bugtracking software if they're only going to have 500 bugs in their database. There's no point writing up playthrough testplans if all you're changing is some weapon models and variables.

The same is true of testing to a certain degree. As far as a tester is concerned, the main points to focus on whether you're a big or small mod fall into two areas:
1) Bughunt actively, don't wait for bugs to come to you
2) Communicate information with the whole team in mind, whether it's a bug report or a fix.

What parts from this tutorial you choose to apply to your own testing is down to the scale of the project. Ultimately the QA Lead should be setting the benchmarks for your mod's bugging practise, which is what the next tutorial will look at.

+1 vote     reply to comment
JohnBart
JohnBart Jul 26 2008, 3:47pm says:

Thank you for making this tutorial Crispy. :-)
I have already sent a link for our beta testers, as there is a LOT to learn from this article.

Personally, being the beta team leader of our mod, I can't wait to read your upcoming QA management tutorial. ;-)

+1 vote     reply to comment
Mr_Cyberpunk
Mr_Cyberpunk Jul 27 2008, 6:15am says:

OH MY GOD this is so awesome.

Looking forward to your QA Lead guide

Good work Crispy.

+1 vote     reply to comment
Crispy
Crispy Jul 27 2008, 10:17am says:

Thanks for the kind words.

If you have any D class bugs of your own, I am taking all feedback on board to work on improving the tutorial and making it more relevant to more teams. Based on the comments so far, I'll be looking at adding in more stuff relevant to multiplayer testing and also trying to make it clearer what is applicable to smaller mods.

+1 vote     reply to comment
Forceflow
Forceflow Aug 1 2008, 8:53am says:

Very interesting read, Crisp.

+1 vote     reply to comment
Post a Comment

Only registered members can share their thoughts. So come on! Join the community today (totally free) and do things you never thought possible.

Level
Avatar
Avatar
Offline Since
Nov 14, 2009
Country
United Kingdom United Kingdom
Gender
Male
Age
25
Member Watch
Track this member
Tutorial
Browse
Tutorials
Report Abuse
Report article
Bookmark
Digg Super bookmark