MIS 495 -- Dr. Reithel

Chapter 16

Attributes of a 'good' test

Black-box Testing

Knowing the specified function that a product has been designed to perform, tests can be conducted that demonstrate each function is fully operational, at the same time searching for errors in each function. Black-box tests are used to demonstrate that software functions are operational.

White-box Testing

Knowing the internal workings of a product, tests can be conducted to ensure that "all gears mesh", that is, that internal operation performs according to specification and all internal components have been adequately exercised. White-box testing of software is predicated on close examination of procedural detail. Logical paths through the software are tested by providing test cases that exercise specific sets of conditions and/or loops.

Basis Path Testing

This is a white-box testing technique in which the test case designer derives a logical complexity measure of a procedural design and uses this measure as a guide for defining a basis set of execution paths. Test cases derived to exercise the basis set are guaranteed to execute every statement in the program at least one time during testing.

Cyclomatic Complexity

This is a software metric that provides a quantitative measure of the logical complexity of a program. When this metric is used in the context of the basis path testing method, the value computed for cyclomatic complexity defines the number of independent paths in the basis set of a program and provides us with an upper bound for the number of tests that must be conducted to ensure that all statements have been executed at least once.

Control Structure Testing

The basis path testing technique is one of a number of techniques for control structure testing. Although basis path testing is simple and highly effective, it is not sufficient in itself. Other variations on control structure testing include: condition testing, data flow testing, and loop testing.

Equivalence Partitioning

Equivalence partitioning is a black-box testing method that divides the input domain of a program into classes of data from which test cases can be derived. An ideal test case single-handedly uncovers a class of errors that might otherwise require many cases to be executed before the general error is observed. Equivalence partitioning strives to define a test case that uncovers classes of errors, thereby reducing the total number of test cases that must be developed.

Boundary Value Analysis

Since a greater number of errors tend to occur at the boundaries of the input domain than in the "center", boundary value analysis has been developed as a testing technique. BVA compliments equivalence partitioning and leads to a selection of test cases that exercise bounding values. Rather than focusing solely on input conditions, BVA derives test cases from the output domain as well.

Related Links:

Last Modified: Wednesday, 13-Jan-99 9:10:00 CDT
Copyright © 1999 University of Mississippi. All rights reserved.

Comments: reithel@bus.olemiss.edu