Browse Prior Art Database

Computer Assisted Design of Program Test Libraries

IP.com Disclosure Number: IPCOM000079640D
Original Publication Date: 1973-Aug-01
Included in the Prior Art Database: 2005-Feb-26
Document File: 4 page(s) / 46K

Publishing Venue

IBM

Related People

Elmendorf, WR: AUTHOR

Abstract

To determine the functional correctness of a computer program three kinds of information are needed: (1) the identity of the functional variations which represent the program's functional specification, (2) the design of a test library which will efficiently exercise all testable functional variations, and (3) the identity of the faulty functional variations detectable by each test. This article describes a process for generating this information. Fig. 1 presents an overview of the design process showing the six phases, the flow from phase-to-phase, and the key inputs to and outputs from each phase. The Specification Analysis phase may be done manually. The remaining five phases may be implemented in a computer program.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 43% of the total text.

Page 1 of 4

Computer Assisted Design of Program Test Libraries

To determine the functional correctness of a computer program three kinds of information are needed: (1) the identity of the functional variations which represent the program's functional specification, (2) the design of a test library which will efficiently exercise all testable functional variations, and (3) the identity of the faulty functional variations detectable by each test.

This article describes a process for generating this information.

Fig. 1 presents an overview of the design process showing the six phases, the flow from phase-to-phase, and the key inputs to and outputs from each phase. The Specification Analysis phase may be done manually. The remaining five phases may be implemented in a computer program.

The functional specification for a program describes the mapping of inputs (primary causes) into outputs fend effects), without regard to how that mapping is implemented in the program. From this the tester first identifies the distinct cause; and effects and then portrays the logical structure of the mapping in a boolean graph (hereafter called a cause-effect graph). The eligible connectives are AND, OR, NAND, NOR, NOT and SIMPLE. (SIMPLE joins a single cause to a single effect.)

Where the specification describes both the functional contribution of a parameter and its range of acceptable values, only the extremes of the range are identified as distinct cause nodes in the graph.

If any intermediate nodes (those between primary causes and end effects) are directly invokable or directly observable by the tester, this is noted. If any intermediate nodes are transparent to the tester, i.e., they are not mentioned in the specification but are included to construct more complex connectives than those listed above, this is noted.

It is probable that various environmental conditions will restrict the feasible domain of test patterns. For instance, syntax checkers which precede the object program may restrict allowable combinations of primary causes, and ABEND routines which abort execution may restrict allowable combinations of end effects. These conditions, called environmental constraints, can take any of these forms: Causes day be mutually-exclusive, meaning that at most

one of the set may be invoked in a given test pattern.

Causes may be all-inclusive, meaning that at least one

of the set must be invoked in every test pattern.

One and only one of a set of causes must be invoked in

every test pattern.

The state of one cause may require a certain state for

another cause.

The state of one effect may mask observation of the states

of other effects.

1

Page 2 of 4

All such constraints are represented in the graph by specially defined connectives, Which then enter into subsequent processing.

The cause-effect graph, together with its annotations, yields two kinds of test information in Graph Analysis: (1) the functional variations, and (2) the sensitized paths through the grap...