  Unexpected interactions among features induce most bugs in a configurable
software system. Exhaustively analyzing all the exponential number of possible
configurations is prohibitively costly. Thus, various sampling techniques have
been proposed to systematically narrow down the exponential number of legal
configurations to be analyzed. Since analyzing all selected configurations can
require a huge amount of effort, fault-based configuration prioritization, that
helps detect faults earlier, can yield practical benefits in quality assurance.
In this paper, we propose CoPro, a novel formulation of feature-interaction
bugs via common program entities enabled/disabled by the features. Leveraging
from that, we develop an efficient feature-interaction aware configuration
prioritization technique for a configurable system by ranking the
configurations according to their total number of potential bugs. We conducted
several experiments to evaluate CoPro on the ability to detect
configuration-related bugs in a public benchmark. We found that CoPro
outperforms the state-of-the-art configuration prioritization techniques when
we add them on advanced sampling algorithms. In 78% of the cases, CoPro ranks
the buggy configurations at the top 3 positions in the resulting list.
Interestingly, CoPro is able to detect 17 not-yet-discovered
feature-interaction bugs.
