Tests/Sudoku: Difference between revisions

From OLPC
Jump to navigation Jump to search
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
==General test design==

Due to time restraints certain aspects of Sudoku are impractical to test manually. For example it is not practical to test what happens when the final puzzle on level 5 is completed. This would require first passing the other 64 puzzles on level 5, then completing the 65th puzzle; which would take a very long time!

In the Sudoku game levels 1-3 are a simplified form of the game and use shapes- a circle, square, star and triangle. Levels 4-5 use numbers as in traditional Sudoku. Because of this the levels 1-3 and levels 4-5 where considered as two separate equivalence partitions when testing some of the game play features. For example adding and removing symbols from the puzzle is different for the two level types. Numbers are added in levels 4 and 5 by giving squares the keyboard focus and typing a number from the keypad. Where as in levels 1 to 3, symbols are added by clicking and dragging symbols from the side bar.

However for other aspects of game play the two level types were treated as a single equivilence partition. For example the result of completing a puzzle or clicking buttons on the bottom menu bar are assumed to be the same for both level types.

==Start the sudoku activity==
==Start the sudoku activity==


Line 16: Line 24:


''Justification:''
''Justification:''
The help manual should be clear and easy to follow for someone who has not played the game. The vocabulary used should be understandable by a child as this is the target age group.
[[HIG]]


''Actions:''
''Actions:''
Line 28: Line 36:
*The icon for the page being displayed is highlighted.
*The icon for the page being displayed is highlighted.


===Close===
''Actions (close):''

''Actions:''
#Click the OK button.
#Click the OK button.
''Verify:''
''Verify:''
Line 37: Line 47:


''Justification:''
''Justification:''
The dice button in the bottom menu should allow users to switch between levels as they please. Left click allows the user to move forward a level while right click moves back a level. Boundary cases that must be tested are what happens when the user left clicks on the dice to move forward a level when the current level is the last one, as well as right clicking the dice to move back a level when the user is already on level 1.
[[HIG]]


====Next====
====Next====
Line 71: Line 81:
*After clicking right button on the dice the first time the dice moves back to 1 and the 1st level 1 puzzle is shown in its empty form.
*After clicking right button on the dice the first time the dice moves back to 1 and the 1st level 1 puzzle is shown in its empty form.
*The second right button click does nothing.
*The second right button click does nothing.
*The next left click moves the dice to 2, and the 1st level 2 puzzle is displayed in its empty form.
*The next left click moves the dice to level 2, and the 1st level 2 puzzle is displayed in its empty form.


==Restart puzzle==
==Restart puzzle==


''Justification:''
''Justification:''
The restart puzzle icon should clear the currently displayed puzzle and restore it to it's original state. Boundary testing involves clicking the reset button while the puzzle is empty, as well as having only 1 item in it, and being 1 item from completion. Of these three the final test is least likely to discover a bug and can be skipped if time to execute the tests is limited.
[[HIG]]


''Actions:''
''Actions:''
Line 102: Line 112:
; Fixed squares: The squares in a puzzle which contain symbols when the puzzle is in its initial state. These symbols can not be removed or changed by the user.
; Fixed squares: The squares in a puzzle which contain symbols when the puzzle is in its initial state. These symbols can not be removed or changed by the user.


; Valid squares: A square in which the rules of sudoku allow a user to place a given symbol or number in that sqare.
; Valid squares: A square in which the rules of Sudoku allow a user to place a given symbol or number in that sqare.


===Moving Symbols===
===Moving Symbols===

''Justification:''
For this test in was initially thought that only one of the symbols needed to be tested as the functionality of the other symbols would be identical. However testing discovered that the positioning of a symbol on the side bar effected whether it passes above or below other symbols on the side bar. For that reason it was decided to test both the top and bottom symbols on the side bar.


====Hover====
====Hover====
''Actions:''
''Actions:''
#Hover over the top symbol on sidebar.
#Hover over the top symbol on the sidebar.
#Move to hover over the bottom symbol on the sidebar.
#Move to hover over the bottom symbol on the sidebar.


