Runtime Exception Detection in Java Programs Using Symbolic Execution
Author(s) -
István Kádár,
Péter Hegedűs,
Rudolf Ferenć
Publication year - 2014
Publication title -
acta cybernetica
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.143
H-Index - 18
eISSN - 2676-993X
pISSN - 0324-721X
DOI - 10.14232/actacyb.21.3.2014.4
Subject(s) - computer science , symbolic execution , concolic testing , java , programming language , pathfinder , software , operating system , library science
Most of the runtime failures of a software system can be revealed during test execution only, which has a very high cost. In Java programs, runtime failures are manifested as unhandled runtime exceptions. In this paper we present an approach and tool for detecting runtime exceptions in Java programs without having to execute tests on the software. We use the symbolic execution technique to implement the approach. By executing the methods of the program symbolically we can determine those execution branches that throw exceptions. Our algorithm 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.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom