Relation-based test case prioritization for regression testing

被引:37
作者
Chi, Jianlei [1 ]
Qu, Yu [3 ]
Zheng, Qinghua [1 ]
Yang, Zijiang [2 ]
Jin, Wuxia [1 ]
Cui, Di [1 ]
Liu, Ting [1 ]
机构
[1] Xi An Jiao Tong Univ, Minist Educ, Key Lab Intelligent Network & Network Secur, Xian 710049, Shaanxi, Peoples R China
[2] Western Michigan Univ, Dept Comp Sci, Kalamazoo, MI 48167 USA
[3] Univ Calif Riverside, Dept Comp Sci & Engn, 900 Univ Ave, Riverside, CA 92521 USA
基金
国家重点研发计划; 中国国家自然科学基金;
关键词
Software testing; Test case prioritization; Dynamic call sequence; MUTATION;
D O I
10.1016/j.jss.2020.110539
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Test case prioritization (TCP), which aims at detecting faults as early as possible is broadly used in program regression testing. Most existing TCP techniques exploit coverage information with the hypothesis that higher coverage has more chance to catch bugs. Static structure information such as function and statement are frequently employed as coverage granularity. However, the former consumes less costs but presents lower capability to detect faults, the latter typically incurs more overhead. In this paper, dynamic function call sequences are argued that can guide TCP effectively. Same set of functions/statements can exhibit very different execution behaviors. Therefore, mapping program behaviors to unit-based (function/statement) coverage may not be enough to predict fault detection capability. We propose a new approach AGC (Additional Greedy method Call sequence). Our approach leverages dynamic relation-based coverage as measurement to extend the original additional greedy coverage algorithm in TCP techniques. We conduct our experiments on eight real-world java open source projects and systematically compare AGC against 22 state-of-the-art TCP techniques with different granularities. Results show that AGC outperforms existing techniques on large programs in terms of bug detection capability, and also achieves the highest mean APFD value. The performance demonstrates a growth trend as the size of the program increases. (C) 2020 Elsevier Inc. All rights reserved.
引用
收藏
页数:18
相关论文
共 51 条
[1]   Is mutation an appropriate tool for testing experiments? [J].
Andrews, JH ;
Briand, LC ;
Labiche, Y .
ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, :402-411
[2]  
[Anonymous], 2012, P 3 ACM SPEC INT C P
[3]  
Bin Noor T, 2015, 2015 IEEE 26TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), P58, DOI 10.1109/ISSRE.2015.7381799
[4]   Test case prioritization: a systematic mapping study [J].
Catal, Cagatay ;
Mishra, Deepti .
SOFTWARE QUALITY JOURNAL, 2013, 21 (03) :445-478
[5]   Recomputing Coverage Information to Assist Regression Testing [J].
Chittimalli, Pavan Kumar ;
Harrold, Mary Jean .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2009, 35 (04) :452-469
[6]  
Dianxiang Xu, 2010, Proceedings of the Third IEEE International Conference on Software Testing, Verification and Validation (ICST 2010), P265, DOI 10.1109/ICST.2010.14
[7]  
Dickinson W., 2001, Software Engineering Notes, V26, P246, DOI 10.1145/503271.503243
[8]  
Do HS, 2004, 15TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING, PROCEEDINGS, P113
[9]   Test Case Prioritization Using Lexicographical Ordering [J].
Eghbali, Sepehr ;
Tahvildari, Ladan .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2016, 42 (12) :1178-1195
[10]   Understanding the effects of changes on the cost-effectiveness of regression testing techniques [J].
Elbaum, S ;
Kallakuri, P ;
Malishevsky, A ;
Rothermel, G ;
Kanduri, S .
SOFTWARE TESTING VERIFICATION & RELIABILITY, 2003, 13 (02) :65-83