Browse Prior Art Database

THEORIES Of PROGRAM TEST NG `AND THE . APPLICATION OF REVEALING SUBDOMAINS

IP.com Disclosure Number: IPCOM000128171D
Original Publication Date: 1979-Dec-31
Included in the Prior Art Database: 2005-Sep-15
Document File: 15 page(s) / 51K

Publishing Venue

Software Patent Institute

Related People

Thomas J. Ostrand: AUTHOR [+4]

Abstract

The theory of test data selection proposed by Goodenough and Gerhart is examined and a number of theoretical and pragmatic deficiencies are identified. The concepts of a revealing test criterion and a revealing subdomain are proposed to overcome some of these weaknesses, and to provide a realistic basis for a theory of testing. A subset of a program's input domain is revealing if the existence of one incorrectly processed input implies that all the subset's elements are processed incorrectly. The intent of this, notion is to partition the program's domain in such a way that all elements of an equivalence class are either processed correctly or incorrectly. A program test set is then formed by choosing one element from each class. The technique is especially useful for programs whose computations depend on a classification of their input domain, but it can also be useful for programs which process their entire domain uniformly. A methodology for forming revealing subdomain partitions is described, and illustrated with three examples to which other testing methodologies have been applied in the literature.

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

Page 1 of 15

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

THEORIES Of PROGRAM TEST NG `AND THE . APPLICATION OF REVEALING SUBDOMAINS

Thomas J. Ostrand By Elaine J. Weyuker and February 1979

Report No. Theories of Program Testing and the Application of Revealing Subdomains

Elaine J. Weyuker Thomas J. 4strand

ABSTRACT

The theory of test data selection proposed by Goodenough and Gerhart is examined and a number of theoretical and pragmatic deficiencies are identified. The concepts of a revealing test criterion and a revealing subdomain are proposed to overcome some of these weaknesses, and to provide a realistic basis for a theory of testing. A subset of a program's input domain is revealing if the existence of one incorrectly processed input implies that all the subset's elements are processed incorrectly. The intent of this, notion is to partition the program's domain in such a way that all elements of an equivalence class are either processed correctly or incorrectly. A program test set is then formed by choosing one element from each class. The technique is especially useful for programs whose computations depend on a classification of their input domain, but it can also be useful for programs which process their entire domain uniformly. A methodology for forming revealing subdomain partitions is described, and illustrated with three examples to which other testing methodologies have been applied in the literature.

1. Introduction

The primary goals of a theory of testing are to provide a basis for. practical program testing methodologies, and to establish ways of determining the effectiveness of tests in detecting program errors. Ideally, one would ` like to construct tests which will detect the presence of all errors in a program, and to know that this has been done. In [5], Goodenough and Gerhart propose basic definitions for a theory of testing, and discuss the criteria to be used in selecting test items from the domain of possible inputs to a program. They argue convincingly that test data selected solely on the basis of program structure will not in general be adequate for thorough testing. It is easy to construct simple incorrect programs in which every statement, every branch, or every path can be correctly exercised by appropriate test data. This situation motivated the definition in [5] of an ideal test in terms of the input and output specifications of the program. An ideal test for a program F consists of a set of test data T = {ti} such that, there is an input d in F's data domain for which an incorrect output is produced if and only if there is some ti E T on which F is incorrect. The existence of an ideal test, together with its successful execution, constitutes a proof of correctness for the program. Given the difficulty of finding proofs of program correctness, and tree fact that there cannot exist an algorithm for verification of any reasonable class of programs, we should not be surprised that ideal tests...