ACM Home Page
Please provide us with feedback. Feedback
Check 'n' crash: combining static checking and testing
Full text PdfPdf (175 KB)
Source International Conference on Software Engineering archive
Proceedings of the 27th international conference on Software engineering table of contents
St. Louis, MO, USA
SESSION: Static and dynamic analysis table of contents
Pages: 422 - 431  
Year of Publication: 2005
ISBN:1-59593-963-2
Authors
Christoph Csallner  Georgia Institute of Technology, Atlanta, GA
Yannis Smaragdakis  Georgia Institute of Technology, Atlanta, GA
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): n/a,   Downloads (12 Months): n/a,   Citation Count: 27
Additional Information:

abstract   references   cited by   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/1062455.1062533
What is a DOI?

ABSTRACT

We present an automatic error-detection approach that combines static checking and concrete test-case generation. Our approach consists of taking the abstract error conditions inferred using theorem proving techniques by a static checker (ESC/Java), deriving specific error conditions using a constraint solver, and producing concrete test cases (with the JCrasher tool) that are executed to determine whether an error truly exists. The combined technique has advantages over both static checking and automatic testing individually. Compared to ESC/Java, we eliminate spurious warnings and improve the ease-of-comprehension of error reports through the production of Java counterexamples. Compared to JCrasher, we eliminate the blind search of the input space, thus reducing the testing time and increasing the test quality.


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
K. Beck and E. Gamma. Test infected: Programmers love writing tests. Java Report, 3(7):37--50, July 1998.
 
2
3
 
4
D. R. Cok and J. R. Kiniry. ESC/Java2: Uniting ESC/Java and JML: Progress and issues in building and using ESC/Java2. Technical Report NIII-R0413, Nijmegen Institute for Computing and Information Science, May 2004.
 
5
 
6
D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: A theorem prover for program checking. Technical Report HPL-2003-148, Hewlett-Packard Systems Research Center, July 2003.
7
 
8
9
10
 
11
M. Hapner, R. Burridge, R. Sharma, and J. Fialli. Java message service: Version 1.1. Sun Microsystems, Inc., Apr. 2002.
 
12
13
14
 
15
T. Kremenek and D. Engler. Z-ranking: Using statistical analysis to counter the impact of static analysis approximations. In R. Cousot, editor, Static Analysis: 10th Annual International Static Analysis Symposium, pages 295--315. Springer, June 2003.
 
16
D. Kroening, A. Groce, and E. M. Clarke. Counterexample guided abstraction refinement via program execution. In J. Davies, W. Schulte, and M. Barnett, editors, Formal Methods and Software Engineering: 6th International Conference on Formal Engineering Methods, pages 224--238. Springer, Nov. 2004.
 
17
G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Technical Report TR98-06y, Department of Computer Science, Iowa State University, June 1998.
 
18
K. R. M. Leino. Efficient weakest preconditions. Technical Report MSR-TR-2004-34, Microsoft Research, Apr. 2004.
 
19
K. R. M. Leino, G. Nelson, and J. B. Saxe. ESC/Java user's manual. Technical Report 2000-002, Compaq Computer Corporation Systems Research Center, Oct. 2000.
 
20
M. Musuvathi and D. Engler. Some lessons from using static analysis and software model checking for bug finding. In B. Cook, S. Stoller, and W. Visser, editors, SoftMC 2003: Workshop on Software Model Checking. Elsevier, July 2003.
 
21
 
22
H. Schlenker and G. Ringwelski. POOC: A platform for object-oriented constraint programming. In B. O'Sullivan, editor, Recent Advances in Constraints: Joint ERCIM/CologNet International Workshop on Constraint Solving and Constraint Logic Programming, pages 159--170. Springer, June 2002.
23
 
24
 
25
M. Vaziri and D. Jackson. Checking properties of heap-manipulating procedures with a constraint solver. In H. Garavel and J. Hatcliff, editors, Tools and Algorithms for the Construction and Analysis of Systems: 9th International Conference, pages 505--520. Springer, Apr. 2003.
 
26
T. Xie and D. Notkin. Tool-assisted unit test selection based on operational violations. In Proceedings of the 18th Annual International Conference on Automated Software Engineering (ASE 2003), pages 40--48. IEEE Computer Society Press, Oct. 2003.
 
27
Y. Xie and D. Engler. Using redundancies to find errors. IEEE Transactions on Software Engineering, 29(10):915--928, Oct. 2003.

CITED BY  27

Collaborative Colleagues:
Christoph Csallner: colleagues
Yannis Smaragdakis: colleagues