Abstract
Data flow relies on static analysis for computing the def-use pairs that serve as the
test case requirements for a program. When testing large programs, the individual
procedures are first tested in isolation during unit testing. Integration testing
is performed to specifically test the procedure interfaces. The procedures in a
program are integrated and tested in several steps. Since each integration step
requires data flow analysis to determine the new test requirements, the accumulated
cost of repeatedly analyzing a program can considerably contribute to the overhead
of testing. Data flow analysis is typically computed using an exhaustive approach
or by using incremental data flow updates. This paper presents a new and more efficient
approach to data flow integration testing that is based on demand-driven analysis.
We developed an implemented a demand-driven analyzer and experimentally compared its
performance of (i) a traditional exhaustive analyzer and (ii) an incremental analyzer.
Our experiments show that demand-driven analysis is faster that exhaustive analysis by
up to a factor of 25. The demand-driven analyzer also outperforms the incremental
analyzer by up to a factor of 5.