Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
JCrasher: an automatic robustness tester for Java
Csallner C., Smaragdakis Y. Software--Practice & Experience34 (11):1025-1050,2004.Type:Article
Date Reviewed: Apr 14 2005

The original Java white paper cites robustness as a key design goal of the language [1]. Java attempts to make quality assurance easier by identifying programming errors at both compile time and run time, and by adopting a policy of type safety. The Java compilers address the conformity of a program to language rules, but what about user inputs to a program that has survived compilation? Robustness testers, such as JCrasher, test public methods against random data, to determine if they throw an undeclared runtime exception.

This paper begins by briefly discussing testing protocols, and by advocating for a random testing paradigm, which JCrasher implements. It explains the inner workings of JCrasher, and provides empirical assessments of its quality. One distinguishing feature of JCrasher is that it can determine whether an exception results from an error in the program, or from user inputs that violate preconditions of the code. The paper explains how JCrasher generates test cases, and how it resets the Java Virtual Machine (JVM) so that a failure occurs in a state unaffected by prior failures. Although JCrasher can be used independently, it can be integrated into JUnit, a popular regression testing framework.

A valuable adjunct to the paper is a Web site that provides downloads of the software, and other useful information that supplements the paper (http://www.cc.gatech.edu/~csallnch/jcrasher/).

The paper will be of interest to software engineers and researchers who develop complex Java applications that must run reliably under a wide range of inputs.

Reviewer:  Marlin Thomas Review #: CR131123 (0510-1134)
1) Gosling, J. Java: an overview. Sun Microsystems, Santa Clara, CA, 1995.
Bookmark and Share
  Featured Reviewer  
 
Debuggers (D.3.4 ... )
 
 
Classes And Objects (D.3.3 ... )
 
 
Java (D.3.2 ... )
 
 
Language Classifications (D.3.2 )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Debuggers": Date
Unified control flow and data dependence traces
Tallam S., Gupta R. ACM Transactions on Architecture and Code Optimization 4(3): 19-es, 2007. Type: Article
Mar 4 2008
 How programmers debug, revisited: an information foraging theory perspective
Lawrance J., Bogart C., Burnett M., Bellamy R., Rector K., Fleming S. IEEE Transactions on Software Engineering 39(2): 197-215, 2013. Type: Article
Sep 10 2013

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy