Constraint-Based Test Input Generation for Java Bytecode
Constraint-Based Test Input Generation for Java Bytecode
复制标题
Java 字节码基于约束的测试输入生成
DOI:
10.1109/issre.2010.26
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
A. Gotlieb
中科院分区:
文献类型:
--
作者:
Florence Charreteur;A. Gotlieb
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.