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
   223   224   225   226   227   228   229   230   231   232   233