基于改进遗传算法的软件测试用例智能生成方法及系统技术方案

技术编号:36191018 阅读:16 留言:0更新日期:2022-12-31 21:06
本发明专利技术提供一种基于改进遗传算法的软件测试用例智能生成方法及系统,涉及软件工程化技术领域。本发明专利技术获取初代原始用例种群,然后基于改进遗传算法对初代原始用例种群逐步进行选择、交叉,以及变异运算,生成有效测试用例数据集,接着对有效测试用例数据集进行突变运算可生成无效及异常测试用例集。本发明专利技术对有效、无效、异常测试用例的批量智能生成,解决了现有软件测试用例的设计、生成严重依赖人工,用例生成效率不足,用例量级与软件代码规模发展速度不匹配,以及用例准确率较低等问题,提高了软件测试用例生成的智能化水平和效率。高了软件测试用例生成的智能化水平和效率。高了软件测试用例生成的智能化水平和效率。

【技术实现步骤摘要】
基于改进遗传算法的软件测试用例智能生成方法及系统


[0001]本专利技术涉及软件工程化
,具体涉及一种基于改进遗传算法的软件测试用例智能生成方法及系统。

技术介绍

[0002]随着信息化战争朝向新一代数字化、无人化、智能化的趋势发展,软件产品呈现出研制需求变化加快、功能与代码规模剧增、领域特点分化明显等特点;同时,为进一步推动企业软件产品质量提升,更好地适应软件研制技术向大数据、云计算、人工智能等新一代智能化新技术转型的挑战,提高测试用例的智能化生成水平与准确性,逐渐成为提高软件测试工作效能的关键技术能力。
[0003]传统软件测试用例设计方法主要有两种,一种是基于软件功能需求分析结果,人工按照等价类划分、边界值分析、猜错法等测试用例设计方法的要求,手动编写测试内容并形成测试用例文档;另一种是构建历史相似软件技术特点的原型用例库,通过人工对用例特征进行识别和筛选,适当修改后适用于被测软件系统。
[0004]然而,以上方法主要依赖于人工设计测试用例,极易受限于测试人员工作经验和专业能力的影响,导致生成的用例质量参差不齐,用例准确率较低,由此带来的隐性漏项风险更不容易被识别;此外,依赖于人工设计测试用例的方式非常受限于人力资源,用例生成效率不足,用例量级与软件代码规模发展速度不匹配。由此可见,现有的软件测试用例生成技术存在准确率低且效率低的问题。

技术实现思路

