Page 242 - 《软件学报》2024年第6期
P. 242
2818 软件学报 2024 年第 35 卷第 6 期
方法在测试用例生成方面的效率, 这里结合表 3 (见第 5.3.3 节) 和表 7 的实验结果, 分别从覆盖率、平均进化代数
和路径覆盖数这几个方面, 对几种测试用例生成方法展开定性分析, 如表 9 所示.
表 9 各测试用例生成方法的效率对比
对比方法 覆盖率 平均进化代数 路径覆盖数
传统遗传法 ◇ ◇◇◇◇ ◇
关键字流图法 [7] ◇◇◇ ◇ ◇
关键点概率法 [15] ◇◇◇ ◇◇◇ ◇◇◇
否定遗传法 [14] ◇◇ ◇◇◇ ◇◇◇
神经网络法 [8] ◇◇ - ◇
SAEO法 [9] ◇◇◇ - ◇◇◇
本文方法 ◇◇◇ ◇◇ ◇◇◇
注: 标记“◇”表示不同方法在不同指标下的效率, 标记越多则影响越大
48(7): 1330–1342 (in Chinese with English abstract). [doi: 10.3969/j.issn.0372-2112.2020.07.011]
由表 9 可知, 传统遗传法表现最差. 这些方法中, 路径覆盖率最高的有关键字流图法、关键点概率法、SAEO
法和本文方法, 其次是否定遗传法和神经网络法. 平均进化代数效果最优的是关键字流图法, 其次是本文方法, 然
后是关键点概率法和否定遗传法. 目标路径被覆盖的数量也是衡量方法优劣的关键因素之一. 在众多方法中, 关键
点概率法、否定遗传法、SAEO 法和本文方法均可覆盖多条目标路径, 而关键字流图法以及神经网络法解决的均
为单目标路径, 若检测更多路径则需重复实验多次, 这不仅耗费更多时间, 且造成测试数据的浪费.
综上分析, 本文方法保证覆盖率的同时, 在相对较少的进化代数内可覆盖较多的目标路径, 这表明本文方法是
有效的, 且测试效率较好.
6 总结与进一步研究
本文提出一种融合 SVM 和 XGBoost 的链式模型 C-SVMXGBoost 的多路径覆盖测试数据生成与重用方法,
该链式模型代替插桩法模拟测试数据覆盖路径, 减少插桩时间的同时, 筛选尽可能多的相似目标路径, 提高测试用
例利用率及路径覆盖效率. 相比其他单一模型和融合模型, 本文模型在精度与时间方面具有较大优势, 精度基本保
持在 90% 及以上, 执行时间普遍减少, 最多可减少 42.36%. 同时在遗传进化时, 本文方法对符合要求的个体插桩
验证, 计算适应度, 并在交叉变异时引入优秀用例. 这不仅提高种群质量, 还充分利用测试数据实现多路径覆盖用
例生成. 对比已有经典测试方法, 本文方法有较高用例生成效率, 在覆盖率上提高可达 15%, 平均进化代数降低可
达 65%. 未来工作将探讨如何利用机器学习方法优化初始遗传种群质量, 以期进一步提高测试效率.
References:
[1] Bertolino A, Miranda B, Pietrantuono R, Russo S. Adaptive test case allocation, selection and generation using coverage spectrum and
operational profile. IEEE Trans. on Software Engineering, 2021, 47(5): 881–898. [doi: 10.1109/TSE.2019.2906187]
[2] Sun CA, Liu BL, Fu A, Liu YQ, Liu H. Path-directed source test case generation and prioritization in metamorphic testing. Journal of
Systems and Software, 2022, 183: 111091. [doi: 10.1016/j.jss.2021.111091]
[3] Liao WZ, Xia XY, Jia XJ. Test data generation for multiple paths coverage based on ant colony algorithm. Acta Electronica Sinica, 2020,
[4] Feng XB, Ding R, Chai BJ, Huo TT. Multi-objective heuristic information optimization algorithm for path coverage-oriented test data
generation. In: Proc. of the 3rd Int’l Conf. on Artificial Intelligence and Advanced Manufacture. Manchester: ACM, 2021. 650–654. [doi:
10.1145/3495018.3495135]
[5] Fan SP, Wan L, Yao NM, Zhang Y, Ma BY. Test case sorting method based on key use cases extracted. Acta Electronica Sinica, 2022,
50(1): 149–156 (in Chinese with English abstract). [doi: 10.12263/DZXB.20201284]
[6] Pan F, Gong DW, Tian T, Yao XJ, Li Y. Path similarity-based scheduling sequence sorting for multi-path coverage of parallel programs.
SCIENTIA SINICA Informationis, 2021, 51(4): 565–581 (in Chinese with English abstract). [doi: 10.1360/SSI-2019-0113]