Techniques for Improving Regression Testing in Continuous Integration Development Environments

被引:230
作者
Elbaum, Sebastian [1 ]
Rothermel, Gregg [1 ]
Penix, John [2 ]
机构
[1] Univ Nebraska Lincoln, Lincoln, NE 68588 USA
[2] Google Inc, Mountain View, CA USA
来源
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014) | 2014年
基金
美国国家科学基金会;
关键词
Continuous Integration; Regression Testing; Regression Test Selection; Test Case Prioritization;
D O I
10.1145/2635868.2635910
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In continuous integration development environments, software engineers frequently integrate new or changed code with the mainline codebase. This can reduce the amount of code rework that is needed as systems evolve and speed up development time. While continuous integration processes traditionally require that extensive testing be performed following the actual submission of code to the codebase, it is also important to ensure that enough testing is performed prior to code submission to avoid breaking builds and delaying the fast feedback that makes continuous integration desirable. In this work, we present algorithms that make continuous integration processes more cost-effective. In an initial presubmit phase of testing, developers specify modules to be tested, and we use regression test selection techniques to select a subset of the test suites for those modules that render that phase more cost-effective. In a subsequent post-submit phase of testing, where dependent modules as well as changed modules are tested, we use test case prioritization techniques to ensure that failures are reported more quickly. In both cases, the techniques we utilize are novel, involving algorithms that are relatively inexpensive and do not rely on code coverage information-two requirements for conducting testing cost-effectively in this context. To evaluate our approach, we conducted an empirical study on a large data set from Google that we make publicly available. The results of our study show that our selection and prioritization techniques can each lead to cost-effectiveness improvements in the continuous integration process.
引用
收藏
页码:235 / 245
页数:11
相关论文
共 36 条
[1]  
Alspaugh S., 2007, P ACM INT WORKSH EMP, P17
[2]  
[Anonymous], 2014, GOOGLE ENG TOOLS
[3]  
[Anonymous], 2014, ANDROID API REFERENC
[4]  
[Anonymous], 2014, GOOGLE C PLUS PLUS T
[5]  
Atlassian, 2014, ATL SOFTW SYST BAMB
[6]   Semantics guided regression test cost reduction [J].
Binkley, D .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1997, 23 (08) :498-516
[7]  
Bucur S, 2011, EUROSYS 11: PROCEEDINGS OF THE EUROSYS 2011 CONFERENCE, P183
[8]  
Do H, 2006, IEEE T SOFTWARE ENG, V32, P733, DOI 10.1109/TSE.2006.92
[9]   The Effects of Time Constraints on Test Case Prioritization: A Series of Controlled Experiments [J].
Do, Hyunsook ;
Mirarab, Siavash ;
Tahvildari, Ladan ;
Rothermel, Gregg .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2010, 36 (05) :593-617
[10]  
Duvall P., 2007, Continuous Integration: Improving software quality and reducing risk