Line 119: Line 132:
#Drag the symbol over the icons on the side menu bar.
#Drag the symbol over the icons on the side menu bar.
#Drag the symbol over the icons on the bottom menu bar, and the level label.
#Drag the symbol over the icons on the bottom menu bar, and the level label.
#Repeat for the bottom symbol in the side bar.
#Repeat the above steps for the bottom symbol in the side bar.


''Verify:''
''Verify:''
Line 127: Line 140:


===Adding Symbols===
===Adding Symbols===

''Justification:''
In general it was decided that the functionality of one symbol was the same as the functionality of the other symbols. Hence it was not neccessary to test all the symbols for every possible way of adding symbols to the puzzle.


====Invalid====
====Invalid====

''Justification:''
This test tests all the different symbols on the side bar being dragged into the various invalid positions. It is uneccessary to test all the invalid symbols being dragged into all the invalid positions.

''Actions:''
''Actions:''
#Start with an empty puzzle on level 1.
#Attempt to place the 1st symbol on top of one of the icons on the bottom menu bar.
#Attempt to place the 1st symbol on top of one of the icons on the bottom menu bar.
#Attempt to place the 2nd symbol on the menu bar in empty space outside the puzzle.
#Attempt to place the 2nd symbol on the menu bar in an empty space outside the puzzle.
#Attempt to place the 3rd symbol inside one of the FIXED invalid squares.
#Attempt to place the 3rd symbol inside one of the FIXED invalid squares.
#Attempt to place the 3rd symbol inside one of the FIXED valid squares.
#Attempt to place the 3rd symbol inside one of the FIXED valid squares.
Line 137: Line 158:
''Verify:''
''Verify:''
*In all three cases the symbol disapears from the cursor when the mouse is released.
*In all three cases the symbol disapears from the cursor when the mouse is released.
*Symbol reapears on the side menu bar.
*The symbol reapears on the side menu bar.
*Nothing else happens.
*Nothing else happens.


====Valid Empty Square====
====Valid Empty Square====

''Actions:''
''Actions:''
#Pick up and release a symbol inside a VALID empty square.
#Pick up and release a symbol inside a VALID empty square.
Line 162: Line 184:


===Invalid Variable Squares===
===Invalid Variable Squares===

''Justification:''
Part of the rationale behind this test was a bug that was discovered while exploring the system. This bug resulted in filled variable squares changing to the color of fixed squares when they were highlighted because they had blocked the addition of symbol in an empty variable square.


''Actions:''
''Actions:''
#Release inside an EMPTY square that is INVALID due to a fixed square.
#Release a symbol inside an EMPTY square that is INVALID due to a fixed square.
#Release inside an EMPTY square that is INVALID due to a variable square.
#Release inside an EMPTY square that is INVALID due to a variable square.
#Release inside an EMPTY square that is INVALID due to both a variable square and fixed square.
#Release inside an EMPTY square that is INVALID due to both a variable square and fixed square.
Line 190: Line 215:
''Verify:''
''Verify:''
*The symbol inside the square dissapears.
*The symbol inside the square dissapears.
*The background color of the square is the same a normal empty square.
*The background color of the square is the same as a normal empty square.


==Playing Level 4-5==
==Playing Level 4-5==

''Justification:''
The rationale behind the tests for levels 4 and 5 is similar to that for the testing of levels 1 to 3.


===Hovering===
===Hovering===
Line 221: Line 249:
====Filled Variable Squares====
====Filled Variable Squares====
''Actions:''
''Actions:''
#Put a number in on of the variable squares.
#Put a number in one of the variable squares.
#Give the keyboard focus to another empty square by clicking in it.
#Give the keyboard focus to another empty square by clicking in it.
#Hover over the background part of that square.
#Hover over the background part of that square.
Line 263: Line 291:


====Valid Input - Empty Square====
====Valid Input - Empty Square====

''Actions:''
''Actions:''
#Click on an empty square.
#Click on an empty square.
Line 268: Line 297:


''Verify:''
''Verify:''
*Number appears in the empty square.
*The number appears in the empty square.


