Browse Prior Art Database

Program Testing by Specification Mutation

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

Publishing Venue

Software Patent Institute

Related People

Ajei Gopal: AUTHOR [+4]

Abstract

Both theoretical and empirical arguments suggest that specifications and implementa-tions are equally important sources of information for generating test cases. Nevertheless, the majority of test generation procedures described in the literature deal only with the program source, ignoring specifications. In this paper we outline a procedure for measur-ing test case effectiveness using specifications given in predicate calculus form. This method is similar to the mutation analysiq method of testing programs.

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

Page 1 of 11

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

Program Testing by Specification Mutation*

Ajei Gopal

Tim Budd

TR 83-17

ABSTRACT

Both theoretical and empirical arguments suggest that specifications and implementa-tions are equally important sources of information for generating test cases. Nevertheless, the majority of test generation procedures described in the literature deal only with the program source, ignoring specifications. In this paper we outline a procedure for measur-ing test case effectiveness using specifications given in predicate calculus form. This method is similar to the mutation analysiq method of testing programs.

November 4, 1983

Department of Computer Science The University of Arizona Tucson, Arizona 8.5721

*This work was supported in part by the National Science Foundation under Grant MCS- 8109547.

1. Introduction

Early attempts to provide a theoretical foundation for systematic software testing (such as [9]) argued that equally valuable information is provided by both the specifications for and the implementation of a software system. Thus both specifications and code should be used in deriving test cases. The majority of systematic. test methods discussed in the literature, however, select test cases using only information obtained from the implementation. The major reason for this is pragmatic; existing specification methods are largely informal and thus not amenable to analysis by an algorithmic procedure. Overviews of various specification techniques can be found in 18, 171. One language for describing specifications that can be for- mally defined is the predicate calculus 1121. In this paper we will investigate the technique of mutation analysis applied to the testing of specifications given in this form. One motivation for investigating testing methods based on specifications is that intuitively this is the way programmers try to test their programs. One can consider a programmer testing a section of code as attempting to answer the question "does this code do what it is intended to do ?" That is, the programmer has in mind a specification for the task at hand (unfortunately in practice this specification is often fuzzy or unformalized), and wishes to secure evidence that the program is actually achieving the task described by the specification. Forcing the user to provide a specification in predicate calculus form,is, in itself, a task sufficiently disciplined that errors in design or conception can frequently be exposed without resorting to other validation techniques. Once a specification has been provided it can be used in several different ways. At the simplest it, can be used as an "oracle" to determine the correctness of test case output. (In some cases

University of Arizona Page 1 Dec 31, 1983

Page 2 of 11

Program Testing by Specification Mutation

this can bleautornated, however generally it requires human processing.) More complicated is the use of specificatio as in providi...