Automatic Software Test Drivers
Original Publication Date: 1978-Apr-01
Included in the Prior Art Database: 2005-Nov-10
Software Patent Institute
David J. Panzl: AUTHOR [+3]
General Electric Co.
THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.
This record contains textual material that is copyright ©; 1978 by the Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Contact the IEEE Computer Society http://www.computer.org/ (714-821-8380) for copies of the complete work that was the source of this textual material and for all use beyond that as a record from the SPI Database.
Automatic Software Test Drivers
David J. Panzl General Electric Co.
Typical testing activities may involve many hundreds of tests. An automatic software test driver assists the tester by managing all of the test data, and automatically running the tests. Savings during regression testing can be significant
The execution of software test cases and the verification of test results may be performed automatically by a new type of program called an automatic software test driver. When an automatic test driver is used, a formal test procedure is coded in a special test language. The test procedure takes the place of the test data and test setup instructions of conventional testing and consists of one or more test cases, each of which contains input data values and model test outputs. An automatic software test driver applies a test procedure to all or part of a target program and executes the target program once for each test case specified in the test procedure. On each execution the automatic test driver supplies the target program with the specified inputs and captures the target program's outputs and compares them with the model outputs specified in the test procedure.
When the target program accepts all its inputs, executes to completion, and generates the correct outputs, a test case is said to have been executed successfully. When the target program's outputs do not match the model outputs specified in the test procedure, the test case is said to have failed. All test-case results are reported to the user in a brief test-execution report.
The specific goals of automatic software test drivers and formal test procedures are to provide a standard notation for specifying software tests, to provide a standard setup for executing software tests, to automate the verification of test results and to eliminate the need for writing separate drivers and stubs for module and subsystem testing.
The capability of retaining software test cases in a form that may be reused by someone other than the original test designer is very useful for the following reason. It is widely agreed that the majority of errors appearing in production software do not come from the original implementation, but rather are unintended side effects of postrelease program modifications. A good defense against this problem is for the original implementors of a computer program to design thorough test procedures that initially verify the correctness of the program and to retain these test procedures throughout the program's life cycle....