ACM Home Page
Please provide us with feedback. Feedback
Dynamic inference of likely data preconditions over predicates by tree learning
Full text PdfPdf (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
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 86,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1390630.1390666
What is a DOI?

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
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
 
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
 
19
 
20
 
21
22
 
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.

Collaborative Colleagues:
Sriram Sankaranarayanan: colleagues
Swarat Chaudhuri: colleagues
Franjo Ivančić: colleagues
Aarti Gupta: colleagues