Skip to main content

4 - Software Testing - 0 - Introduction


Software testing is defined as "The Dynamic Verification That A Program Provides Expected Behaviors On A Finite Set Of Test Cases, Suitable Selected From The Usually  Infinite Execution Domain".

The term "Dynamic" here means that the testing always implies executing the program on selected inputs.
The term "Finite" here means that the test cases even for a single program is never exhausted as there will be a lot of possibility inputs that may be used. It is generally can be considered as Infinite way to test a program, but testing should be conducted on all possible test scenario with consideration of trade off between limited resources and schedules.
The term "Selected" here means the many proposed test techniques differ essentially in how the test set is selected, and software engineers must be aware that different selection criteria may yield vastly different degrees of effectiveness. How to identify the most suitable selection criterion under given conditions is a complex problem; in practice, risk analysis techniques and software engineering expertise are applied.
The term "Expected" here means it must be possible, although not always easy, to decide whether the observed outcomes of program testing are acceptable or not; otherwise, the testing effort is useless.

Software testing is no longer seen as an activity that starts only after the coding phase is complete. Software testing is now and should be executed throughout the entire development and maintenance life cycle. It is very important to plan for software testing at the early stages of the software requirement process and all the test artifacts should be systematically managed and continuously developed. These artifacts is very useful as software designers will intercept and highlight potential weakness, such as design oversights/contradictions, or omissions/ambiguities in the documentation.

For many organizations, the approach to software quality is one of prevention: it is obviously much better to prevent problems than to correct them. Testing can be seen, then, as a means for providing information about the functionality and quality attributes of the software and also for identifying faults in those cases where error prevention has not been effective. It is perhaps obvious but worth recognizing that software can still contain faults, even after completion of an extensive testing activity. Software failures experienced after delivery are addressed by corrective maintenance.

Next - 1 - Fundamentals
Home - Software Testing
Main - The BOK

Published on : 30-May-2018
Ref no : DTC-WPUB-000027

About Author

My photo
Wan Mohd Adzha CAPM,MCPD,MCSD,MCSE
Passionate about new technology ( Software Engineering ) and how to build,manage and maintain them

Comments