Manual testing notes - daniel-tran/snake-boxer-collection GitHub Wiki
As mentioned here, Processing doesn't have a known way to write unit tests at the time of implementing the Snake Boxer games.
One idea was to compile the sketches into Java code and then write unit tests with JUnit or some other unit testing framework for Java code. Though I suppose at that point, we may as well just write the games in Java anyway, as having to switch between Processing and Java seems like a rather awkward workflow.
The below information documents a test plan for how to ensure the games are working as expected. Note that this does not cover how to test granular elements of the game, such as fighter state transitions and enemy AI, as the test plan is mostly concerned about verifying the core game mechanics and end-to-end experience:
Snake Boxer 1
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Player has now started the game |
Press anywhere on the title screen after losing | Player has now started the game with all the default settings |
Press all 4 quarters of the screen, clockwise | Boxer Joe is moved to each of the silhouettes, punching upon moving to a new location |
Punch a snake | Snake changes sprite, flashes a couple of times and disappears from the screen |
Collide with a snake | Snake disappears from the screen and Boxer Joe changes sprite & is stunned briefly |
Press all any quarter of the screen while stunned | Boxer Joe remains in his current position |
Snake reaches the deli | Snake disappears from the screen and the health bar decreases |
Health bar drops to 0 | Deli flashes a couple of times and changes sprite. Boxer Joe and snakes are immovable |
Press the screen when health bar is at 0 | Return to title screen and the game is reset |
Wait briefly when health bar is at 0 | Return to title screen and the game is reset |
Level up occurs, and not at max. level | Level increases & more snakes are made active and move faster |
Level up occurs, and at max. level | Snakes move faster |
Snake Boxer 2
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Player has now started the game |
Press anywhere on the title screen after losing | Player has now started the game with all the default settings |
Pull the joystick in N, E, S, W directions | Boxer Joe moves in the direction pointed by the joystick |
Pull the joystick in NE, SE, SW, NW directions | Boxer Joe moves in the direction pointed by the joystick |
Release the joystick | Boxer Joe stops moving and the joystick reverts to its original position |
Press anywhere on the screen | Boxer Joe starts a punch |
Punch a snake | Snake changes sprite, flashes a couple of times and disappears from the screen |
Punch a negative collectible | Collectible disappears from the screen and Boxer Joe changes sprite, is stunned & loses health |
Collide with a snake or other negative collectible | Snake disappears from the screen and Boxer Joe changes sprite, is stunned & loses health |
Collide with a positive collectible | Collectible disappears from the screen and score increases, with a temporary visual indicator |
Health bar drops to 0 | Boxer Joe flashes a couple of times and changes sprite. Boxer Joe, snakes & collectibles are immovable |
Press the screen when health bar is at 0 | Return to title screen and the game is reset |
Wait briefly when health bar is at 0 | Return to title screen and the game is reset |
Level up occurs, and not at max. level | Level increases & more snakes and collectibles are made active and move faster |
Level up occurs, and at max. level | Snakes and collectibles move faster |
Snake Boxer 3
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Player has now started the game |
Press anywhere on the screen (except buttons) | Boxer Joe starts a punch, the snake changes sprite and the score increases |
Press anywhere outside the form while it's active | Boxer Joe doesn't start a punch and the score remains the same |
Press UPGRADE, EVENT or RANK UP button | The relevant form appears |
Press GET on the upgrade form | Score decreases and the relevant upgrade is increased |
Press YES on the promotion form | Score is set to 0, the RANK UP button disappears and the promotion form is closed |
Press UPGRADE button after a promotion | Certain upgrades are now set higher, and the form title reflects the player's new rank |
Press OK, YES or NO on the event form | Score can increase or decrease by some amount, and the EVENT button disappears |
Press OK, YES or NO on any of the forms | Form is closed |
Snake Boxer 4
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Player has now started the game |
Press anywhere on the title screen after losing | Player has now started the game with all the default settings |
Win a minigame | Snakes change sprite and score increases, starting the next minigame shortly afterwards |
Lose a minigame | Boxer Joe changes sprite and lives decrease, starting the next minigame shortly afterwards |
Lose a minigame and lives drop to 0 | Boxer Joe changes sprite and the game is reset shortly afterwards |
Airplane minigame: Drag the screen | Airplane moves with the screen drag whenever they're on the same level |
Airplane minigame: Release screen drag | Airplane stops moving |
Airplane minigame: Collide with a duck | Lose the minigame. Airplane and ducks are immovable |
Airplane minigame: Time out | Win the minigame |
Burninate Phonics minigame: Press side of screen | Trogdor faces the direction of the screen press and makes an attack |
Burninate Phonics minigame: Burninate a phonic | Phonic disappears from the screen |
Burninate Phonics minigame: Collide with a phonic | Lose the minigame, Trogdor changes sprite and all phonics are immovable |
Burninate Phonics minigame: Time out | Win the minigame |
Compy minigame: Press the screen | A printable character appears on the screen |
Compy minigame: Press the screen and command is completed | Win the minigame and a visual indicator appears to confirm success |
Compy minigame: Time out | Lose the minigame |
Match minigame: Press an item | Item's name is revealed |
Match minigame: Two items are revealed and match | Win the minigame and a visual indicator appears to confirm success |
Match minigame: Two items are revealed and do not match | Items are hidden again and items briefly cannot be selected |
Match minigame: Time out | Lose the minigame |
Rabbit Algebra minigame: Press + or - buttons | Numeric value increases or decreases for the corresponding unit |
Rabbit Algebra minigame: Press = button | Player submits their answer to the equation |
Rabbit Algebra minigame: Answer is correct | Win the minigame and blurb text is updated |
Rabbit Algebra minigame: Answer is incorrect | Lives are decreased and blurb text is updated |
Rabbit Algebra minigame: All lives are lost | Lose the minigame and blurb text is updated |
Rabbit Algebra minigame: Time out | Lose the minigame |
Salad Daze minigame: Press a corner of the screen | Item is pressed |
Salad Daze minigame: Valid item is pressed | Item's image is moved to the centre |
Salad Daze minigame: All valid items are pressed | Win the minigame and a salad image appears in the centre |
Salad Daze minigame: Invalid item is pressed | Lose the minigame and an X image appears in the centre |
Salad Daze minigame: Time out | Lose the minigame |
Score Card minigame: Press a point | Point changes sprite |
Score Card minigame: Press all points | Win the minigame and a visual indicator appears to confirm success |
Score Card minigame: Time out | Lose the minigame |
Tangerine Dreams minigame: Drag icon | Icon follows the screen drag |
Tangerine Dreams minigame: Drag icon beyond the top | Icon is stopped at the task bar, but can be moved horizontally |
Tangerine Dreams minigame: Drag icon beyond the bottom | Icon is stopped at the minigame timer area, but can be moved horizontally |
Tangerine Dreams minigame: Drag icon to its location | Icon snaps into place and becomes immovable |
Tangerine Dreams minigame: Drag all icons to their locations | Win the minigame |
Tangerine Dreams minigame: Time out | Lose the minigame |
Videlectrix minigame: Press the running man | Win the minigame, Videlectrix logo appears and running man changes sprite |
Videlectrix minigame: Time out | Lose the minigame |
Virus Scan minigame: Drag the screen rightward | Progress bar increases |
Virus Scan minigame: Progress bar completes | Win the minigame and a visual indicator appears to confirm success |
Virus Scan minigame: Time out | Lose the minigame |
Snake Boxer 5
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Player has now started the game |
Press anywhere on the title screen after losing | Player has now started the game with all the default settings |
Press left side of the screen | Boxer Joe starts a punch |
Hold right side of the screen | Boxer Joe starts blocking |
Release right side of the screen | Boxer Joe stops blocking |
Hold top or bottom side of the screen | Boxer Joe moves up or down |
Release top or bottom side of the screen | Boxer Joe stops moving |
Punch a snake | Snake changes sprite and health decreases |
Punch a snake and its health drops to 0 | Snake flashes a couple of times, restores its health and its stats are boosted |
Get hit by a snake | Boxer Joe changes sprite and health decreases |
Get hit by a snake and health drops to 0 | Boxer Joe flashes a couple of times, health is restored and lives decreases |
Get hit by a snake and lives drop to 0 | Boxer Joe flashes a couple of times, changes sprite and game is reset |
Snake Boxer 6
Test Case | Expected Result |
---|---|
Press anywhere on the title screen | Game transitions to fighter selection |
Press a mugshot on the fighter selection (1P mode) | P1 marker moves to pressed location |
Press 1P MODE or VS MODE button | Toggle game modes, showing or hiding the CPU marker |
Press a first mugshot on the fighter selection (VS mode) | P1 marker moves to pressed location |
Press a second mugshot on the fighter selection (VS mode) | CPU marker moves to pressed location |
Press FIGHT button (VS mode) | Game transitions to the world map |
Press FIGHT button (1P mode) | Game transitions to the world map, but one location is unavailable |
Press incomplete location icon (VS mode) | Game transitions to the fight between the player and the selected opponent |
Press incomplete location icon (1P mode) | Game transitions to the fight between the player and an opponent who is a different fighter |
Press left side of the screen | Player starts a punch |
Hold right side of the screen | Player starts blocking, and can change sprite depending on their fighter |
Release right side of the screen | Player stops blocking, and can start a special attack depending on their fighter |
Hold top or bottom side of the screen | Player moves up or down |
Release top or bottom side of the screen | Player stops moving |
Punch an opponent | Opponent changes sprite and health decreases |
Punch an opponent and its health drops to 0 | Opponent flashes a couple of times, restores its health and it loses a life |
Punch an opponent and its lives drop to 0 (VS mode) | Opponent flashes a couple of times, changes sprite and game is reset |
Punch an opponent and its lives drop to 0 (1P mode) | Opponent flashes a couple of times, changes sprite and game transitions to the world map with a completed marker |
Get hit by an opponent | Player changes sprite and health decreases |
Get hit by an opponent and health drops to 0 | Player flashes a couple of times, health is restored and lives decreases |
Get hit by an opponent and lives drop to 0 | Player flashes a couple of times, changes sprite and game is reset but game mode selection is preserved |
Transition to world map after completing all locations | A new location is unlocked |
Player defeats final fighter in 1P mode | Congratulations image is shown |
Press anywhere on the congratulations image in 1P mode | Game resets but game mode selection is preserved |