Efficiently Monitoring Data-Flow Test Coverage

Abstract

Structural testing of software requires monitoring the software's execution to determine which program entities are executed by a test suite. Such monitoring can add significant overhead to the execution of the program, adversely affecting the cost of running a test suite. Thus, minimizing the necessary monitoring activity lets testers reduce testing time or execute more test cases. A basic testing strategy is to cover all statements or branches but a more effective strategy is to cover all definition-use associations (DUAs). In this paper, we present a novel technique to efficiently monitor DUAs, based on branch monitoring. We show how to infer from branch coverage the coverage of many DUAs, while remaining DUAs are predicted with high accuracy by the same information. Based on this analysis, testers can select to use the branch monitoring to approximate the DUA coverage or they can select a more expensive DUA monitoring technique that provides precise results. In this paper, we also present a tool, called DUA-Forensics, that we implemented for this technique along with a set of empirical studies that we performed using the tool.


Related research categories:
(1) Program Analysis
(2) Instrumentation
(3) Monitoring
(4) Empirical Studies

Go To Publications