a demand-driven analyzer for data flow testing at the integration level
Data-flow testing relies on static analysis for computing the definition-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 contribute considerably 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 and implemented a demand-driven analyzer and experimentally compared its performance during integration testing with the performance of (i) a traditional exhaustive analyzer, and (ii) an incremental analyzer. Our experiments show that demand-driven analysis is faster than exhaustive analysis by up to a factor of 25. The demand-driven analyzer also outperforms the incremental analyzer in 80\% of the test programs by up to a factor of 5.
demand-driven analyzer data flow testing data flow test integrability static analysis analysis computation definition-use pairs test case requirements case requirements program procedure isolates unit testing integration testing performance interfaces cost overhead use incremental incremental data-flow updates update paper efficiency experience exhaustive analyzer incremental analyzer factor definition program testing data flow analysis large program testing program procedure interfaces