Orthogonal Latin squares: an application of experiment design to compiler testing
Communications of the ACM
Machine Learning
Applying design of experiments to software testing: experience report
ICSE '97 Proceedings of the 19th international conference on Software engineering
The AETG System: An Approach to Testing Based on Combinatorial Design
IEEE Transactions on Software Engineering
Model-based testing in practice
Proceedings of the 21st international conference on Software engineering
Symbolic execution and program testing
Communications of the ACM
Finding failures by cluster analysis of execution profiles
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Prioritizing Test Cases For Regression Testing
IEEE Transactions on Software Engineering
The impact of test suite granularity on the cost-effectiveness of regression testing
Proceedings of the 24th International Conference on Software Engineering
Machine Learning
CLOPE: a fast and effective clustering algorithm for transactional data
Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining
Automated support for classifying software failure reports
Proceedings of the 25th International Conference on Software Engineering
An Investigation of the Applicability of Design of Experiments to Software Testing
SEW '02 Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop (SEW-27'02)
Test Case Prioritization: An Empirical Study
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Software Fault Interactions and Implications for Software Testing
IEEE Transactions on Software Engineering
Finding Latent Code Errors via Machine Learning over Program Executions
Proceedings of the 26th International Conference on Software Engineering
Tree-Based Methods for Classifying Software Failures
ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Covering Arrays for Efficient Fault Characterization in Complex Configuration Spaces
IEEE Transactions on Software Engineering
Search Algorithms for Regression Test Case Prioritization
IEEE Transactions on Software Engineering
Techniques for Classifying Executions of Deployed Software to Support Software Engineering Tasks
IEEE Transactions on Software Engineering
Covering array sampling of input event sequences for automated gui testing
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Configuration-aware regression testing: an empirical study of sampling and prioritization
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Skoll: A Process and Infrastructure for Distributed Continuous Quality Assurance
IEEE Transactions on Software Engineering
Incremental covering array failure characterization in large configuration spaces
Proceedings of the eighteenth international symposium on Software testing and analysis
Proceedings of the eighteenth international symposium on Software testing and analysis
The WEKA data mining software: an update
ACM SIGKDD Explorations Newsletter
Using symbolic evaluation to understand behavior in configurable software systems
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Family-based performance measurement
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
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.