Information Technology Reference
In-Depth Information
having the same fault detected by more than one test case. There are a number of
different forms of glass-box testing, including statement, branch, and path cov-
erage. The most powerful form of structural testing is path coverage that is, testing
all possible paths (Schach 1996 ).
10.7.1 Who Should Perform Execution-Based Testing?
Testing is a destructive process. On the other hand, the programmer doing the
testing ordinarily does not wish to destroy his or her work. A successful test finds
faults. It means that, if the code artifact passes the test, then the test has failed.
Conversely, if the code artifact does not perform according to specifications, then
the test succeeds. An inescapable conclusion is that programmers should not test
their own code artifacts. A second reason why execution-based testing should be
done by someone else is that the programmer may have misunderstood some
aspect of the design or specifications. If testing is done by someone else, such
faults may be discovered. The programmer must try out the flowchart or
pseudocode with various test cases, tracing through the detailed design to check
that each test case is executed correctly. When the programmer is satisfied that the
code artifact operates correctly, systematic testing commences. This Systematic
testing should not be performed by the programmer. If programmers are allowed to
test their own code, then there always is the danger that the programmer will see
what he or she wants to see. The same danger can occur even when the testing is
done by someone else. While the product is being maintained, regression testing
must be performed (Schach 2007 ).
10.8 Levels of Testing
The fact that the last module has been successfully integrated into the product does
not mean that the task of the developers is complete. The SQA group must still
perform a number of testing tasks in order to be certain that the product will be
successful. There are two main types of software: COTS and custom software. The
aim of developing COTS is to ensure that the product is sold to as many buyers as
possible. The aim of COTS product testing is to ensure that the product as a whole is
free of faults. When product testing is complete, the product then undergoes alpha
and beta testing, as described in the next section. Custom software, on the other
hand, undergoes a somewhat different type of product testing. The SQA performs a
number of testing tasks in order to be certain that the product will not fail its
acceptance test, the final hurdle that the custom software development team must
overcome. To ensure a successful acceptance test, the SQA group must perform
product testing. First, black-box test cases for the product as a whole must be run.
The test cases which are set as module-by-module or object-by-object must satisfy
Search WWH ::




Custom Search