Software product lines are families of products defined by feature commonality and variability, with a well-managed asset base. Recent work in testing of software product lines has exploited similarities in different development phases to reuse shared assets and reduce test effort. The use of feature dependence graphs has also been employed, and there has been some work that aims to reduce duplication of partial products during integration testing, but less that focuses on code level analysis of dataflow between features. In this paper we present a compositional symbolic execution technique that works in concert with a feature dependence graph to extract the set of possible interaction trees in a product family. It then composes these to incrementally and symbolically analyze feature interactions. We experiment with two product lines and determine that our technique can reduce the overall number of interactions that must be considered during testing, and requires less time to run t...
Jiangfan Shi, Myra B. Cohen, Matthew B. Dwyer