iTree: Efficiently discovering high-coverage configurations using interaction trees
Authors:
- 1 June 2012
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 02705257,p. 903-913
Abstract
Software configurability has many benefits, but it also makes programs much harder to test, as in the worst case the program must be tested under every possible configuration. One potential remedy to this problem is combinatorial interaction testing (CIT), in which typically the developer selects a strength t and then computes a covering array containing all t-way configuration option combinations. However, in a prior study we showed that several programs have important high-strength interactions (combinations of a subset of configuration options) that CIT is highly unlikely to generate in practice. In this paper, we propose a new algorithm called interaction tree discovery (iTree) that aims to identify sets of configurations to test that are smaller than those generated by CIT, while also including important high-strength interactions missed by practical applications of CIT. On each iteration of iTree, we first use low-strength CIT to test the program under a set of configurations, and then apply machine learning techniques to discover new interactions that are potentially responsible for any new coverage seen. By repeating this process, iTree builds up a set of configurations likely to contain key high-strength interactions. We evaluated iTree by comparing the coverage it achieves versus covering arrays and randomly generated configuration sets. Our results strongly suggest that iTree can identify high-coverage sets of configurations more effectively than traditional CIT or random sampling.Keywords
This publication has 29 references indexed in Scilit:
- The WEKA data mining softwareACM SIGKDD Explorations Newsletter, 2009
- Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge2009
- Incremental covering array failure characterization in large configuration spaces2009
- Covering array sampling of input event sequences for automated gui testing2007
- Techniques for Classifying Executions of Deployed Software to Support Software Engineering TasksIEEE Transactions on Software Engineering, 2007
- Covering arrays for efficient fault characterization in complex configuration spacesIEEE Transactions on Software Engineering, 2006
- DART2005
- Tree-Based Methods for Classifying Software Failures2005
- CLOPE2002
- Symbolic execution and program testingCommunications of the ACM, 1976