Testing Principles - Answers 1. A Necessary part of the test is a definition of the expected output or
result
2. A programmer should avoid attempting to test his or her own program.
3. A programming organization should not test its own programs.
4. Any testing process should include a thorough inspection of the results of each test.
5. Test cases must be written for input conditions that are invalid and unexpected, as well as for those
that are valid and expected.
6. Examining a program to see if it does not do what it is supposed to do is only half the battle; the other
half is seeing whether the program does what it is not supposed to do
7. Avoid throwaway test cases unless the program is truly a throwaway program.
8. Do not plan a testing effort under the tacit assumption that no errors will be found.
9. The probability of the existence of more errors in a section of a program is proportional to the
number of errors already found in that section.
10. Testing is an extremely creative and intellectually challenging task.
Black-Box Testing - Answers -Data driven or input/output testing
*What a program is supposed to do and who it is for
, -very minimal technical knowledge required
-tests using not only valid inputs, but all possible inputs (incredibly time consuming)
-System testing
White-Box Testing - Answers -Logic Driven Testing
-Examines the internal structure/logic of the program (and can sometimes neglect the programs
specifications or input/output)
-"Exhaustive Path Testing"
-Even more time-consuming than Blackbox
Code Walkthrough - Answers An informal meeting of 3-5 Developers (ideally) performs a review. One of
which is the program author.
Code Inspection - Answers A formal and rigorous testing technique where the programmer reviews
source code
-Typically a group of 4:
*The Moderator* - Typically a QA Engineer, leads the session and ensures that all errors are identified
and corrected.
*The Programmer* - The programs designer/author