Skip to content

Test Plan and Specification

Kent Coble edited this page Mar 5, 2017 · 28 revisions

Test Plan

Our dungeon RPG, called Tomb of Hauhet (or ToH), will feature many objects that occupy the world and interact with each other. Because of that, it is essential that we perform unit tests and integration tests to make sure that our game is cohesive.

Objectives

This test plan is to help define tasks, responsibilities and the methods by which we will test our product. It will define a clear strategy for which we will accomplish the testing, bug fixing and tracking as well as regression testing. This plan also helps to guide the specifications by which the different tests are run.

Scope

We will test the functionality of all the components of our game and make sure they run well on Windows 7, Windows 10, OS X, and macOS Sierra.

Testing Strategy

The main activity of testing will be unit, integration, and system testing. Unit tests will be performed at an individual level. Integration and regression tests will be done with automatic test cases.

Unit & Integration Testing

Each individual will test the features they are responsible for. Each team lead will do integration testing after the code is committed.

The goal of unit testing is to test individual functionality given certain conditions, both good and bad. The goal of integration testing is to ensure that combinations of items work correctly together. All interfaces should define errors and check that tests can be validated for correctness in both success and failure.

Unit tests will be run before every commit, then merged into the development branch. These tests will be run manually, at first. Any bugs will be reported and tracked on GitHub to be handled by the developer of the particular feature or item. When the branches are merged, team lead will test the features as a whole to make sure the features integrate well.

System Testing

Our team must ensure that the limited amount of permanent progression that we have planned is being properly saved and called at appropriate times.

System Requirements

We will support Windows 7, Windows 10, OS X, and macOS Sierra.

Minimum hardware requirements:

  • Nvidia GTX Titan X Pascal or equivalent
  • Intel 7th Gen Intel Core Desktop Processor i7-7700K or equivalent
  • 64GB DDR5
  • 2TB SSD Storage

Control Procedure

All bugs and changes will be taken care of on GitHub. Changes must be approved before they are merged with our master branch.

Risks

Serious, unexpected bugs could cause a slip in our completion date of the minimum viable product by the end of the semester.

Test Specification

Unit & Integration Testing

World Generation

  1. Room Creation
    a)Ensure rooms created randomly from predefined templates
    b)Ensure generated rooms, consumables, and enemies follow an acceptable distribution based on their parameters

  2. Game Flow
    a)Ensure physics entities from a room are removed from the engine when leaving that room
    b)Ensure physics entities in new rooms are loaded correctly into the physics world
    c)Ensure that a single player entity transitions between rooms and is added and removed from physics worlds as necessary
    d)Ensure that the world is managed such that rooms surrounding the player are pre-loaded
    e)Ensure that previously visited rooms are stored correctly and can be reloaded on reentry

Player class

  1. Creation
    a)Verify that the Player exists in the World after initialization
    b)Verify that the Player is holding a basic Weapon
    c)Verify that the Player moves when given Input

  2. Actions
    a)Check that the Player is able to use their Weapon
    b)Verify that Player hunger is not increasing when stationary
    c)Verify that Player hunger does not increase when moving perpendicular to an immovable object
    d)Verify that Player takes damage from Enemy entities

  3. Experience
    a)Verify that the Player gains XP when an Enemy entity is killed
    b)Verify that the Player's experience (XP) is reset when leveled up (and not less than 0)
    c)Verify that "surplus" XP is not "lost" when leveled up

  4. Level up! a)Verify that the Player increases level according to algorithm
    b)Verify that the Player's statistics (stats, e.g. luck and max health) are increased

  5. Post-mortem a)Verify that the Player object dies when health is 0
    b)Verify that the Player object dies when hunger is maxed out (e.g. no energy left)

Enemies

  1. Random Enemy Creation
    a)For each enemy class randomize its movement and attack and make sure nothing is null.
    b)ensure the enemy exists in the physics world after creation.
    c)verify enemies are spawning only on the map's enemy spawn locations.
    d)Test the enemies scaling function.
    e)Verify the enemy can take damage and is removed from the physics world upon death.

  2. MovementAI
    a)For each movementAI created, verify it can be used by an enemy.
    b)Verify the enemy body's velocity is changing as desired.
    c)Test the scaling function of the MovementAI.

  3. AttackAI
    a)For each AttackAI created, verify it can be used by an enemy.
    b)Verify the attack method of the AI to make sure it is firing correctly.
    c)Test the scaling function of the AttackAI.

  4. EnemyAttack
    a)Verify the attack can be used by an enemy.
    b)Verify the attack is in the physics world once fired.
    c)Ensure the attack does damage to the player and is flagged for destruction.
    d)Verify the attack is removed from the physics world on deletion.

  5. EnemyWeapon
    a)Verify a weapon can be equipped by an enemy.
    b)Test the scaling function of the Weapon.

  6. Death events
    a)Verify on an enemy Death that experience is passed to the player class.
    b)Verify on an enemy Death that an item can be placed into the physics world as a loot drop.
    c)Verify any on death attacks or animations take place on the removal of an Enemy from the physics world.

Tile Design and Graphics

  1. All tiles work as intended.
    a)Verify that enemies only spawn where their models fit.
    b)Verify that obstacle and enemy combinations don't create situations where the player can't progress or must take damage from any possible entryway.

  2. Tiles follow a consistent visual style.
    a)Verify that background sprites follow a consistent pattern to create visual clarity and neatness.

  3. Animations work well.
    a)Animation Manager smoothly switches between animations
    b)Visual style is consistent
    c)Verify that there are no depth problems (things being drawn on top of each other that shouldn't be).

Sound

  1. For each sound effect make sure that it sounds as intended when played in game.
  2. For each song make sure that it sounds as intended when played in game.

System Testing

World Generation

Enemies

1.Enemy Spawning on various maps
a)Ensure that enemies can be spawned in the world on multiple levels of a map.
b)Make sure that Enemies scale correctly to the level of the map.
c)Make sure that Enemy state is static per room throughout the entire game.
2.Arena's
a)Verify enemies spawn correctly into arena and after the last enemy in the arena is destroyed an orb is spawned.

Sound

Add your categories for testing

User Acceptance Testing

User Experience

Developers and beta users will test the product together. Developers will play the game to determine proper functionality and to test edge cases. Beta users will use the product and give feedback for the developers on ToH's gameplay, art, and ease of use.