====Out-of-range Invalid Input====
====Out-of-range Invalid Input====
Line 288: Line 317:


''Verify:''
''Verify:''
*When the new number is clicked the number inside the square changes.
*When the new number is typed the number inside the square changes.
*Nothing else changes.
*Nothing else changes.


Line 337: Line 366:


==Completing a Puzzle==
==Completing a Puzzle==

''Justification:''
This test contains use cases checking that the game runs smoothly through a normal usage scenario.


''Actions:''
''Actions:''
Line 354: Line 386:
*The puzzle count returns to 1.
*The puzzle count returns to 1.
*The dice (level changer) icon moves to the next number.
*The dice (level changer) icon moves to the next number.

===Optional Extra===


''Actions:''
''Actions:''
Line 379: Line 413:


''Actions:''
''Actions:''
# switch to the Journal.
# Switch to the Journal.
# find the entry for your Browse session.
# Find the entry for your Browse session.
# either click on the 'direct launcher' at the right of the entry or
# Either click on the 'direct launcher' at the right of the entry or
# click on the entry and use the "Resume" button to resume the entry with the desired activity.
# Click on the entry and use the "Resume" button to resume the entry with the desired activity.
''Verify:''
''Verify:''
* that your entry in the Journal is still present and has updated the preview to indicate your new work.
* That your entry in the Journal is still present and has updated the preview to indicate your new work.
* that resuming your Browse session loads the last session properly.
* That resuming your Browse session loads the last session properly.

Latest revision as of 03:26, 2 April 2008

General test design

Due to time restraints certain aspects of Sudoku are impractical to test manually. For example it is not practical to test what happens when the final puzzle on level 5 is completed. This would require first passing the other 64 puzzles on level 5, then completing the 65th puzzle; which would take a very long time!

In the Sudoku game levels 1-3 are a simplified form of the game and use shapes- a circle, square, star and triangle. Levels 4-5 use numbers as in traditional Sudoku. Because of this the levels 1-3 and levels 4-5 where considered as two separate equivalence partitions when testing some of the game play features. For example adding and removing symbols from the puzzle is different for the two level types. Numbers are added in levels 4 and 5 by giving squares the keyboard focus and typing a number from the keypad. Where as in levels 1 to 3, symbols are added by clicking and dragging symbols from the side bar.

However for other aspects of game play the two level types were treated as a single equivilence partition. For example the result of completing a puzzle or clicking buttons on the bottom menu bar are assumed to be the same for both level types.

Start the sudoku activity

Justification: HIG

Actions:

  1. Start the sudoku activity by clicking the icon for it in the home view.

Verify:

  • A sudoku icon (with the title sudoku) is added to the activity ring on the home screen.
  • The sudoku icon throbs to indicate the activity starting up.
  • The the sudoku activity starts properly.
  • The first puzzle for level one is loaded.

Use help manual

Justification: The help manual should be clear and easy to follow for someone who has not played the game. The vocabulary used should be understandable by a child as this is the target age group.

Actions:

  1. Click the help icon on the main menu bar.
  2. Read the main help page.
  3. Click each of the icons for the other help pages and read the contents.

Verify:

  • The main help page is displayed correctly with a title and text.
  • That clicking the icons for each page in the help manual displays the correct help page.
  • The help text is easy to read and can be understood by a first time user.
  • The icon for the page being displayed is highlighted.

Close

Actions:

  1. Click the OK button.

Verify:

  • The help closes.
  • The current sudoku puzzle is displayed in the same state it was before the help was viewed.

Changing levels

Justification: The dice button in the bottom menu should allow users to switch between levels as they please. Left click allows the user to move forward a level while right click moves back a level. Boundary cases that must be tested are what happens when the user left clicks on the dice to move forward a level when the current level is the last one, as well as right clicking the dice to move back a level when the user is already on level 1.

Next

Actions:

  1. Complete the first puzzle on level 1.
  2. Click the left mouse button on the 'dice' icon 4 times quickly.

Verify:

  • The dice rotates around to the number 5.
  • The screen displays a random puzzle from level 5.
  • The puzzle count is reset to 1.

