[发明专利]面向并行变异算子的顽固变异体测试数据生成方法及系统有效
申请号: | 202210388183.3 | 申请日: | 2022-04-14 |
公开(公告)号: | CN114461535B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 田甜;杨秀婷;杨欢;邵阳阳;王安轼;于志云;刘新锋;姜玉波 | 申请(专利权)人: | 山东建筑大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 闫圣娟 |
地址: | 250101 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 并行 变异 算子 顽固 异体 测试数据 生成 方法 系统 | ||
1.面向并行变异算子的顽固变异体测试数据生成方法,其特征在于,包括如下步骤:
确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
按照变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据;
根据变异语句之间的占优关系将顽固变异体进行初次分组,具体的:
步骤21、将筛选出的顽固变异体根据顽固度从大到小进行排列;
步骤22、选择最顽固的变异体作为聚类中心;
步骤23、建立聚类中心与其他变异语句的占优度矩阵,选择占优度等于1变异体作为簇成员;
循环执行步骤22-步骤23,直到所有的变异体分组完成;
按照变异语句与待测试程序的输入参数的相关性,将初次分组后的顽固变异体进行再分组为:每个初分组后的组内,在同一发送节点执行顺序下,将具有相同的相关程序输入变量的顽固变异体归为一组。
2.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:所述测试数据生成模型,以顽固变异体被杀死作为目标函数,并针对每一组顽固变异体设置一个约束函数,将与每组顽固变异体的变异语句相关的程序输入变量作为该组顽固变异体的决策变量,求解后对应每一组顽固变异体生成测试数据。
3.如权利要求2所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:测试数据生成模型的约束函数,具体的:根据每组顽固变异体的相关输入变量和变异语句所在变异分支的层接近度,以及顽固变异体的相关输入变量和变异语句所在变异分支的分支距离,建立相关输入变量覆盖变异语句所在变异分支需要满足的约束函数。
4.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:确定的变异体顽固性的评价指标包括:变异语句的可达概率,变异语句的传播概率,变异语句与流程的相关性,以及变异语句与输入变量的相关性。
5.如权利要求4所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:
变异语句可达概率的计算方法为:
若变异语句为接收语句,变异语句的可达概率为:变异语句所在流程的可达概率与相应的发送语句的可达概率的乘积;
若变异语句为除接收语句的其他语句类型,变异语句s的可达概率为:从开始流程到变异语句
或者,变异语句的传播概率的计算方法为:
若变异语句为发送语句,构建变异语句所涉及的变量到程序输出语句的数据依赖路径,以及构建变异语句的接收语句涉及的变量到程序输出语句的数据依赖路径,该变异语句的传播概率为构建的两条路径执行的概率的最小值;
当变异语句为除了发送语句的其他语句类型,构建变异语句所涉及变异的变量到程序输出的函数依赖路径,该路径的可执行概率则为该变异语句的传播概率。
6.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于:对待测试程序的变异体进行顽固性判定的方法,具体的:通过建立顽固性指标实现,在变异语句是可达时,所述顽固性指标为不同执行路径下顽固性指标的最小值;当变异体的顽固性指标大于设定阈值时,则判定该变异体为顽固变异体;
每个执行路径下顽固性指标为:按照该路径执行时,各个变异体顽固性的评价指标按照设定的权重的加权和。
7.如权利要求1所述的面向并行变异算子的顽固变异体测试数据生成方法,其特征在于,求解测试数据生成模型,具体的:基于集合进化求解测试数据生成模型,生成杀死顽固变异体组的测试数据,求解过程中适应值函数采用罚函数。
8.面向并行变异算子的顽固变异体测试数据生成系统,其特征在于,包括:
顽固变异体判定模块:被配置为用于确定变异体顽固性的评价指标,对待测试程序的变异体进行顽固性判定,得到顽固变异体;
第一分组模块:被配置为用于根据变异通信语句之间的占优关系,将得到的顽固变异体进行初次分组;
第二分组模块:被配置为用于根据变异语句与待测试程序的输入参量的相关性,将初次分组后的顽固变异体进行再分组;
测试数据生成模块:被配置为用于根据再分组后的顽固变异体构建测试数据生成模型,基于集合进化,设置与杀死变异体相关的适应值函数,求解测试数据生成模型,生成能够杀死顽固变异体的测试数据;
根据变异语句之间的占优关系将顽固变异体进行初次分组,具体的:
步骤21、将筛选出的顽固变异体根据顽固度从大到小进行排列;
步骤22、选择最顽固的变异体作为聚类中心;
步骤23、建立聚类中心与其他变异语句的占优度矩阵,选择占优度等于1变异体作为簇成员;
循环执行步骤22-步骤23,直到所有的变异体分组完成;
按照变异语句与待测试程序的输入参数的相关性,将初次分组后的顽固变异体进行再分组为:每个初分组后的组内,在同一发送节点执行顺序下,将具有相同的相关程序输入变量的顽固变异体归为一组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东建筑大学,未经山东建筑大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210388183.3/1.html,转载请声明来源钻瓜专利网。