GENERAL CONCEPTS OF TESTING
During testing the software engineering produces a series of test cases that are used to“rip apart” the software they have produced. Testing is the one step in the software process that can be seen by the developer as destructive instead of constructive. Softwareengineers are typically constructive people and testing requires them to overcome preconceived concepts of correctness and deal with conflicts when errors are identified.
Testing is the process of executing program(s) with the intent of finding errors, rather than (a misconception) of showing the correct functioning of the program(s). Thedistinction may sound like a matter of semantics, but it has been observed to have profound effect on testing success. The difference actually lies on the different psychological effect caused by the different objectives: If our goal is to demonstrate thata program has no errors, then we will tend to select tests that have a low probability of causing the program to fail. On the other hand, if our goal is to demonstrate that a program has errors; our test data will have a higher probability of finding errors.Specifically, testing should bear the following objectives:(a) To reveal design errors;(b) To reveal logic errors;(c) To reveal performance bottleneck;(d) To reveal security loophole; and(e) To reveal operational deficiencies.All these objectives and the corresponding actions contribute in increasing quality andreliability of the application software.