Information Technology Reference
In-Depth Information
For the purposes of inferring models however, visualisations are not enough.
They only produce bitmaps, as opposed to sequences of symbols that can be
used for state machine executions. Visualisations are left to the developer to
interpret, and although two phases may look visually identical, they can hide
significant differences.
Solving this problem is the focus of ongoing work within the ProTest project.
The authors are investigating the application of string compression algorithms
such as the LZW algorithm [30] and the SEQUITUR algorithm [31,32]. These
can automatically identify and label repeated patterns of method invocations,
to pull out sequences of high-level functions from a trace, without requiring the
expensive and tedious intervention of identifying these functions by hand.
6 Conclusions
This paper has presented the challenge of inferring testable models, with a spe-
cific focus on testing Erlang systems. The basic reverse-engineering challenge is
to find a set of program executions that suciently exercise a program to ensure
that the reverse-engineered model is accurate. This problem has traditionally
been overlooked; developers have supplied sets of traces that are effectively ar-
bitrary; without extensive prior knowledge about the program, it is virtually
impossible to collect an adequate set of traces [4].
As part of the ProTest project, the authors have devised a technique [3] that,
instead of relying on the manualy supply of traces, automates the trace collection
process. It requires a template specification that contains the necessary input
values for the functions, but does not need to know the order in which they can
be executed. Once this is supplied, it combines a model-based test generation
tool [5] with a state machine inference framework [12,17] to automatically collect
the traces and home-in on a more accurate specification. Its feasibility has been
demonstrated with respect to a TCP implementation [22].
One of the main aims of this paper was to present the main remaining chal-
lenges in this area, of which there are several. Current reverse-engineering tech-
niques only have crude approaches to dealing with data-constraints in the model.
They also make the big assumption that it is trivial to abstract a program ex-
ecution trace to a corresponding abstract sequence of symbols. This paper has
presented potential avenues of research in these areas, some of which are already
being pursued in the context of the ProTest project.
References
1. Derrick, J., Walkinshaw, N.: Property-based testing: The protest project. In:
FMCO (2009)
2. Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic
Bookshelf (July 2007)
3. Walkinshaw, N., Derrick, J., Guo, Q.: Iterative refinement of reverse-engineered
models by model-based testing. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009.
LNCS, vol. 5850, pp. 305-320. Springer, Heidelberg (2009)
Search WWH ::




Custom Search