Friday, May 05, 2006

Software testing FAQ - No. 14

What is software testing ? If it is results-orientated, can win matches and makes sure that over the next four years I win a major trophy then I need to know more about it.

That question was sent in by Steve McClaren. The question is straight-forward and I recommend Wikipedia for the full definition.


Software testing is the process used to help identify the correctness, completeness, security and quality of developed computer software. With that in mind, testing can never completely establish the correctness of arbitrary computer software. In computability theory, a field of computer science, an elegant mathematical proof concludes that it is impossible to solve the halting problem, the question of whether an arbitrary computer program will enter an infinite loop, or halt and produce output. In other words, testing is criticism or comparison, that is comparing the actual value with an expected one.

There are many approaches to software testing, but effective testing of complex products is essentially a process of investigation, not merely a matter of creating and following rote procedure. One definition of testing is "the process of questioning a product in order to evaluate it", where the "questions" are things the tester tries to do with the product, and the product answers with its behavior in reaction to the probing of the tester.

Although most of the intellectual processes of testing are nearly identical to that of review or inspection, the word testing is connoted to mean the dynamic analysis of the product—putting the product through its paces. The quality of the application can, and normally does, vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability. Refer to the ISO standard ISO 9126 for a more complete list of attributes and criteria.

There is plenty of additional information about software testing on the Wikipedia site. You may also enjoy DirPedia.com which combines a dictionary, an encyclopedia and a web directory.

As for the statement following your question, Steve, I think you are confused about software testing. I suggest you get a grip of yourself, or people may start thinking you are a bit of a turnip head.