Comparative study of machine learning test case prioritization for continuous integration testing

被引:5
作者
Marijan, Dusica [1 ]
机构
[1] Simula Res Lab, Oslo, Norway
关键词
Machine learning; Neural networks; Support vector regression; Gradient boosting; Learning to rank; Continuous integration; Software testing; Regression testing; Test prioritization; Test selection; Test optimization;
D O I
10.1007/s11219-023-09646-0
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
There is a growing body of research indicating the potential of machine learning to tackle complex software testing challenges. One such challenge pertains to continuous integration testing, which is highly time-constrained, and generates a large amount of data coming from iterative code commits and test runs. In such a setting, we can use plentiful test data for training machine learning predictors to identify test cases able to speed up the detection of regression bugs introduced during code integration. However, different machine learning models can have different fault prediction performance depending on the context and the parameters of continuous integration testing, for example, variable time budget available for continuous integration cycles, or the size of test execution history used for learning to prioritize failing test cases. Existing studies on test case prioritization rarely study both of these factors, which are essential for the continuous integration practice. In this study, we perform a comprehensive comparison of the fault prediction performance of machine learning approaches that have shown the best performance on test case prioritization tasks in the literature. We evaluate the accuracy of the classifiers in predicting fault-detecting tests for different values of the continuous integration time budget and with different lengths of test history used for training the classifiers. In evaluation, we use real-world and augmented industrial datasets from a continuous integration practice. The results show that different machine learning models have different performance for different size of test history used for model training and for different time budgets available for test case execution. Our results imply that machine learning approaches for test prioritization in continuous integration testing should be carefully configured to achieve optimal performance.
引用
收藏
页码:1415 / 1438
页数:24
相关论文
共 35 条
[1]   Enhanced regression testing technique for agile software development and continuous integration strategies [J].
Ali, Sadia ;
Hafeez, Yaser ;
Hussain, Shariq ;
Yang, Shunkun .
SOFTWARE QUALITY JOURNAL, 2020, 28 (02) :397-423
[2]   Learning-to-Rank vs Ranking-to-Learn: Strategies for Regression Testing in Continuous Integration [J].
Bertolino, Antonia ;
Guerriero, Antonio ;
Miranda, Breno ;
Pietrantuono, Roberto ;
Russo, Stefano .
2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, :1-12
[3]   Learning for Test Prioritization: An Industrial Case Study [J].
Busjaeger, Benjamin ;
Xie, Tao .
FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, :975-980
[4]  
Calvo B, 2016, R J, V8, P248
[5]   Optimizing Test Prioritization via Test Distribution Analysis [J].
Chen, Junjie ;
Lou, Yiling ;
Zhang, Lingming ;
Zhou, Jianyi ;
Wang, Xiaoleng ;
Hao, Dan ;
Zhang, Lu .
ESEC/FSE'18: PROCEEDINGS OF THE 2018 26TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2018, :656-667
[6]   Techniques for Improving Regression Testing in Continuous Integration Development Environments [J].
Elbaum, Sebastian ;
Rothermel, Gregg ;
Penix, John .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :235-245
[7]  
Grano G, 2018, 2018 IEEE WORKSHOP ON MACHINE LEARNING TECHNIQUES FOR SOFTWARE QUALITY EVALUATION (MALTESQUE), P19, DOI 10.1109/MALTESQUE.2018.8368454
[8]  
Hasnain M, 2019, ASIAPAC SIGN INFO PR, P96, DOI 10.1109/APSIPAASC47483.2019.9023052
[9]  
Hemmati H., 2017, PRIORITIZING MANUAL, P27
[10]   Version specific test case prioritization approach based on artificial neural network [J].
Jahan, Hosney ;
Feng, Ziliang ;
Mahmud, S. M. Hasan ;
Dong, Penglin .
JOURNAL OF INTELLIGENT & FUZZY SYSTEMS, 2019, 36 (06) :6181-6194