Since 1987 formerly the Software Publishers Assn. This paper was originally published in the SPANews , Vol. 7, No. 8. Software testing is a term that means different things to different people, and the definition depends greatly on the person questioned. This definition falls short, however, because many programs do what they're supposed to do but still contain errors.
Testing is, essentially, a destructive process whereas programming is a constructive process.
The mindset required for scrutinizing the performance of a program and to earnestly look for conditions that will make it misbehave or malfunction is diametrically opposed to the mindset needed to create the program in the first place. Program designers, programmers and others involved in the creation of the software have devoted their time and attention to producing a program that will perform to their specifications using the keystrokes and procedures they have prescribed. To expect these same people to change their mindset completely and don a destructive attitude toward the program is asking a bit much. Software testing is best performed and most thoroughly accomplished by an independent third party that has not been involved in the development of the program. A non-biased, objective point of view is essential in testing software, since it makes no assumptions about the strengths or weaknesses of the program.