| Section 9: Program Testing | ||||||
| Column: | D | C | B | A | ||
| Row: | Program Testing: | YOUR SCORE | Attempt | Meets Requirements | Exceeds Requirements | Exemplary |
| ***NOTE***: must meet minimum requirements in at least HALF of all programs submitted. | ||||||
| Minimum Points: | Must exceed requirements in at least one area. | Total Points: | ||||
| 12 | 0 | 20 | ||||
| 1 | Pre- & Post- conditions. | Occasionally defines pre- and post- conditions for methods and functions. | Consistently defines pre- and post- conditions for methods and functions. | Consistently defines pre- and post- conditions for methods and functions. Some use of assertions. | Consistently defines pre- and post- conditions for methods and functions. Some use of assertions. Pre- and Post-conditions well tested & enforced. | |
| 2 | End-point testing; | Sporadic. | . Often | Consistent | Clear, well chosen. | |
| 3 | Use of test data. | Sporadic. | . Often | Consistent | Clear, well chosen. | |
| 4 | Test data creation & generation | Sporadic. | . Able to identify key test points. | Able to identify key test points. Clear on what aspects of the solution are being tested with each set. | Able to identify key test points. Clear on what aspects of the solution are being tested with each set. Able to generate test data automatically when necessary. | |
| 5 | Test Drivers | Sporadic. | . Often | Consistent | Clear, well chosen. | |
| Column: | D | C | B | A | ||
| Row: | Debugging: | YOUR SCORE | Attempt | Meets Requirements | Exceeds Requirements | Exemplary |
| Minimum Points: | Must exceed requirements in at least one area. | Total Points: | ||||
| 14 | 0 | 24 | ||||
| 1 | Distinguish the major categories of bugs. [syntax vs. semantics] | Occasionally | Sometimes able to identify which kind of bug it is and able to take appropriate action to resolve it. | Usually | Almost Always | |
| 2 | Debugging Code: demonstrate at least 3 different types of bugs (e.g. Off-by-one; pointer; uninitialized) ; how to avoid them; how to find them when you didn't. | n/a --- | Show's novice ability - sometimes able to identify the bug based on the program's behaviour. Able to resolve the problem with help or prompting. | Show's intermediate level ability - often able to identify the bug based on the program's behaviour. Sometimes able to resolve the problem without help or prompting. | Consistently able to identify and resolve bugs. Able to articulate numerous strategies for avoiding these bugs. | |
| 3 | Assertions: what are they and how/when to use them. | Able to recite definition. | Able to discuss the concept; follow code that uses them. | Able to use them in own programs. | Able to use assertions effectively. | |
| 4 | Instrumentation: what is it; when is (not) useful? | Define the term. | Able to pick it out in code - explain its utility/purpose. | Uses it in own programs. | Able to use and discuss it's use critically. | |
| 5 | Error Messages: how to write useful ones. | Programs have some error messages. | Programs usually have reasonable error messages. | Programs consistently have reasonable error messages. | Programs usually have reasonable error messages. Programs able to recover reasonable when appropriate. | |
| 6 | Distinguish between a 'bug' and an exception. | Can describe the differences. | Occasional correct placement of error detection/correction code. | Reasonable placement of error detection/correction code. | Clearly and consistently demonstrates distinction between errors and exceptions. | |