[0005](一)解决的技术问题
[0006]针对现有技术的不足,本专利技术提供了一种基于改进遗传算法的软件测试用例智能生成方法及系统,解决了现有软件测试用例生成技术存在准确率低且效率低的问题。
[0007](二)技术方案
[0008]为实现以上目的,本专利技术通过以下技术方案予以实现:
[0009]第一方面,本专利技术首先提出了一种基于改进遗传算法的软件测试用例智能生成方法,所述方法包括:
[0010]获取初代原始用例种群;
[0011]基于改进遗传算法对所述初代原始用例种群进行择优进化处理生成有效测试用例数据集和无效及异常测试用例集;所述改进遗传算法包括在遗传算法基础上增加突变算子。
[0012]优选的,所述获取初代原始用例种群包括:
[0013]进行遗传环境与遗传参数的初始化,并基于自动语义分析法,根据软件需求及接口协议提取历史测试用例数据中符合历史用例数据特点的具备遗传环境特征的有效特征字段,然后通过编码构建所述有效特征字段的基因序列,并完成初代原始用例种群的构造。
[0014]优选的,所述基于改进遗传算法对所述初代原始用例种群进行择优进化处理生成有效测试用例数据集和无效及异常测试用例集包括:
[0015]S21、基于改进遗传算法对所述初代原始用例种群执行选择算子处理得到初代优质用例种群,然后对所述初代优质用例种群执行交叉算子处理得到次代用例种群,最后对所述次代用例种群执行变异算子处理生成有效测试用例数据集;
[0016]S22、对有效用例种群中的用例个体执行突变运算,获取无效及异常测试用例集。
[0017]优选的,所述S21、基于改进遗传算法对所述初代原始用例种群执行选择算子处理得到初代优质用例种群,然后对所述初代优质用例种群执行交叉算子处理得到次代用例种群,最后对所述次代用例种群执行变异算子处理生成有效测试用例数据集包括:
[0018]对所述初代原始用例种群执行选择算子处理得到初代优质用例种群包括:
[0019]步骤401、统计所述初代原始用例种群中每个用例个体对应覆盖被测软件代码的行数、每行代码被覆盖的次数信息,并以此计算对应代码行的适应度;
[0020]步骤402、遍历初代原始用例种群的全部个体,计算得到种群中所有个体的适应度评价值、适应度累加和,然后基于所述适应度评价值和适应度累加和计算得到个体适应度比例值;
[0021]步骤403、基于个体适应度比例值的分布情况,依据所述个体适应度比例值对种群个体分布进行区域划分,并遍历种群个体对其适应度值分属区间进行计算;
[0022]步骤404、针对每个个体随机生成[0,1)之间的概率值,通过将随机概率值与个体适应度分区进行匹配计算,筛选出符合适应度分区取值范围要求的优质个体;
[0023]步骤405,将筛选出的个体按照适应度值的高低进行重新排列组合,形成初代优质用例种群;
[0024]对所述初代优质用例种群执行交叉算子处理得到次代用例种群包括:
[0025]步骤501、设置初始交叉概率作为所述初代优质用例种群中个体进行交叉运算的判断准入条件;
[0026]步骤502、设置交叉循环迭代次数;
[0027]步骤503、基于所述初始交叉概率判断是否需要发生交叉运算,若满足需要发生交叉运算的条件,则执行步骤504;若不满足需要发生交叉运算的条件,则执行步骤505;
[0028]步骤504、当满足交叉条件时,按交叉比较值设置交叉点位置,对父辈的两条用例个体在交叉点前后的基因片段进行交换运算,形成子代用例种群;
[0029]步骤505、当不满足交叉条件时,直接将父辈用例个体的基因数据原样复制到子代基因;
[0030]步骤506、循环迭代所述交叉循环迭代次数结束后,形成次代用例种群;
[0031]对所述次代用例种群执行变异算子处理生成有效测试用例数据集包括:
[0032]步骤601、设置初始变异概率作为次代优质用例种群中个体进行变异运算的判断准入条件;
[0033]步骤602、设置变异循环迭代次数;
[0034]步骤603、基于所述初始变异概率判断是否需要发生变异运算,若满足需要发生变异运算的条件,则执行步骤604;若不满足需要发生变异运算的条件,则执行步骤602;
[0035]步骤604,当满足变异条件时,按变异比较值设置变异点位置,从有效用例基因数
据库中选取对应变异点位置处的有效特征值,并对次代用例种群个体在变异点位置处的基因值进行替换运算,形成基因变异后的个体;
[0036]步骤605,循环迭代所述变异循环迭代次数后得到有效测试用例种群。
[0037]优选的,所述S22、对有效用例种群中的用例个体执行突变运算,获取无效及异常测试用例集包括:
[0038]步骤701、确定需要进行突变处理的基因片段;
[0039]步骤702、根据所述基因片段的取值范围,按照突变类型构造突变基因库;所述突变类型包括无效边界突变、异常帧格式突变、乱码突变等数据类型;
[0040]步骤703、设置突变循环次数;
[0041]步骤704、按照突变类型,从突变基因库中相应选取突变基因值与等待突变的基因片段在各突变点位置处的基因值进行替换,形成基因突变后的个体;
[0042]步骤705、循环迭代突变循环次数结束后,对形成的各突变个体按突变类型进行排列组合,形成无效及异常测试用例集。
[0043]第二方面,本专利技术还提出了一种基于改进遗传算法的软件测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于改进遗传算法的软件测试用例智能生成方法,其特征在于,所述方法包括:获取初代原始用例种群;基于改进遗传算法对所述初代原始用例种群进行择优进化处理生成有效测试用例数据集和无效及异常测试用例集;所述改进遗传算法包括在遗传算法基础上增加突变算子。2.如权利要求1所述的方法,其特征在于,所述获取初代原始用例种群包括:进行遗传环境与遗传参数的初始化,并基于自动语义分析法,根据软件需求及接口协议提取历史测试用例数据中符合历史用例数据特点的具备遗传环境特征的有效特征字段,然后通过编码构建所述有效特征字段的基因序列,并完成初代原始用例种群的构造。3.如权利要求1所述的方法,其特征在于,所述基于改进遗传算法对所述初代原始用例种群进行择优进化处理生成有效测试用例数据集和无效及异常测试用例集包括:S21、基于改进遗传算法对所述初代原始用例种群执行选择算子处理得到初代优质用例种群,然后对所述初代优质用例种群执行交叉算子处理得到次代用例种群,最后对所述次代用例种群执行变异算子处理生成有效测试用例数据集;S22、对有效用例种群中的用例个体执行突变运算,获取无效及异常测试用例集。4.如权利要求3所述的方法,其特征在于,所述S21、基于改进遗传算法对所述初代原始用例种群执行选择算子处理得到初代优质用例种群,然后对所述初代优质用例种群执行交叉算子处理得到次代用例种群,最后对所述次代用例种群执行变异算子处理生成有效测试用例数据集包括:对所述初代原始用例种群执行选择算子处理得到初代优质用例种群包括:步骤401、统计所述初代原始用例种群中每个用例个体对应覆盖被测软件代码的行数、每行代码被覆盖的次数信息,并以此计算对应代码行的适应度;步骤402、遍历初代原始用例种群的全部个体,计算得到种群中所有个体的适应度评价值、适应度累加和,然后基于所述适应度评价值和适应度累加和计算得到个体适应度比例值;步骤403、基于个体适应度比例值的分布情况,依据所述个体适应度比例值对种群个体分布进行区域划分,并遍历种群个体对其适应度值分属区间进行计算;步骤404、针对每个个体随机生成[0,1)之间的概率值,通过将随机概率值与个体适应度分区进行匹配计算,筛选出符合适应度分区取值范围要求的优质个体;步骤405,将筛选出的个体按照适应度值的高低进行重新排列组合,形成初代优质用例种群;对所述初代优质用例种群执行交叉算子处理得到次代用例种群包括:步骤501、设置初始交叉概率作为所述初代优质用例种群中个体进行交叉运算的判断准入条件;步骤502、设置交叉循环迭代次数;步骤503、基于所述初始交叉概率判断是否需要发生交叉运算,若满足需要发生交叉运算的条件,则执行步骤504;若不满足需要发生交叉运算的条件,则执行步骤505;步骤504、当满足交叉条件时,按交叉比较值设置交叉点位置,对父辈的两条用例个体在交叉点前后的基因片段进行交换运算,形成子代用例种群;步骤505、当不满足交叉条件时,直接将父辈用例个体的基因数据原样复制到子代基
因;步骤506、循环迭代所述交叉循环迭代次数结束后,形成次代用例种群;对所述次代用例种群执行变异算子处理生成有效测试用例数据集包括:步骤601、设置初始变异概率作为次代优质用例种群中个体进行变异运算的判断准入条件;步骤602、设置变异循环迭代次数;步骤603、基于所述初始变异概率判断是否需要发生变异运算,若满足需要发生变异运算的条件,则执行步骤604;若不满足需要发生变异运算的条件,则执行步骤602;步骤604,当满足变异条件时,按变异比较值设置变异点位置,从有效用例基因数据库中选取对应变异点位置处的有效特征值,并对次代用例种群个体在变异点位置处的基因值进行替换运算,形成基因变异后的个体;步骤605,循环迭代所述变异循环迭代次数后得到有效测试用例种群。5.如权利要求3所述的方法,其特征在于,所述S22、对有效用例种群中的用例个体执行突变运算,获取无效及异常测试用例集包括:步骤701、确定需要进行突变处理的基因片段;步骤702、根据所述基因片段的取值范围,按照突变类型构造突变基因库;所述突变类型包括无效边界突变、异常帧格式突变、乱码突变等数据类型;步骤703、设置突变循环次数;步骤704、按照突变类型,从突变基因库中相应选取突变基因值与等待突变的基因片段在各突变点位置处的基因值进行替换,形成基因突变后的个体;步骤705、循环迭代突变循环次数结束后,对形成的各突变个体按突变类型进行排列组合,形成无效及异常测试用例集。6.一种基于改进遗传算法的软件测试用例智能生成系统,其特征在...

【专利技术属性】
技术研发人员:梅磊王浩宇石晓宁费雯婧郑文钰刘娜陈庆芬汪慧婷项利萍毛知钢刘鸿飞董文通
申请(专利权)人:中国电子科技集团公司第三十八研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1