Solved MBA IT Assignment and Notes

Full width home advertisement

Post Page Advertisement [Top]

Discuss the Objective and Principles Behind Software Testing
Answer:

Software testing objectives:
1.    Testing is a process of executing a program with the intent of finding an error.
2.    A good test case is one that has a high probability of finding an as return discovered error.
3.    A successful test is one that uncovers an as-yet-undiscovered error.


These objectives imply a dramatic change in viewpoint. They move counter to  the commonly held view that a successful test is one in which no errors are found. Our objective is to design tests that systematically uncover different classes of errors, and to do so with a minimum amount of time and effort. If testing is conducted successfully (according to the objectives stated previously), it will uncover errors in the software. 
 
As a secondary benefit, testing demonstrates that software functions appear to be working according to specification, that behavioral and performance requirements appear to have been met. In addition, data collected as testing is conducted provide a good indication of software reliability, and some indication of software quality as a whole. But testing cannot show the absence of errors and defects, it can show only that software errors and defects are present.

Software testing principles

Davis [DAV95] suggests a set of testing principles that have been adapted for use in this book:
•    All tests should be traceable to customer requirements. As we have seen, the objective of software testing is to uncover errors. It follows that the most severe defects (from the customer’s point of view) are those that cause the program to fail to meet its requirements.

•    Tests should be planned long before testing begins.  Test planning can begin as soon as the requirements model is complete. Detailed definition of test cases can begin as soon as the design model has been solidified. Therefore, all tests can be planned and designed before any code has been generated.

•    The Pareto principle applies to software testing.  Stated simply, the Pareto principle implies that 80 percent of all errors uncovered during testing will most likely be traceable to 20 percent of all program components. The problem, of course, is to isolate these suspect components and to thoroughly test them.

•    Testing should begin “in the small” and progress toward testing “in the large.”  The first tests planned and executed generally focus on individual components. As testing progresses, focus shifts in an attempt to find errors in integrated clusters of components and ultimately in the entire system.

•    Exhaustive testing is not possible.  The number of path permutations for even a moderately sized program is exceptionally large. For this reason, it is impossible to execute every combination of paths during testing. It is possible, however, to adequately cover program logic and to ensure that all conditions in the component-level design have been exercised.

•    To be most effective, testing should be conducted by an independent third party.  By most effective, we mean testing that has the highest probability of finding errors (the primary objective of testing). For reasons that have been introduced earlier in this unit, the software engineer who created the system is not the best person to conduct all tests for the software.



No comments:

Post a Comment

Bottom Ad [Post Page]

| Designed by Colorlib