ACM Home Page
Please provide us with feedback. Feedback
Perracotta: mining temporal API rules from imperfect traces
Full text PdfPdf (174 KB)
Source International Conference on Software Engineering archive
Proceedings of the 28th international conference on Software engineering table of contents
Shanghai, China
SESSION: Research papers: test & analysis IV table of contents
Pages: 282 - 291  
Year of Publication: 2006
ISBN:1-59593-375-1
Authors
Jinlin Yang  University of Virginia
David Evans  University of Virginia
Deepali Bhardwaj  Microsoft Corporation
Thirumalesh Bhat  Microsoft Corporation
Manuvir Das  Microsoft Corporation
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 97,   Citation Count: 32
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

Dynamic inference techniques have been demonstrated to provide useful support for various software engineering tasks including bug finding, test suite evaluation and improvement, and specification generation. To date, however, dynamic inference has only been used effectively on small programs under controlled conditions. In this paper, we identify reasons why scaling dynamic inference techniques has proven difficult, and introduce solutions that enable a dynamic inference technique to scale to large programs and work effectively with the imperfect traces typically available in industrial scenarios. We describe our approximate inference algorithm, present and evaluate heuristics for winnowing the large number of inferred properties to a manageable set of interesting properties, and report on experiments using inferred properties. We evaluate our techniques on JBoss and the Windows kernel. Our tool is able to infer many of the properties checked by the Static Driver Verifier and leads us to discover a previously unknown bug in Windows.


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
Joint CAV/ISSTA Special Event on Specification, Verification, and Testing of Concurrent Software. Jul. 2004.
 
2
T. Andrews, S. Qadeer, J. Rehof, S. K. Rajamani, and Y. Xie. Zing: exploiting program structure for model checking concurrent software. International Conference on Concurrency Theory, Aug./Sep. 2004.
3
4
 
5
 
6
 
7
J. Bowen, P. Breuer, and K. Lano. Formal specifications in software maintenance: from code to Z++ and back again. Information and Software Technology. Nov./Dec. 1993.
 
8
P. T. Breuer and K. Lano. Creating specifications from code: reverse-engineering techniques. Journal of Software Maintenance: Research and Practice. Vol 3. 1991.
 
9
10
 
11
 
12
J. C. Corbett, M. B. Dwyer, J. Hatcliff, and Robby. Expressing checkable properties of dynamic systems: the Bandera specification language. International Journal on Software Tools for Technology Transfer 4(1): 34--56. 2002.
13
14
15
16
 
17
18
 
19
20
 
21
E. Gold. Language identification in the limit. Information and Control, 10, 447--474, 1967.
 
22
E. Gold. Complexity of automatic identification from given data. Information and Control, 37, 302--320, 1978.
23
 
24
N. Gupta. Generating test data for dynamically discovering likely program invariants. Workshop on Dynamic Analysis, May 2003.
 
25
S. Hagnal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. ICSE, May 2002.
 
26
 
27
28
 
29
Java Transaction API specification. http://java.sun.com/products/jta/
 
30
J2EE. http://java.sun.com/j2ee/index.jsp
 
31
JBoss. http://www.jboss.org
 
32
JRat. http://jrat.sourceforge.net/
 
33
J. R. Larus, T. Ball, M. Das, R. DeLine, M. Fahndrich, J. Pincus, S. K. Rajamani, and R. Venkatapathy. Righting Software. IEEE Software, May/Jun. 2004.
34
35
36
37
 
38
A. Pnueli. The temporal logic of programs. Annual Symposium on Foundations of Computer Science, Oct./Nov. 1977.
 
39
B. Pytlik, M. Renieris, S. Krishnamurthi, and S. P. Reiss. Automated fault localization using potential invariants. International Symposium on Automated and Analysis-Driven Debugging. Sep. 2003.
 
40
41
 
42
Static Driver Verifier: Finding bugs in device drivers at compile-time. WinHEC, Apr. 2004.
 
43
C. Simonyi. Hungarian notation. MSDN library.
44
 
45
A. Edwards, A. Srivastava, and H. Vo. Vulcan: binary transformation in a distributed environment. Research Technical Report, MSR-TR-2001-50, Apr. 2001.
 
46
 
47
 
48
W. Weimer and G. Necula. Mining temporal specifications for error detection. International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Apr. 2005.
49
 
50
51
 
52

CITED BY  32

Collaborative Colleagues:
Jinlin Yang: colleagues
David Evans: colleague listing is not available.
Deepali Bhardwaj: colleagues
Thirumalesh Bhat: colleagues
Manuvir Das: colleagues