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