Test Plan and Specification - LayeredPlatformer/LayeredPlatformerUnity GitHub Wiki

Layered Platformer Unity project

Introduction

An overview of the test specifications is provided in this section.

Each section references a requirement number. This document references Version 2 of the Requirements Document.

Objectives

  • Assure game mechanics function properly
  • We will test to assure that game logic is working properly, such as game state, animations, and object interaction.
  • Test game play
  • Game play will be tested and evaluated to assure a quality user experience.

Test Plan

Components to be tested

  • Screens
  • (Requirement 3.1.1) Gameplay screen
  • (Requirement 3.1.2) Start screen
  • (Requirement 3.1.3) Pause screen
  • (Requirement 3.1.4) Story screens
  • (Requirement 3.1.5) Credits screen
  • Gameplay
  • (Requirement 3.2) Player abilities and movement
    • (Requirement 3.2.1) Basic movement
    • (Requirement 3.2.2) Jump
    • (Requirement 3.2.3) Basic attacks
    • (Requirement 3.2.4) Health and damage
    • (Requirement 3.4.1) Shadow trail
    • (Requirement 3.4.2) ShadowBlink
    • (Requirement 3.3.4) Layer jump
  • (Requirement 3.3) Layer system
    • (Requirement 3.3.1) Layer consistency
    • (Requirement 3.3.1) Layer visibility
    • (Requirement 3.3.3) Layer translucency
    • (Requirement 3.3.4) Layer transitions
    • (Requirement 3.9.4) Background changes
    • (Requirement 3.9.5) Music changes
  • (Requirement 3.10) Enemies
    • Movement
    • Attacks
    • Health and damage
  • (Requirement 3.6) Levels
    • Able to get from start to finish
    • Difficulty
    • Transitions into and out of levels
  • Miscellaneous behavior
    • Platform collisions
    • Pitfall reactions
    • Camera movement

Testing Strategy

  • Integration testing
  • As assets are created, the behavior of the interaction of that asset with the rest of the game world will be tested using Unity's 'play' function.
  • During and after level building, 'play' the level to ensure that it is created such that the player can complete all aspects of the level
  • After primary level building, 'play' to test for appropriate difficulty
  • Level testing
  • Screen transitions and camera movements will be tested along with completed levels and their components.
  • Validation testing
  • Combined components will be tested as a whole to make sure that the whole gameplay experience is enjoyable and meets our goals for it

Test Specification

Integration Testing

  • Screens
  • (Requirement 3.1.1) Game screen
    • Will be tested as it is constructed to see if components are in place and functioning properly. As much as possible, one set of components should be tested before another is added.
    • Includes testing of pause feature and other buttons.
    • For mobile versions of game, includes the control stick feature.
  • (Requirement 3.1.2) Start screen
    • Test that all menu buttons behave properly.
    • Not much unit testing for this, most of its features are integration level, as buttons all navigate to other screens.
  • (Requirement 3.1.3) Pause screen
    • Test buttons for proper behavior
    • Test settings menu behavior
  • (Requirement 3.1.4) Story screen
    • The scroll and skip actions will both be tested, as well as the default printing of text.
  • (Requirement 3.1.5) Credits screen
    • Test for scroll and skip behavior.
    • Test exit behavior after either a skip or reaching the end of the text.
  • Assets
  • (Requirement 3.2) Player
    • (Requirement 3.2.1) Movement
      • Test for proper horizontal movement, including speed and momentum, when changes to the player asset are made by using the play button.
    • (Requirement 3.2.2) Jump
      • Test for proper vertical movement, including jump height and jump and fall speed, when changes to the player asset are made by using the play button.
    • (Requirement 3.2.3) Attacks
      • Test both the short range (left click/tap) and long range (right click/swipe) attacks by using play feature after relevant changes are made to the player or to the weapons.
    • (Requirement 3.2.4) Health and damage
      • Using the play feature and the console, test that the damage animations and health monitoring behave as expected at different intervals.
  • (Requirement 3.3) Layers
    • (Requirement 3.3.3) Layer translucence
      • Examine both in the development window views and the play function to make sure that visibility behaves properly
    • (Requirement 3.3.4) Layer jump
      • Test for proper layer switching behavior while using the Play feature.
  • (Requirement 3.4) Shadow
    • (Requirement 3.4.1) Shadow trail
      • Tested along with movement above. Ensure proper behavior, including correct follow time.
    • (Requirement 3.4.2) ShadowBlink
      • Using play feature, test ShadowBlink behavior in multiple situations, including during jumps and falls.
  • (Requirement 3.10) Enemies
    • Enemies will be tested in much the same way as the Player; see movement, attacks, and health and damage in Player section above. This applies to both basic enemies and bosses.
  • Other assets
    • (Requirement 3.9.1) Terrain
      • Platform prefabs shall be tested both by examination and with the play feature to ensure that collision boundaries and other behaviors are as desired.
      • Fatal open spaces such as pits shall be tested for proper death triggers using the play feature.
    • (Requirement 3.9.4) Background
      • Tested along with layer behaviors above.
    • (Requirement 3.9.5) Music
      • Level music behavior will be tested along with layer behavior in the play feature.
      • Menu and other music will be tested along with the respective screens or events.

Level Testing

  • Screens
  • Screens will be tested for proper transitioning between them, as each of them has at least one button that triggers a transition to another screen.
  • Main screen will be tested in conjunction with the Player to make sure that all Player instructions function as intended, that health monitoring is properly synchronized, and that the camera behaves as desired.
  • Level tests
  • Levels will be tested in pieces and in their entirety to test for proper Player and Enemy behavior and interaction, proper terrain behavior, layer transitions, and overall playability.

Validation testing

  • The entire program will be tested, following various paths, including quitting immediately, quitting mid-level, and consecutive sessions, including playing again after quitting a level, playing after a game over, and playing after successful completion of the level.