[发明专利]一种基于黑盒函数与机器学习的代码测试生成方法和装置在审
申请号: | 201810442423.7 | 申请日: | 2018-05-10 |
公开(公告)号: | CN108763064A | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 卜磊;梁永隽;段玉超;闾乐成;张秋萍;张时雨;王林章;李宣东 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏银创律师事务所 32242 | 代理人: | 孙计良 |
地址: | 210001 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于黑盒函数与机器学习的代码测试生成方法和装置。本发明通过对被测程序代码静态分析,提取先前测试未覆盖的节点所对应的未覆盖路径,然后将未覆盖路径上的复杂结构的程序代码用黑盒函数打包后,采用基于学习验证的约束求解器和符号执行分析器进行验证求解,得到能够覆盖先前测试未覆盖的节点的测试用例数据,从而使得测试工程师能够利用这些测试用例数据进行回归测试从而测试覆盖先前测试未覆盖的节点。本发明将被测程序中的复杂代码替换成黑盒函数,减少了符号执行过程中对复杂代码片段的分析,将更多系统资源分配在对目标结点覆盖的求解上,从而提高了程序分析效率和目标节点的覆盖率。 | ||
搜索关键词: | 覆盖 黑盒 测试 测试用例数据 方法和装置 被测程序 代码测试 符号执行 机器学习 求解 验证 代码静态分析 测试工程师 多系统资源 约束求解器 程序代码 程序分析 代码片段 代码替换 复杂结构 回归测试 目标节点 分析器 结点 打包 覆盖率 分配 分析 学习 | ||
【主权项】:
1.一种基于黑盒函数与机器学习的代码测试生成方法,其特征在于,该方法包含以下步骤:S1:获取被测程序代码和未覆盖节点;所述未覆盖节点为先前程序代码测试时未覆盖到的程序节点;S2:通过对被测程序代码的静态分析,提取未覆盖路径;所述未覆盖路径为包含未覆盖节点的路径;S3:静态分析所述未覆盖路径,找出其中的复杂程序代码片段;S4:抽取所述复杂程序代码片段组成黑盒函数,并将所述未覆盖路径中的所述复杂程序代码片段替换成对所述黑盒函数的调用后,形成包含所述黑盒函数和未覆盖节点的新程序;S5:对包含所述黑盒函数和未覆盖节点的新程序使用符号执行分析器进行分析,并通过基于学习验证的约束求解器进行求解得到能够覆盖所述未覆盖节点的测试用例数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810442423.7/,转载请声明来源钻瓜专利网。