[发明专利]测试用例自动生成方法及系统有效
申请号: | 201810451163.X | 申请日: | 2018-05-11 |
公开(公告)号: | CN108595341B | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 姜宇;杨镒箫;任谦;李天池;顾明;孙家广 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 11002 北京路浩知识产权代理有限公司 | 代理人: | 王莹;吴欢燕<国际申请>=<国际公布>= |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 变异测试 测试 影响结果 测试用例自动生成 启发式搜索 符号执行 函数序列 反馈机制 路径信息 人工参与 生成测试 预设条件 运行效率 重复执行 自动化 | ||
1.一种测试用例自动生成方法,其特征在于,包括:
S1,基于对待测程序中不同待测类下的待测函数进行符号执行,生成变量参数类型为基本数据类型的测试用例种子,并基于启发式搜索对所述测试用例种子进行变异,得到第一变异测试用例;
S2,通过所述待测函数分别执行所述测试用例种子与所述第一变异测试用例,分别获取所述测试用例种子的第一执行路径信息和所述第一变异测试用例的第二执行路径信息,并根据所述第一执行路径信息和所述第二执行路径信息,确定所述变异的影响结果;
S3,根据所述影响结果,对所述测试用例种子或所述第一变异测试用例进行下一次变异,得到第二变异测试用例;
S4,将所述第二变异测试用例作为所述第一变异测试用例,重复执行S2-S3,直至满足预设条件。
2.根据权利要求1所述的方法,其特征在于,S1中基于对待测程序中不同待测类下的待测函数进行符号执行,生成变量参数类型为基本数据类型的测试用例种子,具体包括:
生成用于所述待测函数进行符号执行的主入口函数,并确定选取所述待测函数中属于基本数据类型的变量参数作为符号;
基于所述主入口函数及所述符号,对所述待测函数进行符号执行,并将符号执行结果输出至文本格式的符号执行结果文件;
通过正则表达式匹配,从所述符号执行结果文件中解析符号执行结果,根据所述待测函数的格式需求,生成变量参数类型为基本数据类型的测试用例种子。
3.根据权利要求1所述的方法,其特征在于,S1中所述基于启发式搜索对所述测试用例种子进行变异,具体包括:
基于预设概率模型确定变异操作和所述测试用例种子中需要变异的目标变量参数,并基于所述变异操作,对所述目标变量参数的取值进行变异;
其中,所述预设概率模型包括变异操作概率模型和变量参数权重概率模型。
4.根据权利要求3所述的方法,其特征在于,所述第一执行路径信息包括所述测试用例种子覆盖的路径中所述目标变量参数的取值为第一值,所述第二执行路径信息包括所述第一变异测试用例覆盖的路径中所述目标变量参数的取值为第二值;所述影响结果包括积极影响和消极影响;
相应地,S2中所述根据所述第一执行路径信息和所述第二执行路径信息,确定所述变异操作的影响结果,具体包括:
若判断获知所述第二值相比于所述第一值,与所述测试用例种子覆盖的路径中所述目标变量参数的目标值更接近,则确定所述变异操作的影响结果为积极影响;
若判断获知所述第一值相比于所述第二值,与所述目标值更接近,则确定所述变异操作的影响结果为消极影响。
5.根据权利要求4所述的方法,其特征在于,S2之后还包括:
根据所述影响结果,更新所述变异操作概率模型中各变异操作的概率,以及所述变量参数权重概率模型中各变量参数权重。
6.根据权利要求5所述的方法,其特征在于,S3具体包括:
基于更新后的预设概率模型确定下一次变异的变异操作和所述测试用例种子中需要变异的目标变量参数,并对所述测试用例种子或所述第一变异测试用例进行下一次变异。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述满足预设条件包括:达到预设时间或生成预设数量个目标测试用例;
所述目标测试用例为覆盖所述待测函数预设分支的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810451163.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车主动安全系统测试场景的自动生成方法
- 下一篇:单元测试方法和装置