An empirical study of regression test selection techniques
ACM Transactions on Software Engineering and Methodology (TOSEM)
Test Case Prioritization: A Family of Empirical Studies
IEEE Transactions on Software Engineering
A Study of Effective Regression Testing in Practice
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
High Performance Communication between Parallel Programs
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 4 - Volume 05
Building complex coupled physical simulations on the grid with InterComm
Engineering with Computers
Maven: A Developer's Notebook (Developer's Notebooks)
Maven: A Developer's Notebook (Developer's Notebooks)
Direct-dependency-based software compatibility testing
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Effective and scalable software compatibility testing
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Configuration-aware regression testing: an empirical study of sampling and prioritization
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Testing of User-Configurable Software Systems Using Firewalls
ISSRE '08 Proceedings of the 2008 19th International Symposium on Software Reliability Engineering
Mercurial: The Definitive Guide
Mercurial: The Definitive Guide
Testing component compatibility in evolving configurations
Information and Software Technology
Hi-index | 0.00 |
Software components are increasingly assembled from other components. Each component may further depend on others, and each may have multiple active versions. The total number of configurations --- combinations of components and their versions --- deployed by end users can be very large. Component developers, therefore, spend considerable time and effort doing compatibility testing --- determining whether their components can be built correctly for all deployed configurations. In previous work we developed Rachet to support large-scale compatibility testing of components. In this paper, we describe and evaluate methods to enable Rachet to perform incremental compatibility testing. We describe algorithms to compute differences in component compatibilities between current and previous component builds, a formal test adequacy criterion based on covering the differences, and cache-aware configuration sampling and testing methods that attempt to reuse effort from previous testing sessions. We evaluate our approach using the 5-year evolution history of a scientific middleware component. Our results show significant performance improvements over Rachet's previous retest-all approach, making the process of compatibility testing practical for evolving components.