Dataflow Analysis and Testing of Software Components

Y. Pan and M.-H. Chen (USA)


Software Testing, Software Components, Dataflow Testing.


Software components have been dramatically adopted in building large-scale complex software systems. Since the components are often assembled by using a plug-and-play approach, they must be thoroughly tested prior to the deployment. In this paper, we present a set of dataflow coverage criteria for guiding test case generation as well as an efficient algorithm for computing def-use associations. The coverage criteria include six levels of def-use associations that need to be exercised to explore plausible faults introduced by the data manipulations. Moreover, we address the callback and re-entrance features of components, which may introduce additional def-use pairs that cannot be identified by using traditional dataflow analysis approaches. Our dataflow analysis is based on the components'common composition structure and the nature of execution flows. The algorithm makes use of a Def-Use Binding Graph to compute def-use associations, which eliminates the need of def-use propagation; thus its space requirement can be reduced from quadratic to linear proportional to the component size. A component that is adequately tested by using these dataflow coverage criteria can be reliably deployed in various execution contexts. Furthermore, the test cases and scripts can be reused in integration, thereby making testing more effective.

Important Links:

Go Back