Back to 1

Actions:

  1. Click the left button once more on the dice icon.

Verify:

  • The dice rotates and displays the number 1.
  • The puzzle count is set to 1.
  • The puzzle displayed is the same as the first puzzle completed in step one of 'next' but may have different symbols.

Back

Actions:

  1. Partially complete the 1st level 1 puzzle.
  2. Click the left button once more on the dice icon.
  3. Complete the first puzzle for level 2.
  4. Partially complete the 2nd puzzle for level 2.
  5. Click the right button on the dice.
  6. Click the right button on the dice again.
  7. Click the left button on the dice.

Verify:

  • After clicking right button on the dice the first time the dice moves back to 1 and the 1st level 1 puzzle is shown in its empty form.
  • The second right button click does nothing.
  • The next left click moves the dice to level 2, and the 1st level 2 puzzle is displayed in its empty form.

Restart puzzle

Justification: The restart puzzle icon should clear the currently displayed puzzle and restore it to it's original state. Boundary testing involves clicking the reset button while the puzzle is empty, as well as having only 1 item in it, and being 1 item from completion. Of these three the final test is least likely to discover a bug and can be skipped if time to execute the tests is limited.

Actions:

  1. Add a single item to an empty sudoku puzzle.
  2. Click the reset icon.

Verify:

  • The puzzle is returned to its empty form.

Actions:

  1. Add items to a sudoku puzzle so that it can be completed by adding 1 more item.
  2. Click the reset icon.

Verify:

  • The puzzle is returned to its empty form.

Actions:

  1. Click the reset icon while an empty form of level 1, puzzle 2 is displayed.

Verify:

  • Nothing happens.

Playing Level 1-3

Fixed squares
The squares in a puzzle which contain symbols when the puzzle is in its initial state. These symbols can not be removed or changed by the user.
Valid squares
A square in which the rules of Sudoku allow a user to place a given symbol or number in that sqare.

Moving Symbols

Justification: For this test in was initially thought that only one of the symbols needed to be tested as the functionality of the other symbols would be identical. However testing discovered that the positioning of a symbol on the side bar effected whether it passes above or below other symbols on the side bar. For that reason it was decided to test both the top and bottom symbols on the side bar.

Hover

Actions:

  1. Hover over the top symbol on the sidebar.
  2. Move to hover over the bottom symbol on the sidebar.

Verify:

  • The symbol lights up, or gives some other form of feedback to the user that indicates that the cursor is hovering over that symbol.

Click & Drag

Actions:

  1. Click and hold down the mouse button on the first symbol.
  2. Drag the symbol over the icons on the side menu bar.
  3. Drag the symbol over the icons on the bottom menu bar, and the level label.
  4. Repeat the above steps for the bottom symbol in the side bar.

Verify:

  • The symbol disapears from the sidebar and a smaller form appears attached to the cursor.
  • The symbol remains attached to the cursor as the mouse is moved.
  • The symbols is still visible and attached to the cursor when passing over the bottom bar and level label.

Adding Symbols

Justification: In general it was decided that the functionality of one symbol was the same as the functionality of the other symbols. Hence it was not neccessary to test all the symbols for every possible way of adding symbols to the puzzle.

Invalid

Justification: This test tests all the different symbols on the side bar being dragged into the various invalid positions. It is uneccessary to test all the invalid symbols being dragged into all the invalid positions.

Actions:

  1. Start with an empty puzzle on level 1.
  2. Attempt to place the 1st symbol on top of one of the icons on the bottom menu bar.
  3. Attempt to place the 2nd symbol on the menu bar in an empty space outside the puzzle.
  4. Attempt to place the 3rd symbol inside one of the FIXED invalid squares.
  5. Attempt to place the 3rd symbol inside one of the FIXED valid squares.

Verify:

  • In all three cases the symbol disapears from the cursor when the mouse is released.
  • The symbol reapears on the side menu bar.
  • Nothing else happens.

Valid Empty Square

Actions:

  1. Pick up and release a symbol inside a VALID empty square.

