Impact Analysis in the Presence of Dependence Clusters Using Static
Execute After in WebKit
Lajos Schrettner, Judit Jász, Tamás Gergely,
Impact analysis based on code dependence can be an integral
part of software quality assurance by providing opportunities to
identify those parts of the software system that are affected by a
change. Because changes usually have far reaching effects in programs,
effective and efficient impact analysis is vital, which has different
applications including change propagation and regression testing.
Static Execute After (SEA) is a relation on program elements
(procedures) that is efficiently computable and accurate enough to be a
candidate for use in impact analysis in practice. To assess the
applicability of SEA in terms of capturing real defects, we present
results on integrating it into the build system of WebKit, a large,
open source software system, and on related experiments. We show that a
large number of real defects can be captured by impact sets computed by
SEA, albeit many of them are large. We demonstrate that this is not an
issue in applying it to regression test prioritization, but generally
it can be an obstacle in the path to efficient use of impact analysis.
We believe that the main reason for large impact sets is the formation
of dependence clusters in code. As apparently dependence clusters
cannot be easily avoided in the majority of cases, we focus on
determining the effects these clusters have on impact analysis.
Keywords: Change impact
analysis, Source code analysis, Static Execute After, Regression
testing, Dependence clusters.