The author then discuss the incorrect definition of testing such as:
- Testing is the process of demonstrating that errors are not present
- The purpose of testing is to show that a program performs its intended functions correctly
- Testing is the process of establishing confidence that a program does what it is supposed to do
- Testing is the process of executing a program with the intent of finding errors.
The author then discusses about different testing methods:
- Black-box testing: It is called data-driven or input/output driven technique. The test cases are derived directly from specification and the tester is completely unconcerned about the internal behaviour and structure of the program. The author concludes that exhaustive input testing is not possible.
- White-box testing: It is called logic-driven testing. Unlike black-box testing which focuses on data, the white-box testing focuses on control-flow and try to exhaustively test all the paths through a program. The author describes two flaws in this kind of testing:
- A necessary part of a test case is a definition of the expected output or result.
- A programmer should avoid attempting to test his or her own program.
- A programming organization should not test his own programs.
- Thoroughly inspect the results of each test.
- Test cases must be written for invalid and unexpected, as well as valid and expected, input conditions.
- There are two parts of the testing process, testing to see that the program does not do what it is supposed to and that the program does what it is not supposed to do.
- Avoid throw-away test cases unless the program is truly a throw-away program.
- Do not plan a testing effort under the tacit assumption that no errors will be found.
- 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.
- Testing is an extremely creating and intellectually challenging task.
- A good test case is one that has a high probability of detecting an as-yet undiscovered error.
- A successful test case is one that detects an as-yet undiscovered error.
No comments:
Post a Comment