Abstract. We present and evaluate an automatic tool for extracting algebraic specifications from Java classes. Our tool maps a Java class to an algebraic signature and then uses the signature to generate a large number of terms. The tool evaluates these terms and based on the results of the evaluation, it proposes equations. Finally, the tool generalizes equations to axioms and eliminates many redundant axioms. Since our tool uses dynamic information, it is not guaranteed to be sound or complete. However, we manually inspected the axioms generated in our experiments and found them all to be correct. 1
|
952
|
An Axiomatic Basis for Computer Programming
– Hoare
- 1969
|
|
418
|
Algorithmic Program Debugging
– Shapiro
- 1983
|
|
325
|
Dynamically discovering likely program invariants to support program evolution
– Ernst, Cockrell, et al.
- 1999
|
|
310
|
Parametric shape analysis via 3-valued logic
– Sagiv, Reps, et al.
|
|
275
|
Larch: Languages and Tools for Formal Specification
– Guttag, Horning
- 1993
|
|
250
|
Foundations for Programming Languages
– Mitchell
- 1996
|
|
149
|
Tracking down software bugs using automatic anomaly detection
– Hangal, Lam
- 2002
|
|
149
|
Software unit test coverage and adequacy
– Zhu, Hall, et al.
- 1997
|
|
134
|
Korat: Automated testing based on Java predicates
– Boyapati, Khurshid, et al.
- 2002
|
|
124
|
Inference of reversible languages
– Angluin
- 1982
|
|
123
|
Mining specifications
– Ammons, Bodík, et al.
|
|
113
|
Contracts: Specifying behavioral compositions in object-oriented systems
– Helm, Holland, et al.
- 1990
|
|
110
|
The astoot approach to testing object-oriented programs.ACM Transactions on Software Engineering and Methodology
– Doong, Frankl
- 1994
|
|
89
|
The algebraic specification of abstract data types
– Guttag, Horning
- 1978
|
|
89
|
Lackwit: A Program Understanding Tool Based on Type Inference
– O’Callahan, Jackson
- 1997
|
|
84
|
Quickly detecting relevant program invariants
– Ernst, Czeisler, et al.
- 2000
|
|
57
|
Automatic extraction of object-oriented component interfaces
– Whaley, Martin, et al.
- 2002
|
|
56
|
An Empirical Study of Regression Test Selection Techniques
– Graves, Harrold, et al.
- 1998
|
|
56
|
A Methodology for LISP Program Construction from Examples
– Summers
- 1977
|
|
55
|
Essential concepts of algebraic specification and program development
– Sannella, Tarlecki
- 1997
|
|
51
|
Constructing programs from example computations
– Biermann, Krishnaswamy
- 1976
|
|
47
|
Data Abstraction Implementation, Specification, and Testing
– Gannon, McMullin, et al.
- 1981
|
|
43
|
Automated support for program refactoring using invariants
– Kataoka, Ernst, et al.
- 2001
|
|
36
|
Automatically checking an implementation against its formal specification
– Antoy, Hamlet
|
|
34
|
editors. Algebraic Foundations of Systems Specification. IFIP State-of-the-Art reports
– Astesiano, Kreowsky, et al.
- 1999
|
|
34
|
Automatic Generation of Program Specification
– Nimmer, Ernst
- 2002
|
|
28
|
Using assertions about traces to write abstract specifications for software modules
– Bartussek, Parnas
- 1978
|
|
25
|
black and white: an integrated approach to class-level testing of objectoriented programs
– In
- 1998
|
|
21
|
Selecting predicates for implications in program analysis
– Dodoo, Donovan, et al.
- 2002
|
|
16
|
The inference of regular LISP programs from examples
– Biermann
- 1978
|
|
14
|
Automated testing of classes
– Buy, Orso, et al.
- 2000
|
|
14
|
Daistish: Systematic Algebraic Testing for OO Programs
– Hughes, Stotts
- 1996
|
|
12
|
Weyuker: A simplified domain-testing strategy
– Jeng, J
- 1994
|
|
11
|
On the Inference of Turing Machines from Sample Computations
– Biermann
- 1972
|
|
11
|
Errors in algebraic specifications and an experimental mutation testing tool
– Woodward
- 1993
|
|
9
|
Foundations of the trace assertion method of module interface specification
– Janicki, Sekerinski
- 1997
|
|
8
|
Algebraic Specifications in Software Engineering – an introduction
– Horebeek, Lewi
- 1989
|
|
8
|
Run-time consistency checking of algebraic specifications
– Sankar
- 1991
|
|
6
|
Dynamically discovering program invariants involving collections
– Ernst, Griswold, et al.
- 2000
|
|
5
|
The science of programming. Texts and monographs in computer science
– Gries
- 1981
|
|
5
|
Model-driven reverse engineering
– Rugaber, Shikano, et al.
- 2001
|
|
3
|
Systematic design of algebraic specifications
– Antoy
- 1989
|
|
3
|
Synthesis of Lisp functions from examples
– Hardy
- 1975
|
|
3
|
Interclass testing of object oriented software
– Martena, Orso, et al.
- 2002
|
|
1
|
Specification coverage as a measure of test suite quality. Septermber 25
– Harder, Morse, et al.
- 2001
|
|
1
|
Procedural implementation of algebraic specification
– Lin
- 1993
|