Runtime Exception Detection in Java Programs Using Symbolic Execution

István Kádár, Péter Hegedűs, Rudolf Ferenc
2014 Acta Cybernetica  
A bstract. Most of the runtime failures of a software system can be re vealed during test execution only, which has a very high cost. In Javaprograms, runtime failures are manifested as unhandled runtime excep tions. In this paper we present an approach and tool for detecting runtime exceptions in Java programs without having to execute tests on the soft ware. We use the symbolic execution technique to implement the ap proach. By executing the methods of the program symbolically we can
more » ... those execution branches that throw exceptions. Our algo rithm is able to generate concrete test inputs also that cause the program to fail in runtime. We used the Symbolic PathFinder extension of the Java PathFinder as the symbolic execution engine. Besides small example codes we evaluated our algorithm on three open source systems: jEdit, ArgoUML, and log4j. We found multiple errors in the log4j system that were also reported as real bugs in its bug tracking system.,
doi:10.14232/actacyb.21.3.2014.4 fatcat:ucgb5q5wt5byxmu5rtjjqacucm