Tests/BlockParty: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
Line 29: Line 29:
|colspan="2"| '''New game''': initialisation tests.
|colspan="2"| '''New game''': initialisation tests.
|-
|-
| Points, lines and level are initialised properly. || <span style="color:red">pass: It is not obvious how to change the starting level however.</span>
| Points, lines and level are initialised properly. || <span style="color:green">pass: It is not obvious how to change the starting level however.</span>
|-
|-
| A random piece is at the top of the well. || <span style="color:red">fail: Some spawn above the well, the I-piece 1 below the top</span>
| A random piece is at the top of the well. || <span style="color:red">fail: Some spawn above the well, the I-piece 1 below the top</span>

Revision as of 21:50, 23 March 2008

Block Party Tests

Action Result
Opening the activity: click on the activity icon.
The icon appears in the activity donut, and pulses during activity startup. pass
The activity opens properly. pass
Closing the activity: click the X in the upper-right-hand corner of the activity.
The activity closes properly. fail: No X icon on screen
The icon disappears from the activity donut. pass
Journal functionality: open the journal activity.
A journal entry for the previous activity session appears. pass
Clicking on the journal entry restores the activity to an appropriate state. pass
Black and white functionality: set the screen to black and white mode.
The game is still easily viewable and playable. fail: O-pieces are hard to see
New game: initialisation tests.
Points, lines and level are initialised properly. pass: It is not obvious how to change the starting level however.
A random piece is at the top of the well. fail: Some spawn above the well, the I-piece 1 below the top
A random piece is in the next piece window. pass
Game is paused. pass
Piece movement: movement and rotation of pieces while playing.
Pieces can be moved left and right using arrow keys/pad (assuming no collisions). pass
Pieces can be rotated using up arrow key/pad (assuming no collisions). pass
Piece doesn't move/rotate through solid objects. pass
Piece falls at a set rate depending on the current level. pass
Piece drops instantly and correctly when drop key pressed. pass
Piece landing: movement and rotation of piece just as it lands.
Piece can be moved/rotated while resting for a limited amount of time. pass
Points are awarded once piece has settled. pass
Piece cannot be placed outside well. fail: As piece spawns above well, it can be placed above well
The next piece shown in the window is the next piece given. pass
A random piece appears in the next piece window for each new piece. pass
Line completion: complete and remove a line/s.
When a line/s is completed, the completed lines disappear and blocks above shuffle down. pass
When a line/s completed, the line score increases. pass
When a line/s completed, the points increase. pass: Although, this could be a result of piece landing
Level increase: level increases once points/lines reach a certain point.
Level increases when points/lines reach a certain point. pass: Unsure of that point however
Game over: end of game.
The game ends when a new piece spawns on an existing block. pass
The game ends when a new piece lands outside the well. fail: Pieces can successfully land outside the top of the well without game over.

Opening the activity

Justification: HIG. The application behaves correctly while opening and conforms to Human Interface Guidelines.

Actions:

  1. start the Block Party activity by clicking on the corresponding icon on the taskbar.

Verify:

  • that the Block Party icon is added to the activity doughnut.
  • that the Block Party icon pulses to indicate the activity starting up.
  • that the Block Party activity starts properly.
  • that the window shows a new game screen and the game is paused.

Close the activity

Justification: HIG. The application behaves correctly while closing and conforms to Human Interface Guidelines.

Actions:

  1. click the X button in the top right corner.
  2. you can use as well the shortcuts (ctrl+q) or (ctrl+esc) to quit the activity

Verify:

  • that clicking the X button (or using keyboard shortcuts) closes the Block Party activity.
  • that the Block Party icon disappears from the activity doughnut.

Journal functionality

Justification: HIG. The application interacts correctly with the journal and conforms to Human Interface Guidelines.

Actions:

  1. open the journal activity.

Verify:

  • A journal entry for the previous activity session appears.
  • Clicking on the journal entry restores the activity to an appropriate state.

Black and white functionality

Justification: HIG. The application can be viewed in both colour and black and white modes.

Actions:

  1. set the screen to black and white mode.

Verify:

  • The game can still be viewed and played.

Actions:

  1. set the screen to colour mode.

Verify:

  • The game can still be viewed and played.

New game

Justification: Testing the initial state of a state transition diagram for Block Party. Checking that all variables are initialised correctly, pieces set-up correctly, and the game is ready to be played. Testing for randomness can only be done speculatively, so the results are only based on what is observed as random.

Actions:

  1. start a new game

Verify:

  • Points equal 0.
  • Lines equal 0.
  • Level equals 5.
  • A random piece is spawned at the top of the well.
  • A random piece is generated in the next piece window.
  • The game is paused.

Piece movement

Justification: Testing that all aspects of movement and rotation (user controlled) have been checked.

Actions:

  1. start a new game, select level, and press enter to start.

Verify:

  • Enter starts the game.
  • Level selected is the level shown once game begins.
  • Tetromino falls at a set rate depending on the level of speed, regardless of actions taken, until it cannot fall anymore.

Actions:

  1. move the piece left and right using the arrow keys or arrow pad.

Verify:

  • Tetromino moves accordingly to the key pressed if it can.
  • Tetromino doesn't move through existing blocks or walls/floor.

Actions:

  1. rotate the piece using the up arrow or up pad direction.

Verify:

  • Tetromino rotates in the same direction whenever rotated if it can.
  • O-piece tetromino doesn't rotate at all.
  • Tetromino doesn't rotate through existing blocks or walls/floor.

Actions:

  1. drop the piece using the space key or down pad direction.

Verify:

  • Tetromino instantly drops to lowest position directly under it without passing through existing blocks.

Piece landing

Justification: Testing the behaviour just before, during and after a piece has landed, regardless of whether a line was completed or not. These tests test all boundaries of the partitions between the old piece and the new piece, except for line completion, which is a special case and is tested in Line completion.

Actions:

  1. drop the piece or let it fall to the ground.
  2. move the piece left or right if it can when the piece is resting on a block or floor.
  3. rotate the piece if it can when the piece is resting on a block or floor.

Verify:

  • Piece can still be moved/rotated for a specific amount of time depending on the level if it can.
  • Points are awarded once the piece is fixed based on how long the piece has been falling.
  • Piece cannot be placed outside well.
  • After the piece is dropped, the next piece spawned is the one from the next piece window.
  • After the next piece has spawned, a random piece is generated in the next piece window.

Line completion

Justification: When a piece is landed so that it completes a line/s, the correct behaviour is observed. This is a special case that occurs when a piece lands.

Actions:

  1. place a piece so that it completely fills a line/s horizontally.

Verify:

  • The line/s disappear.
  • All blocks above the line/s are shuffled down.
  • The line/s score increments by the number completed.
  • Points are awarded for the piece.

Level increasing

Justification: The game must get harder as more points are scored. If this boundary was known, the test could be more specific, but alas, it is not. The points can only go up when a piece has landed, thus this is a special case for Piece landing.

Actions:

  1. score the points/lines required for the next level.

Verify:

  • The level increases once the points/lines reach that point.

Game over

Justification:

Actions:

  1. fill the well with blocks, so a new piece spawned collides with existing blocks or the new piece is outside the well.

Verify:

  • If the newly spawned piece collides with existing blocks, then the game is over.
  • If the newly spawned piece lands outside the well (from the top), then the game is over.