|
ABSTRACT
We consider the problem if a given program satisfies a specified safety property. Interesting programs have infinite state spaces, with inputs ranging over infinite domains, and for these programs the property checking problem is undecidable. Two broad approaches to property checking are testing and verification. Testing tries to find inputs and executions which demonstrate violations of the property. Verification tries to construct a formal proof which shows that all executions of the program satisfy the property. Testing works best when errors are easy to find, but it is often difficult to achieve sufficient coverage for correct programs. On the other hand, verification methods are most successful when proofs are easy to find, but they are often inefficient at discovering errors. We propose a new algorithm, Synergy, which combines testing and verification. Synergy unifies several ideas from the literature, including counterexample-guided model checking, directed testing, and partition refinement.This paper presents a description of the Synergy algorithm, its theoretical properties, a comparison with related algorithms, and a prototype implementation called Yogi.
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
|
F#:http://research.microsoft.com/fsharp/fsharp.aspx
|
| |
2
|
T. Ball, S. Lahiri, M. Musuvathi. zap: Automated theorem proving for software analysis. Tech. Rep. MSR-TR-2005-137, Microsoft Research, 2005.
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
 |
8
|
|
| |
9
|
J. Edvardsson. A survey on automatic test data generation. In Computer Science and Engineering in Linköping, pp. 21--28. ECSEL, 1999.
|
| |
10
|
D. Engler, B. Chelf, A. Chou, S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Operating System Design and Implementation, pp. 1--16. Usenix, 2000.
|
 |
11
|
|
| |
12
|
P. Godefroid and N. Klarlund. Software model checking: Searching for computations in the abstract or the concrete. In Integrated Formal Methods, LNCS 3771, pp. 20--32. Springer, 2005.
|
 |
13
|
|
| |
14
|
B.S. Gulavani and S.K. Rajamani. Counterexample- driven refinement for abstract interpretation. In Tools and Algorithms for the Construction and Analysis of Systems, LNCS 3920, pp. 474--488. Springer, 2006.
|
| |
15
|
|
 |
16
|
Thomas A. Henzinger , Ranjit Jhala , Rupak Majumdar , Kenneth L. McMillan, Abstractions from proofs, Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.232-244, January 14-16, 2004, Venice, Italy
|
 |
17
|
Thomas A. Henzinger , Ranjit Jhala , Rupak Majumdar , Grégoire Sutre, Lazy abstraction, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.58-70, January 16-18, 2002, Portland, Oregon
|
 |
18
|
|
| |
19
|
R. Jhala and K.L. McMillan. A practical and complete approach to predicate refinement. In Tools and Algorithms for the Construction and Analysis of Systems, LNCS 3920, pp. 459--473. Springer, 2006.
|
| |
20
|
|
| |
21
|
D. Kröning, A. Groce, E.M. Clarke. Counterexample- guided abstraction refinement via program execution. In Formal Engineering Methods (ICFEM), LNCS 3308, pp. 224--238. Springer, 2004.
|
| |
22
|
|
 |
23
|
|
| |
24
|
|
| |
25
|
R. Milner. An algebraic definition of simulation between programs. In Artificial Intelligence (IJCAI), pp. 481--489. British Computer Society, 1971.
|
| |
26
|
|
| |
27
|
C.S. Pasareanu, R. Pelánek, W. Visser. Concrete model checking with abstract matching and refinement. In Computer-Aided Verification, LNCS 3576, pp. 52--66. Springer, 2005.
|
| |
28
|
A. Srivastava, A. Edwards, H. Vo. vulcan: Binary transformation in a distributed environment. Tech. Rep. MSR-TR-2001-50, Microsoft Research, 2001.
|
 |
29
|
Greta Yorsh , Thomas Ball , Mooly Sagiv, Testing, abstraction, theorem proving: better together!, Proceedings of the 2006 international symposium on Software testing and analysis, July 17-20, 2006, Portland, Maine, USA
[doi> 10.1145/1146238.1146255]
|
CITED BY 8
|
|
Gary Wassermann , Dachuan Yu , Ajay Chander , Dinakar Dhurjati , Hiroshi Inamura , Zhendong Su, Dynamic test input generation for web applications, Proceedings of the 2008 international symposium on Software testing and analysis, July 20-24, 2008, Seattle, WA, USA
|
|
|
Nels E. Beckman , Aditya V. Nori , Sriram K. Rajamani , Robert J. Simmons, Proofs from tests, Proceedings of the 2008 international symposium on Software testing and analysis, July 20-24, 2008, Seattle, WA, USA
|
|
|
|
|
|
Corina S. Pǎsǎreanu , Peter C. Mehlitz , David H. Bushnell , Karen Gundy-Burlet , Michael Lowry , Suzette Person , Mark Pape, Combining unit-level symbolic execution and system-level concrete execution for testing nasa software, Proceedings of the 2008 international symposium on Software testing and analysis, July 20-24, 2008, Seattle, WA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|