|
ABSTRACT
This paper proposes a practical alternative to program verification -- called formal program testing -- with similar, but less ambitious goals. Like a program verifier, a formal testing system takes a program annotated with formal specifications as input, generates the corresponding verification conditions, and passes them through a simplifier. After the simplification step, however, a formal testing system simply evaluates the verification conditions on a representative set of test data instead of trying to prove them. Formal testing provides strong evidence that a program is correct, but does not guarantee it. The strength of the evidence depends on the adequacy of the test data.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
{Boyer and Moore 79} Boyer, R. S., and Moore, J S. A Computational Logic, Academic Press, New York, 1979.
|
| |
3
|
{Brand 76} Brand, D.; "Proving Programs Incorrect," Proceedings Third International Colloquium on Automata, Languages and Programming, Edinburgh U. Press, Edinburgh, 1976, pp. 201-227.
|
 |
4
|
|
 |
5
|
Timothy A. Budd , Richard A. DeMillo , Richard J. Lipton , Frederick G. Sayward, Theoretical and empirical studies on using program mutation to test the functional correctness of programs, Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.220-233, January 28-30, 1980, Las Vegas, Nevada
[doi> 10.1145/567446.567468]
|
| |
6
|
{Cartwright 76a} Cartwright, R. S.; "User-Defined Data Types as an Aid to Verifying LISP Programs," Proceedings Third International Colloquium on Automata, Languages and Programming, Edinburgh U. Press, Edinburgh, 1976, pp. 228-256.
|
| |
7
|
{Cartwright 76b} Cartwright, R. S.; A Practical Formal Semantic Definition and Verification System for TYPED LISP, Stanford Artificial Intelligence Laboratory Memo AIM-296, Stanford University, 1976.
|
 |
8
|
|
| |
9
|
{Earley 73} Earley, J.; "High Level Operations in Automatic Programming," Computer Science Department, Technical Report 22, University of California, Berkeley, 1973.
|
| |
10
|
{Earley 74} Earley, J.; "High Level Iterators and a Method for Automatically Designing Data Structure Representation," Electronics Research Laboratory, Memorandum No. ERL-M425, University of California, Berkeley, 1974.
|
 |
11
|
|
 |
12
|
|
| |
13
|
{Guttag and Horning 78} Guttag, J. V. and J J. Horning; "The Algebraic Specification of Abstract Data Types," Acta Informatica 10, pp. 27-52.
|
| |
14
|
|
| |
15
|
{Hoare 72} Hoare, C. A. R.; "Proofs of Correctness of Data Representation," Acta Informatica 1, 271-281.
|
| |
16
|
{Hoare 75} Hoare, C. A. R. "Recursive Data Structures," International Journal of Comment and Information Sciences 4,2, pp. 105-132.
|
| |
17
|
{Igarashi, London and Luckham 75} Igarashi, S., London; R. L., and Luckham, D. C.; "Automatic Program Verification I: Logical Basis and Its Implementation," Acta Informatica 4, pp. 145-182.
|
| |
18
|
{Kennedy and Schwartz 75} Kennedy, K. and Schwartz, J. T, "An Introduction to the Set Theoretical Language SETL," J. Comptr. and Math. with Applications 1 (1975), pp. 97-119.
|
| |
19
|
{Liskov and Zilles 75} Liskov, B. and S. Zilles; "Specification Techniques for Data Abstractions," IEEE Transactions on Software Engineering, Vol. SE-1, pp. 7-19.
|
| |
20
|
{Liskov and Berzins 80} Liskov, B. and V. Berzins; "An Appraisal of Program Specifications," in Research Directions in Software Technology, P. Wegner (ed.), MIT Press, pp. 276-302.
|
 |
21
|
|
| |
22
|
{McCarthy 63} McCarthy, J.; "A Basis for a Mathematical Theory of Computation," in Computer Programming and Formal Systems, Braffort and Hirschberg, eds., North-Holland, 1963.
|
 |
23
|
|
| |
24
|
{Schwartz 79} Schwartz, J.; Personal communication.
|
 |
25
|
|
CITED BY 3
|
|
|
|
|
Hans-J. Boehm , Robert Cartwright , Mark Riggle , Michael J. O'Donnell, Exact real arithmetic: a case study in higher order programming, Proceedings of the 1986 ACM conference on LISP and functional programming, p.162-173, August 1986, Cambridge, Massachusetts, United States
|
|
|
|
|