Stream
|
,|x|Build stream::x}}
|
Category
|
Test category::Activity
|
Sub-category
|
Test subcategory::TurtleArt
|
Component
|
System component::TurtleArt
|
Feature
|
System feature::http://wiki.laptop.org/go/Turtleart
|
Objective
|
Test objective::Tests basic arithmetic operations
|
Tools
|
Test tools::None
|
Setup
|
[[Test setup::--
- Open the TurtleArt activity.
- Drag a 'forward' block onto the field and remove it's value by dragging it onto the toolbox.
- Connect another 'forward' block immediately below the first 'forward' block. Leave its value as 100.
- Connect a 'print' block immediately below the last 'forward' block.
- Place a 'ycor' value in the print block.]]
|
Procedure
|
[[Test procedure::Test Procedure (repeat for all test values below):
- Click the 'clean' button at the top of the screen.
- Connect the math function under test to the input of the first 'forward' statement.
- Change the default values to the values specified by the test.
- Run the sequence.
- Make sure the value printed to the output matches the expected value.
- In all cases, the turtle must have moved upwards, be at the upmost position of the drawn line and facing upwards.
Test Values:
# | Top Value | Bottom Value | Expected Result |
[Addition] |
1. | 23.2 | 12.3 | 135.5 |
2. | -32.4 | 2.8 | 70.4 |
3. | 5.6 | -9.8 | 95.8 |
4. | -07 | -2 | 91.0 |
5. | 0.0 | 3.5 | 103.5 |
6. | 4.6 | 0.0 | 104.6 |
7. | 0.0 | 0.0 | 100.0 |
[Subtraction] |
8. | 23.2 | 12.3 | 110.9 |
9. | -32.4 | 2.8 | 64.8 |
10. | 5.6 | -9.8 | 115.4 |
11. | -07 | -2 | 95.0 |
12. | 0.0 | 3.5 | 96.5 |
13. | 4.6 | 0.0 | 104.6 |
14. | 0.0 | 0.0 | 100.0 |
[Multiplication] |
15. | 2.2 | 2 | 104.4 |
16. | -2.4 | 3 | 92.8 |
17. | 5 | -9.8 | 51.0 |
18. | -07 | -2 | 114.0 |
19. | 0.0 | 3.5 | 100.0 |
20. | -4.6 | 0.0 | 100.0 |
21. | 0.0 | 0.0 | 100.0 |
[Division] |
22. | 2.2 | 2 | 101.1 |
23. | -2.4 | 3 | 99.2 |
24. | 5 | -9.8 | 99.4 |
25. | -07 | -2 | 103.5 |
26. | 0.0 | 3.5 | 100.0 |
27. | -4.6 | 0.0 | Error message |
28. | 0.0 | 0.0 | Error message |
[Modulo Values] |
29. | 18 | 8 | 102.0 |
30. | -2.4 | 3 | 100.6 |
31. | 5 | -9.8 | 95.2 |
32. | -07 | -2 | 99.0 |
33. | 0.0 | 3.5 | 100.0 |
34. | -4.6 | 0.0 | Error message |
35. | 0.0 | 0.0 | Error message |
[Square Root Values] |
36. | -1 | Error message |
37. | 0 | 100.0 |
38. | 1 | 101.0 |
39. | 4 | 102.0 |
40. | 7 | 102.6 |
]]
|
Expected Results and Pass Criteria
|
Pass criteria::All outputs from the 'print' command match the expected values listed in the table.
|
Comments
|
[[More notes::Assumptions:
- All outputs are truncated to 1 decimal place.
- Mathematically invalid operations should show a #syntaxerror
- Arithmetic overflow is not likely to be a problem for the range of values required, hence is not tested.
Rationale
- Moving the turtle and then checking its Y co-ordinate is used rather than directly checking the output from the math function is done because the print function itself seems to catch errors and write '0' regardless, whereas moving the turtle reveals these errors. Furthermore, moving the turtle again after the test indicates that the program is left in a working state.
- Equivalence partitioning is used since the math functions take at most 2 inputs, and the number tests required to provide sufficient coverage is optimal.
- Addition, Subtraction, Multiplication, Division & Modulo: Values are chosen from the partition class {Negative Real Number, 0.0, Positive Real Number}
- Square Root: Values tested include {-1 (invalid), 0, 1, 4 (integer result), 7 (irrational result)}. These values were selected using Boundary Analysis.]]
|