Download:
by Reiner Hähnle, Angela Wallenburg
Post Conference Proceedings, FATES 2003, volume 2931 of LNCS
http://www.math.chalmers.se/~reiner/papers/fates.pdf
Add To MetaCart
Abstract:
Abstract. Most efforts to combine formal methods and software testing go in the direction of exploiting formal methods to solve testing problems, most commonly test case generation. Here we take the reverse viewpoint and show how the technique of partition testing can be used to improve a formal proof technique (induction for correctness of loops). We first compute a partition of the domain of the induction variable, based on the branch predicates in the program code of the loop we wish to prove. Based on this partition we derive a partitioned induction rule, which is (hopefully) easier to use than the standard induction rule. In particular, with an induction rule that is tailored to the program to be verified, less user interaction can be expected to be required in the proof. We demonstrate with a number of examples the practical efficiency of our method. 1
Citations
|
627
|
Dynamic Logic
– Harel
- 1984
|
|
157
|
Toward a Theory of Test Data Selection
– Goodenough, Gerhart
- 1975
|
|
124
|
Partition testing does not inspire confidence
– Hamlet, Taylor
- 1990
|
|
87
|
Reliability of the path analysis testing strategy
– Howden
- 1976
|
|
63
|
Theories of program testing and the application of revealing subdomains
– Weyuker, Ostrand
- 1980
|
|
58
|
A dynamic logic for the formal verification of Java Card programs
– Beckert
- 2001
|
|
43
|
Automatic generation of program specifications
– Nimmer, Ernst
- 2002
|
|
31
|
Program proving as hand simulation with a little induction
– Burstall
- 1974
|
|
28
|
Partition analysis: A method combining testing and verification
– Richardson, Clarke
- 1985
|
|
22
|
The KeY system: Integrating object-oriented design and formal methods
– Ahrendt, Baar, et al.
- 2002
|
|
19
|
Derivation and use of induction schemes in higher-order logic
– Slind
- 1997
|
|
10
|
Test data as an aid in proving program correctness
– Geller
- 1978
|
|
7
|
Program verification by symbolic execution and induction
– Heisel, Reif, et al.
- 1987
|
|
6
|
An interactive verification system based on dynamic logic
– Hahnle, Heisel, et al.
- 1986
|
|
3
|
Verification of hardware systems with first-order logic
– Claessen, Hähnle, et al.
- 2002
|
|
2
|
T.J.: Theories of Program Testing and the Application of Revealing Subdomains
– Weyuker, Ostrand
- 1980
|