| Dynamic inference of likely data preconditions over predicates by tree learning |
| Full text |
Pdf
(458 KB)
|
Source
|
International Symposium on Software Testing and Analysis
archive
Proceedings of the 2008 international symposium on Software testing and analysis
table of contents
Seattle, WA, USA
SESSION: Inference
table of contents
Pages 295-306
Year of Publication: 2008
ISBN:978-1-60558-050-0
|
|
Authors
|
|
Sriram Sankaranarayanan
|
NEC Laboratories America, Princeton, NJ, USA
|
|
Swarat Chaudhuri
|
Pennsylvania State University, University Park, PA, USA
|
|
Franjo Ivančić
|
NEC Labs America, Princeton, NJ, USA
|
|
Aarti Gupta
|
NEC Labs America, Princeton, NJ, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 3, Downloads (12 Months): 86, Citation Count: 0
|
|
|
ABSTRACT
We present a technique to infer likely data preconditions forprocedures written in an imperative programming language. Given a procedure and a set of predicates over its inputs, our technique enumerates different truth assignments to the predicates, deriving test cases from each feasible truth assignment. The predicates themselves are derived automatically using simple heuristics. The enumeration of truth assignments is performed using a propositional SAT solver along with a theory satisfiability checker capable of generating unsatisfiable cores. For each assignment of truth values, a corresponding set of test cases are generated and executed. Based on the result of the execution, the truth assignment is classified as being safe or buggy. Finally, a decision tree classifier is used to generate a Boolean formula over the input predicates that explains the data obtained from the test cases. The resulting Boolean formula is, in effect, a likely data precondition for the procedure under consideration. We apply our techniques on a wide variety of functions from the standard C library. Our experiments show that the proposed technique is quite robust. For most cases, it successfully learns a precondition that captures a safe and permissive calling environment.
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
|
Rajeev Alur , Pavol Černý , P. Madhusudan , Wonhong Nam, Synthesis of interface specifications for Java classes, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.98-109, January 12-14, 2005, Long Beach, California, USA
|
 |
3
|
|
| |
4
|
Ball, T. A theory of predicate-complete test coverage. In FMCO (2004), pp. 1--22.
|
 |
5
|
|
| |
6
|
|
| |
7
|
Cadar, C., and Engler, D. R. Execution Generated Test Cases: How to make systems code crash itself. In SPIN (2005), vol. 3639 of LNCS, Springer-Verlag, pp. 2--23.
|
 |
8
|
|
 |
9
|
|
 |
10
|
Dawson Engler , David Yu Chen , Seth Hallem , Andy Chou , Benjamin Chelf, Bugs as deviant behavior: a general approach to inferring errors in systems code, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
| |
11
|
|
 |
12
|
|
| |
13
|
Gogate, V., and Dechter, R. A new algorithm for sampling csp solution uniformly at random. In CP'07 (2007).
|
 |
14
|
|
| |
15
|
Ivančić, F., Yang, Z., Ganai, M. K., Gupta, A., and Ashar, P. F-Soft: Software verification platform. In Computer-Aided Verification (CAV 2005) (2005), vol. 3576 of LNCS, Springer-Verlag, pp. 301--306.
|
 |
16
|
|
| |
17
|
|
| |
18
|
Ted Kremenek , Paul Twohey , Godmar Back , Andrew Ng , Dawson Engler, From uncertainty to belief: inferring the specification within, Proceedings of the 7th symposium on Operating systems design and implementation, November 06-08, 2006, Seattle, Washington
|
| |
19
|
|
| |
20
|
|
| |
21
|
|
 |
22
|
Matthew W. Moskewicz , Conor F. Madigan , Ying Zhao , Lintao Zhang , Sharad Malik, Chaff: engineering an efficient SAT solver, Proceedings of the 38th conference on Design automation, p.530-535, June 2001, Las Vegas, Nevada, United States
[doi> 10.1145/378239.379017]
|
| |
23
|
Moy, Y. Sufficient preconditions for modular assertion checking. In VMCAI'08 (2008), LNCS, Springer-Verlag.
|
 |
24
|
|
| |
25
|
|
| |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
Selman, B., Kautz, H., and Cohen, B. Local search strategies for satisfiability testing. DIMACS series on Discrete Mathematics and Theoretical Computer Science 26 (1996).
|
 |
30
|
|
 |
31
|
|
| |
32
|
Wei, W., Erenrich, J., and Selman, B. Towards efficient sampling: Exploiting random walk strategies. In AAAI'04 (2004).
|
 |
33
|
|
| |
34
|
Yang, J., and Evans, D. Automatically discovering temporal properties for program verification, 2005. TR, Department of Computer Science, University of Virginia.
|
|