当前位置: 首页 > 专利查询>四川大学专利>正文

一种基于损失函数的单元测试用例自动生成方法技术

技术编号:33528095 阅读:83 留言:0更新日期:2022-05-19 01:53
本发明专利技术公开了一种基于损失函数的单元测试用例自动生成方法,属于软件测试用例生产技术领域,在遗传算法的执行过程中,根据测试用例种群的路径覆盖情况,动态改变后续种群的分布,以保证整体数据分布的平衡性,并利用分支信息优化自适应交叉变异算子,最终达到自动生成规模尽可能小且高覆盖的有效测试用例集的目的,本方法解决了传统模型中初值依赖、收敛早熟、局部寻优能力滞后等缺陷,保证了生成的测试用例平均覆盖率达到95%,提升了搜索效率及数据有效率。及数据有效率。及数据有效率。

【技术实现步骤摘要】
一种基于损失函数的单元测试用例自动生成方法


[0001]本专利技术涉及软件测试用例生产
,确切地说涉及一种基于损失函数的单元测试用例自动生成方法。

技术介绍

[0002]软件测试是软件质量保证的核心环节,是软件产品生命周期内质量保证不可缺少的有效措施。
[0003]软件测试方法可大类分为黑盒测试及白盒测试。黑盒测试注重的是在不清楚内部结构和细节的情况下验证软件功能可用性;白盒测试则是基于程序源码内部逻辑知识,并通过特定的测试覆盖率标准如语句覆盖率、分支覆盖率等,来检测编码过程中存在的潜在错误。
[0004]目前而言,完整的软件测试过程最多可占项目开发总成本的40%,而早期及时通过软件测试可大大降低修复软件生命周期中的缺陷的成本。但是在现有技术中,仍有相当数量的软件产品是依靠手工编写测试用例来进行软件测试过程的,这种人工编写测试用例的方式需保证测试人员有较丰富的行业经验以及较高的技术水平,并且即便是在有高质量测试人员情况下,这种基于人工编写的方式依旧会花费较高的成本(包括时间成本和人力成本),也不能完全保证所编写的测试用例的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于损失函数的单元测试用例自动生成方法,其特征在于,包括以下步骤:步骤1,通过静态预分析的方式对被测程序片段进行分析,收集被测程序片段的关键信息收集,所述关键信息包括被测程序的分支节点集合、给定的路径集合、以及被测程序的输入与范围。步骤2,根据所述步骤1中收集到的被测程序片段的关键信息,进行路径的优化,并对被测程序片段进行统一插桩处理;步骤3,初始化种群数据算法的实验参数,根据目标函数、通过适应度评估函数对种群数据算法随机生成的种群数据初值进行评估,完成对种群数据初值的随机生成的优化,然后对应步骤2中的每一条路径生成对应的种群数据;步骤4,将步骤3中生成的种群数据输入到损失函数中,通过迭代选择过程判断每个种群数据的个体累计是否符合其对对应路径的分支节点的覆盖预期,完成对每个种群数据的个体择优;步骤5,根据损失函数验证方式,通过累计各个路径、选取数目相对较多和较少的分支种群集合进行交叉变异,形成新一代种群数据的有效输入,这里相对较多和较少是根据先验和数目差异进行设定的阈值标准;步骤6,根据终止条件判断是否继续进行种群数据的迭代,若不满足终止条件,则循环所述步骤5及步骤6;否则,终止程序并输出个体结果数据为测试用例。2.如权利要求1所述的一种基于损失函数的单元测试用例自动生成方法,其特征在于:在所述步骤2中,所述路径的优化,具体的,是根据所述步骤1中收集到的分支节点集合T={t1,t2,

,t
n
}、以及路径信息集合P={p1,p2,

,p
n
},计算使p
i
∈T,其中p
i
代表路径信息集合P的子集中没有重复、且所有子集的并集涵盖被测程序片段的全部分支节点集合T,若存在p
m
∈p
n
、即存在一个子集被另一个子集完全涵盖时,则仅保留路径最长的子集p
m
。3.如权利要求1所述的一种基于损失函数的单元测试用例自动生成方法,其特征在于:所述步骤3中的适应度评估函数为且i≤N;式中,N代表种群数据待选择的个体总数,u
i
为路径集合中个体路径p<...

【专利技术属性】
技术研发人员:王俊峰傅瑞华李凡方智阳
申请(专利权)人:四川大学
类型:发明
国别省市:

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

1