Sponsored Ad

Thursday, October 1, 2009

Introduction of Software Testing

When a program is implemented to provide a concrete representation of an algorithm, the developers of this program are of course concerned with the correctness plus performance of the implementation. Application engineers must assure that their application systems achieve an appropriate level of quality. Application verification is the method of ensuring that a program meets its intended specification.

Software testing involves over running a program to see whether it works. A single check run disclose nothing about the program other than the obvious fact that it can yield results for a particular set of inputs. Application testing should be dealt as an investigative exercise; one which systematically uncovers different classes of errors within the code while demonstrating that the application behaves as expected.

For example, if the definition “Software Testing is a method of proving that a program is bug free” were adopted, there would be a natural tendency for developers to subconsciously write fewer or less ‘destructive’ test cases with lower probabilities of breaking the program. Furthermore, the objective that this definition implies is practically impossible to achieve. It takes only five failed test to prove the existence of bugs, but requires an everlasting amount of test cases to prove otherwise. Tests can only find defects, not prove that there's none.

A similarly false definition would be “Software Testing is a scheme of proving that a program performs its intended functions”. This line of thinking often leads to check cases that focuses only on program behavior that's inherently expected . However, programs that perform the right functions when given a controlled set of inputs are still erroneous if we also produce unwanted side effects or fail when given unexpected inputs. A complete check should check for both expected & unexpected behaviors , using valid as well as invalid inputs.

Software testing can be defined as “a technique of execution of a program with the purpose of finding errors”. Using the analogy of a medical diagnosis, a successful investigation is one that seeks and discovers a problem, than one that reveals nothing and provides a false sense of well-being. Based on this definition, they establish that a lovely set of check cases should be one that has a high chance of uncovering previously unknown errors, while a successful check run is one that discovers these errors.

0 comments:

Post a Comment

Sponsored Ad

Development Updates

Tech Updates