Page 228 - 《软件学报》2024年第6期
P. 228
2804 软件学报 2024 年第 35 卷第 6 期
4.2 融合 C-SVMXGBoost 链式模型的遗传进化测试生成
遗传算法模块主要借助已构建的链式模型生成待测程序的用例, 完成多目标路径的测试. 遗传算法生成测试
用例的过程如图 3 所示.
遗传进化测试生成模块
开始
模型库 初始化种群
获取模型
输入模型预测
下一个路径节点 继续预测 重用优秀用例
是 否
预测完毕?
照传统模式下的方式进化. 测试用例生成过程见算法
输出预测的 加入预测的
完整路径 路径节点信息
比较预测路径与所有
目标路径的相似度
新样本 原始样本
否 达到相似度 是 选择优秀个体基因
阈值? 保存优秀个体
获取预测路径
对应的测试用例
舍弃
否
运行插桩程序
满足算法 计算适应度函数
终止条件? 重用
转换为二进制编码
选择、交叉、
是 变异等
产生新种群
结束 覆盖目标路径
图 3 利用融合 C-SVMXGBoost 链式模型的遗传算法生成测试用例
在利用遗传算法生成测试用例的过程中, 本文采用构建的链式模型预测种群个体的覆盖路径, 再根据此路径
寻找相似目标路径, 计算个体的适应度. 在交叉变异时引入原始样本中较为优秀的用例, 种群在其他过程中仍然按
2.
算法 2. 融合 C-SVMXGBoost 链式模型的遗传进化测试生成.
输入: C-SVMXGBoost 模型, 目标路径集 Tarpath, 路径相似度阈值 Path_Sim_Threshold(PST), 种群大小 Pop_Size,
个体 Pop_Individual, 染色体长度 Chromosome_Length(CL), 进化代数 Evolutionary_Time(ET), 交叉概率
Cross_Probability(CP), 变异概率 Mutate_Probability(MP), 优秀个体 Excellent_Individual(EI);
输出: 新测试数据 New_testdata, 未覆盖目标路径集 UncoveredTarPath.
BEGIN