https://doi.org/10.71352/ac.37.355
Improving quality of software analyser and transformer tools using specification based testing
Abstract.
Reengineering tools, such as code analysers and transformers can give useful assistance during the software development process. On
the other hand, the quality of these tools is crucial: improper analysis might deceive the programmer, and imprecise transformations
might mess up the source code.
Testing is the most commonly applied method for improving software quality. Nevertheless, in the case of analyser and transformer tools
every sort of testing methods gets laborious and problematic due to the fact that both the inputs and the results of such tools are
complete programs or parts of programs.
This paper introduces a specification based testing method for RefactorErl, an analyser and transformer tool for Erlang. RefactorErl,
like other reengineering tools, has an abstract internal representation of the source code that models the syntactic and semantic structure
of the analysed program. In the presented testing method the formal specification of the model is transformed into properties describing
the consistency of the built internal representation. This enables a less difficult way of testing in a high abstraction level.
In order to improve the efficiency of the method, the applied test database contains automatically generated programs as well as manually
written cases.
The presented method can be easily adopted to other reengineering tools using high level internal representation.
