Test data as an aid in proving program correctness

Proofs of program correctness tend to be long and tedious whereas testing, though useful in detecting errors, usually does not guarantee correctness. This paper introduces a technique whereby test data can be used in proving program correctness. In addition to simplifying certification of correctness, this method simplifies the process of providing specifications for a program. The applicability of this technique to procedures, recursive programs, and modular programs is demonstrated.

[1]  Michel Sintzoff,et al.  Calculating properties of programs by valuations on specific models , 1972, Proving Assertions About Programs.

[2]  Peter Henderson,et al.  Finite state modelling in program development , 1975, Reliable Software.

[3]  James C. King A new approach to program testing , 1975 .

[4]  E. F. Miller,et al.  Automated generation of testcase datasets , 1975, Reliable Software.

[5]  Zohar Manna,et al.  Inductive methods for proving properties of programs , 1973, Commun. ACM.

[6]  Karl N. Levitt,et al.  SELECT - a formal system for testing and debugging programs by symbolic execution , 1975, Reliable Software.

[7]  James C. King A New Approach to Program Testing , 1974, Programming Methodology.

[8]  Rod M. Burstall,et al.  Proving Properties of Programs by Structural Induction , 1969, Comput. J..

[9]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[10]  Ralph L. London,et al.  A view of program verification , 1975, Reliable Software.

[11]  William E. Howden,et al.  Methodology for the Generation of Program Test Data , 1975, IEEE Transactions on Computers.

[12]  Ben Wegbreit,et al.  The synthesis of loop predicates , 1974, CACM.

[13]  Karl N. Levitt,et al.  SELECT—a formal system for testing and debugging programs by symbolic execution , 1975 .

[14]  Lawrence Robinson,et al.  Proof techniques for hierarchically structured programs , 1977, CACM.

[15]  Robert S. Boyer,et al.  Proving Theorems about LISP Functions , 1973, JACM.

[16]  Zohar Manna,et al.  Logical analysis of programs , 1976, CACM.

[17]  S. L. Gerhart,et al.  Toward a theory of test data selection , 1975, IEEE Transactions on Software Engineering.

[18]  B. H. Liskov,et al.  Specification techniques for data abstractions , 1975, IEEE Transactions on Software Engineering.

[19]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[20]  Stephen N. Zilles,et al.  Specification techniques for data abstractions , 1975 .