Verify:

  • The symbol drops from the cursor.
  • An enlarged version of the symbol appears in the empty box.
  • The background color of the square does not change.
  • The symbol reapears on the side bar.

Valid Variable Square

Actions:

  1. Pick up and release a symbol inside a VALID variable square which contains a symbol different than the one on the cursor.
  2. Pick up and release a symbol inside a VALID variable square which contains a symbol the same as the one on the cursor. (This is probably not needed)

Verify:

  • The symbol drops from the cursor.
  • An enlarged version of the symbol replaces the square in the box below.
  • The background color of the square does not change.
  • The symbol reapears on the side bar.

Invalid Variable Squares

Justification: Part of the rationale behind this test was a bug that was discovered while exploring the system. This bug resulted in filled variable squares changing to the color of fixed squares when they were highlighted because they had blocked the addition of symbol in an empty variable square.

Actions:

  1. Release a symbol inside an EMPTY square that is INVALID due to a fixed square.
  2. Release inside an EMPTY square that is INVALID due to a variable square.
  3. Release inside an EMPTY square that is INVALID due to both a variable square and fixed square.
  4. Release inside an FILLED square that is INVALID due to both a variable square and fixed square.

Verify:

  • The small symbol dissapears from the cursor.
  • It appears simultaneously back on the sidebar
  • The symbols that are already in the grid and are the reason the placement of the new symbol is INVALID are highlighted for 3 seconds.
  • The highlighted squares return to their normal state after 3 seconds.

Removing Symbols

Actions:

  1. Click on a FIXED square.
  2. Click on an EMPTY square.
  3. Click in the background of a filled VARIABLE square.

Verify:

  • Nothing happens.

Actions:

  1. Click on the symbol inside a filled VARIABLE square.

Verify:

  • The symbol inside the square dissapears.
  • The background color of the square is the same as a normal empty square.

Playing Level 4-5

Justification: The rationale behind the tests for levels 4 and 5 is similar to that for the testing of levels 1 to 3.

Hovering

Side Bar

Actions:

  1. Hover over the top symbol on sidebar.
  2. Click on the second symbol on the side bar.

Verify:

  • The symbol's dont light up.
  • Nothing happens.

Puzzle Squares

Actions:

  1. Move the cursor to the edge of the puzzle.
  2. Move the cursor into an empty square on one of the edges of the puzzle.
  3. Move the cursor into an adjacent empty square.
  4. Move the cursor into another empty square on each of the other three edges of the puzzle. (If the corners are free move to the corners)
  5. Move the cursor into a fixed square.
  6. Move it into an adjacent empty square.

Verify:

  • When the cursor enters and leaves a fixed square nothing happens to that square.
  • When the user enters an empty square the background color of the square changes to indicate that the users is hovering over it.
  • When the cursor leaves the empty square the background color returns to the original color.

Filled Variable Squares

Actions:

  1. Put a number in one of the variable squares.
  2. Give the keyboard focus to another empty square by clicking in it.
  3. Hover over the background part of that square.
  4. Hover over the number.
  5. Leave the square.

Verify:

  • The square is highlighted when the cursor hovers over both the background and number inside a filled variable square.
  • The background color of the square returns to normal when the mouse leaves the square.

Clicking

Fixed Square

Actions:

  1. Click on the number in a fixed square.
  2. Click on the background in a fixed square.

Verify:

  • Nothing happens.

Empty Square

Actions:

  1. Click on an empty square.
  2. Enter another empty square.
  3. Click inside the second empty square.
  4. Leave the second square.

Verify:

  • In both cases the square highlighting remains when the cursor leaves the square that is given the focus by clicking on it.

Filled Variable Square

Actions:

  1. Click in the background of a filled variable square.
  2. Enter another filled variable square.
  3. Click on the number inside the second filled variable square.
  4. Leave the square.

Verify:

  • In both cases the square highlighting remains when the cursor leaves the square that is given the focus by clicking on it.

Adding Numbers

Valid Input - Empty Square

Actions:

  1. Click on an empty square.
  2. Type a valid number on the keyboard.

