Testing component compatibility in evolving configurations

被引:5
作者
Yoon, Ilchul [1 ]
Sussman, Alan [2 ]
Memon, Atif [2 ]
Porter, Adam [2 ]
机构
[1] State Univ New York, Dept Comp Sci, Inchon, South Korea
[2] Univ Maryland, Dept Comp Sci, College Pk, MD 20742 USA
基金
美国国家科学基金会;
关键词
Incremental testing; Software component; Compatibility;
D O I
10.1016/j.infsof.2012.09.010
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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. (C) 2012 Elsevier B.V. All rights reserved.
引用
收藏
页码:445 / 458
页数:14
相关论文
共 30 条
[1]  
[Anonymous], P 22 IEEE ACM INT C
[2]  
Armstrong R., 1999, Proceedings. The Eighth International Symposium on High Performance Distributed Computing (Cat. No.99TH8469), P115, DOI 10.1109/HPDC.1999.805289
[3]  
Bass L., 2003, Software Architecture in Practice. Software Engineering
[4]  
Boender Jaap, 2008, 2008 IEEE 32nd International Computer Software and Applications Conference (COMPSAC), P1240, DOI 10.1109/COMPSAC.2008.226
[5]  
Clements P., 2001, SOFTWARE PRODUCT LIN
[6]  
Duarte A., 2006, 28th International Conference on Software Engineering Proceedings, P779, DOI 10.1145/1134285.1134410
[7]  
Duarte A., 2006, P 2006 WORKSHOP PARA, P61
[8]   Test case prioritization: A family of empirical studies [J].
Elbaum, S ;
Malishevsky, AG ;
Rothermel, G .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (02) :159-182
[9]   An introduction to OMG/CORBA [J].
Emmerich, W .
PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, :641-642
[10]  
Erl T., 2005, Service-Oriented Architecture: Concepts, Technology, and Design