An introduction to OMG/CORBA (tutorial)
ICSE '97 Proceedings of the 19th international conference on Software engineering
An empirical study of regression test selection techniques
ACM Transactions on Software Engineering and Methodology (TOSEM)
Software product lines: practices and patterns
Software product lines: practices and patterns
Prioritizing Test Cases For Regression Testing
IEEE Transactions on Software Engineering
Test Case Prioritization: A Family of Empirical Studies
IEEE Transactions on Software Engineering
Software Architecture in Practice
Software Architecture in Practice
Toward a Common Component Architecture for High-Performance Scientific Computing
HPDC '99 Proceedings of the 8th IEEE International Symposium on High Performance Distributed Computing
A Study of Effective Regression Testing in Practice
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
Skoll: Distributed Continuous Quality Assurance
Proceedings of the 26th International Conference on Software Engineering
Service-Oriented Computing: Key Concepts and Principles
IEEE Internet Computing
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
Service-Oriented Architecture: Concepts, Technology, and Design
Service-Oriented Architecture: Concepts, Technology, and Design
GridUnit: software testing on the grid
Proceedings of the 28th international conference on Software engineering
Multi-environment software testing on the grid
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
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
Improving the Quality of GNU/Linux Distributions
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
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
Towards incremental component compatibility testing
Proceedings of the 14th international ACM Sigsoft symposium on Component based software engineering
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-in use can be very large. Moreover, components are constantly being enhanced and new versions are being released. Component developers, therefore, spend considerable time and effort doing compatibility testing-determining whether their components can be built correctly for all deployed configurations-both for existing active component versions and new releases. In previous work we developed Rachet, a distributed, cache-aware mechanism to support large-scale compatibility testing of component-based software with a fixed set of component versions. In this paper, we observe that it is too expensive to perform compatibility testing from scratch each time a new version of a component is released. We thus add a new dimension to Rachet: to perform incremental and prioritized 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. Because testers are often interested in focusing test effort on newly released and modified components and their versions, we have developed a prioritization mechanism that enhances compatibility testing by examining the configurations that test new or modified component versions first, while also distributing the work over a cluster of machines. We evaluate our approach using the 5-year evolution history of a scientific middleware component. Our results show that our methods can increase performance significantly over Rachet's previous retest-all approach and also tests important component compatibilities early in the overall testing process, making the process of compatibility testing practical for evolving components.