Verify:

  • The number appears in the empty square.

Out-of-range Invalid Input

Actions:

  1. Click on an empty square.
  2. Type the number 0 on the keyboard.
  3. Type a number 1 higher than the maximum.
  4. Type a number that is numeric.
  5. Repeat the above steps for a filled variable square.

Verify:

  • Nothing happens.

Valid Input - Filled Variable Square

Actions:

  1. Click on a filled variable square to give it the focus.
  2. Type the same number that is in the square.
  3. Type a new number that is still a valid input.

Verify:

  • When the new number is typed the number inside the square changes.
  • Nothing else changes.

In-Range Invalid Inputs

Actions

  1. Type a number in an EMPTY square that is INVALID due to a fixed square.
  2. Type a number in an EMPTY square that is INVALID due to a variable square.
  3. Type a number in an EMPTY square that is INVALID due to both a variable square and fixed square.
  4. Type a number in an FILLED square that is INVALID due to both a variable square and fixed square.

Verify:

  • The squares in the grid that are the reason the number is INVALID are highlighted for 3 seconds.
  • The highlighted squares return to their normal state after 3 seconds.

Special In-Range Invalid Inputs

Actions:

  1. Type a number in an EMPTY square that is INVALID, because of a FIXED square.
  2. IMMEDIATELY move the cursor into the FIXED square that caused the invalid input in the previous step.

Verify:

  • The squares in the grid that are the reason the number was INVALID are highlighted.
  • When the cursor enters the highlighted FIXED square nothing happens.
  • The highlighted squares return to their normal state after 3 seconds.

Actions:

  1. Type 2 different numbers in an EMPTY square that are INVALID, because of a filled VARIABLE square.
  2. IMMEDIATELY move the cursor into the filled variable square that caused the invalid input in the previous step.

Verify:

  • The squares in the grid that are the reason the 2 numbers are INVALID are all highlighted.
  • When the cursor enters the highlighted square the INVALID highlighting is replaced by the FOCUS highlighting. The focus highlighting remains even after the 3 secons expires.
  • Other highlighted squares return to their normal state after 3 seconds.

Extras: The above test could also be applied by clicking in the variable square and making sure the permanent focus is maintained after the 3 seconds expires. This test could also have the user move out of the square before the 3 seconds expires.

Removing Numbers

Actions:

  1. Click on a filled variable square.
  2. Hit the erase button on the keyboard.
  3. Type a new valid input on the keyboard.

Verify:

  • The number disspears from the square.
  • Background color remains the same.
  • When the new number is typed it appears in the empty square.

Completing a Puzzle

Justification: This test contains use cases checking that the game runs smoothly through a normal usage scenario.

Actions:

  1. Complete the first puzzle in level 1.

Verify:

  • A congratulatory picture is displayed to the user.
  • The screen changes to a new puzzle from that level which is empty.
  • The puzzle count increase by 1.

Actions:

  1. Complete the last puzzle in level 1.

Verify:

  • The congratulatory picture is displayed to the user.
  • The screen changes to a new puzzle from the next level which is empty.
  • The puzzle count returns to 1.
  • The dice (level changer) icon moves to the next number.

Optional Extra

Actions:

  1. Complete the last puzzle in level 5.

Verify:

  • A SPECIAL congratulatory picture is displayed to the user.
  • The screen changes to the first puzzle in level 1.
  • The puzzle count returns to 1.
  • The dice (level changer) returns to 1.

Quit the activity

Justification: HIG

Actions:

  1. Click the quit icon on the bottom menu bar.

Verify:

  • That the activity closes properly.
  • That the sudoku icon disappears from the activity donut.

Resume a session

Justification: HIG

Actions:

  1. Switch to the Journal.
  2. Find the entry for your Browse session.
  3. Either click on the 'direct launcher' at the right of the entry or
  4. Click on the entry and use the "Resume" button to resume the entry with the desired activity.

Verify:

  • That your entry in the Journal is still present and has updated the preview to indicate your new work.
  • That resuming your Browse session loads the last session properly.