Name: | Description: | Size: | Format: | |
---|---|---|---|---|
1.77 MB | Adobe PDF |
Advisor(s)
Abstract(s)
Evolutionary Testing is an emerging methodology for automatically generating
high quality test data. The focus of this work is on presenting a searchbased
approach for the the unit-testing of third-party object-oriented Java
software.
Test cases are represented and evolved using the Strongly Typed Genetic
Programming paradigm, which effectively mimics the inheritance and polymorphic
properties of object-oriented programs and enables the maintenance
of call dependences when applying tree construction, mutation or crossover.
Our strategy for evaluating the quality of test cases includes instrumenting
the test object for basic block analysis and structural event dispatch,
and executing the instrumented test object using the generated test cases as
“inputs” – in order to collect trace information and derive coverage metrics.
Static analysis, instrumentation and execution tracing is performed solely
with basis on the high-level information extracted from the Java Bytecode of
the test object. Given that the test object’s source code is often unavailable,
working at the Bytecode level allows broadening the scope of applicability of
our approach; it can be used, for instance, to perform structural testing on
third-party Java components.
Test objects are represented internally by weighted control-flow graphs;
strategies are introduced for favouring test cases that exercise problematic
structures and difficult control-flow paths, which involve dynamic weight
reevaluation. The aim is that of efficiently guiding the search process towards
achieving full structural coverage – which often involves promoting
the definition of complex and intricate test cases that define elaborate state
scenarios.
The work performed so far allowed us to develop the prototype of a test
case generation tool, called eCrash. Experiments have been carried and quality
solutions have been found, proving the pertinence of our methodology and
encouraging further studies.
Description
Dissertação apresentada à Universidad de Extremadura para obtenção do Diploma de Estudios Avanzados, orientada por Francisco Fernandéz de Vega.
Keywords
Evolutionary testing Strongly typed genetic programming