Impact Analysis Using Static Execute After in WebKit
Judit Jász, Lajos Schrettner,
Árpád Beszédes, Csaba Osztrogonác and Tibor
Gyimóthy
Insufficient propagation of changes causes the majority of
regression errors in heavily evolving software systems. Impact analysis
of a particular change can help identify those parts of the system that
also need to be investigated and potentially propagate the change. A
static code analysis technique called Static Execute After can be used
to automatically infer such impact sets. The method is safe and
comparable in precision to more detailed analyses. At the same time it
is significantly more efficient, hence we could apply it to different
large industrial systems, including the open source WebKit project. We
overview the benefits of the method, its existing implementations, and
present our experiences in adapting the method to such a complex
project. Finally, using this particular analysis on the WebKit project,
we verify whether applying the method we can actually predict the
required change propagation and hence reduce regression errors. We
report on the properties of the resulting impact sets computed for the
change history, and their relationship to the actual fixes required. We
looked at actual defects provided by the regression test suite along
with their fixes taken from the version control repository, and
compared these fixes to the predicted impact sets computed at the
changes that caused the failing tests. The results show that the method
is applicable for the analysis of the system, and that the impact sets
can predict the required changes in a fair amount of cases, but that
there are still open issues for the improvement of the method.
Keywords: Change impact
analysis, source code analysis, Static Execute After, regression
testing.
Back