Browse Prior Art Database

Program Instrumentation and Software Testing

IP.com Disclosure Number: IPCOM000131293D
Original Publication Date: 1978-Apr-01
Included in the Prior Art Database: 2005-Nov-10
Document File: 11 page(s) / 40K

Publishing Venue

Software Patent Institute

Related People

J.C. Huang: AUTHOR [+3]

Abstract

The program tester needs to know what goes on inside a program as it executes during a test Instrumentation methods permit collection of testing coverage data without modifying the logical properties of programs being tested.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 10% of the total text.

Page 1 of 11

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.

Program Instrumentation and Software Testing

J.C. Huang

University of Houston

The program tester needs to know what goes on inside a program as it executes during a test Instrumentation methods permit collection of testing coverage data without modifying the logical properties of programs being tested.

It is well known that one cannot find all the errors in a program simply by testing it for a set of input data.'3 Nevertheless, program testing is the most commonly used technique for error detection in today's software industry. Consequently, the problem of finding a program test method with increased error-detection capability has recived considerable attention in the field of software research.

There appear to be two maj or approaches to this problem. One is to find better criteria for test- case selection.'-7 The other is to find a way to obtain additional information (i.e., information other than that provided by the output of the program) that can be used to detect errors.~-"

The technique of program instrumentation discussed in this article can be regarded as a major outgrowth of the second approach. The main idea is to insert additional statements /instruments) into the program to be tested for the purpose of computing certain program attributes. By testing (executing) the instrumented program for a properly chosen set of test cases, we will be able to obtain the values of the program attributes automatically. The attribute values provide us with additional information for error detection. The following pages illustrate the utility of this technique and explore its potential as a tool for program validation.

Examples of program instrumentation

Numerous applications of program instrumentation in program analysis and evaluation have been reported. For example, it has been utilized to

generate program profiles by Russell and Estrinp~ to measure instruction mix and execution time by Bussell and Koster,'3 and to produce information about the syntactic and operational characteristics of programs by Stucki, " to mention a few. The first direct application of program instrumentation to program testing appears to have been the measurement of the thoroughness of a test.'s-'9

Test requirements.

It seems intuitively clear that existence of an error in a program will not be reflected in the test result unless the program component in error is executed during the test. Furthermore, the probability of discovering errors through testing can be improved by increasing the number of times each component is executed (exercise...