Title :
Constraint-Based Test Input Generation for Java Bytecode
Author :
Charreteur, Florence ; Gotlieb, Arnaud
Author_Institution :
Univ. de Rennes 1, Rennes, France
Abstract :
In this paper, we introduce a constraint-based reasoning approach to automatically generate test input for Java bytecode programs. Our goal-oriented method aims at building an input state of the Java Virtual Machine (JVM) that can drive program execution towards a given location within the bytecode. An innovative aspect of the method is the definition of a constraint model for each bytecode that allows backward exploration of the bytecode program, and permits to solve complex constraints over the memory shape (e.g., p == p.next enforces the creation of a cyclic data structure referenced by p). We implemented this constraint-based approach in a prototype tool called JAUT, that can generate input states for programs written in a subset of JVM including integers and references, dynamic-allocated structures, objects inheritance and polymorphism by virtual method call, conditional and backward jumps. Experimental results show that JAUT can generate test input for executing locations not reached by other state-of-the-art code-based test input generators such as jCUTE, JTEST and Pex.
Keywords :
Java; constraint handling; inference mechanisms; object-oriented methods; program compilers; program testing; virtual machines; JAUT; Java bytecode program; Java virtual machine; constraint based reasoning approach; goal oriented method; memory shape; prototype tool; test input generation; Data structures; Generators; Java; Labeling; Memory management; Registers; Testing;
Conference_Titel :
Software Reliability Engineering (ISSRE), 2010 IEEE 21st International Symposium on
Conference_Location :
San Jose, CA
Print_ISBN :
978-1-4244-9056-1
Electronic_ISBN :
1071-9458
DOI :
10.1109/ISSRE.2010.26