Using Dynamic Analysis Of Java Bytecode For Evolutionary Object-Oriented Unit Testing - Ribeiro, José Carlos Bregieiro; Vega, Francisco Fernández de; Zenha-Rela, Mário (Anais do Workshop de Testes e Tolerância a Falhas (WTF), 2007)
The focus of this paper is on presenting a methodology for generating and optimizing test data by employing evolutionary search techniques, with basis on the information provided by the analysis and interpretation of Java bytecode and on the dynamic execution of the instrumented test object. The main reason to work at the bytecode level is that even when the source code is unavailable, structural testing requirements can still be derived and used to assess the quality of a given test set and to guide the evolutionary search towards reaching specific test goals. Java bytecode retains enough high-level information about the original source code for an underlying model for program representation to be built. The observations required to select or generate test data are obtained by employing dynamic analysis techniques – i.e. by instrumenting, tracing and analysing Java bytecode.