Page 219 - 《软件学报》2024年第6期
P. 219
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2024,35(6):2795−2820 [doi: 10.13328/j.cnki.jos.006905] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
*
结合 SVM 与 XGBoost 的链式多路径覆盖测试用例生成
钱忠胜, 俞情媛, 张 丁, 姚昌森, 秦朗悦, 成轶伟
(江西财经大学 信息管理学院, 江西 南昌 330013)
通信作者: 钱忠胜, E-mail: changesme@163.com
摘 要: 机器学习方法可很好地与软件测试相结合, 增强测试效果, 但少有学者将其运用于测试数据生成方面. 为
进一步提高测试数据生成效率, 提出一种结合 SVM (support vector machine) 和 XGBoost (extreme gradient boosting)
的链式模型, 并基于此模型借助遗传算法实现多路径测试数据生成. 首先, 利用一定样本训练若干个用于预测路径
节点状态的子模型 (SVM 和 XGBoost), 通过子模型的预测精度值筛选最优子模型, 并根据路径节点顺序将其依次
in sequence according to the order of the path nodes, so as to form a chained model, namely chained SVM and XGBoost (C-
链接, 形成一个链式模型 C-SVMXGBoost (chained SVM and XGBoost). 在利用遗传算法生成测试用例时, 使用训练
好的链式模型代替插桩法获取测试数据覆盖路径 (预测路径), 寻找预测路径与目标路径相似的路径集, 对存在相
似路径集的预测路径进行插桩验证, 获取精确路径, 计算适应度值. 在交叉变异过程中引入样本集中路径层级深度
较大的优秀测试用例进行重用, 生成覆盖目标路径的测试数据. 最后, 保留进化生成中产生的适应度较高的个体,
更新链式模型 C-SVMXGBoost, 进一步提高测试效率. 实验表明, C-SVMXGBoost 较其他各对比链式模型更适合
解决路径预测问题, 可提高测试效率. 并且通过与已有经典方法相比, 所提方法在覆盖率上提高可达 15%, 平均进
化代数也有所降低, 在较大规模程序上其降低百分比可达 65%.
关键词: 测试用例; SVM; XGBoost; 链式模型; 多路径覆盖
中图法分类号: TP311
中文引用格式: 钱忠胜, 俞情媛, 张丁, 姚昌森, 秦朗悦, 成轶伟. 结合SVM与XGBoost的链式多路径覆盖测试用例生成. 软件学报,
2024, 35(6): 2795–2820. http://www.jos.org.cn/1000-9825/6905.htm
英文引用格式: Qian ZS, Yu QY, Zhang D, Yao CS, Qin LY, Cheng YW. Multi-path Coverage Test Case Generation Combining
Chained SVM and XGBoost. Ruan Jian Xue Bao/Journal of Software, 2024, 35(6): 2795–2820 (in Chinese). http://www.jos.org.cn/
1000-9825/6905.htm
Multi-path Coverage Test Case Generation Combining Chained SVM and XGBoost
QIAN Zhong-Sheng, YU Qing-Yuan, ZHANG Ding, YAO Chang-Sen, QIN Lang-Yue, CHENG Yi-Wei
(School of Information Management, Jiangxi University of Finance and Economics, Nanchang 330013, China)
Abstract: Machine learning methods can be well combined with software testing to enhance test effect, but few scholars have applied it to
test data generation. In order to further improve the efficiency of test data generation, a chained model combining support vector machine
(SVM) and extreme gradient boosting (XGBoost) is proposed, and multi-path test data generation is realized by a genetic algorithm based
on the chained model. Firstly, this study uses certain samples to train several sub-models (i.e., SVM and XGBoost) for predicting the state
of path nodes, filters the optimal sub-models based on the prediction accuracy value of the sub-models, and links the optimal sub-models
SVMXGBoost). When using the genetic algorithm to generate test cases, the study makes use of the chained model that is trained instead
of the instrumentation method to obtain the test data coverage path (i.e., predicted path), finds the path set with the predicted path similar
to the target path, performs instrumentation verification on the predicted path with similar path sets, obtains accurate paths, and calculates
* 基金项目: 国家自然科学基金 (62262025); 江西省自然科学基金重点项目 (20224ACB202012)
收稿时间: 2022-07-04; 修改时间: 2022-10-08; 采用时间: 2023-01-11; jos 在线出版时间: 2023-08-09
CNKI 网络首发时间: 2023-08-10