Analysis of Static and Dynamic Test-to-code Traceability
Tamás Gergely, Gergő Balogh, Ferenc Horváth, Béla Vancsics,
Árpád Beszédes and Tibor Gyimóthy
Unit test development has some widely accepted
guidelines. Two of them concern the test and code relationship,
namely isolation (unit tests should examine only a single unit)
and separation (they should be placed next to this unit). These
guidelines are not always kept by the developers. They can however
be checked by investigating the relationship between tests and the
source code, which is described by test-to-code traceability
links. Still, these links perhaps cannot be inferred unambiguously
from the test and production code.
We developed a method that is based on the computation of
traceability links for different aspects and report Structural
Unit Test Smells where the traceability links for the different
aspects do not match. The two aspects are the static structure of
the code that reflects the intentions of the developers and
testers and the dynamic coverage which reveals the actual behavior
of the code during test execution.
In this study, we investigated this method on real programs. We
manually checked the reported Structural Unit Test Smells to find
out whether they are real violations of the unit testing rules.
Furthermore, the smells were analyzed to determine their root
causes and possible ways of correction.
traceability, unit testing, code coverage, test smells,