[发明专利]基于测试用例自动生成算法的单元测试自动执行方法有效
申请号: | 201910819271.2 | 申请日: | 2019-08-31 |
公开(公告)号: | CN110543421B | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 黄翰;连木明;朱浩锋;植浩聪;谌小虎;刘方青;杨忠明;汪疆平 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 何淑珍;江裕强 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了基于测试用例自动生成算法的单元测试自动执行方法。所述方法包括以下步骤:首先对被测试程序的代码进行预处理后进行词法分析,先建立生成测试代码的路径图,并将控制流图输出到文件,然后在经过预处理后的代码中进行定点代码插入,编译插入代码后的文件。然后根据测试用例自动生成算法生成测试用例,调用用户代码,遍历用户代码的每个代码块,计算fitness的算法适应值,获取fitness适应值并生成测试用例对应的路径,当判断路径是否全覆盖或者运行超时退出。本发明适用于软件开发过程中的单元测试,可以通过计算机程序自动生成测试用例进行代码测试以及自动生成测试报告,大大降低了人力资源成本和时间成本。 | ||
搜索关键词: | 基于 测试 自动 生成 算法 单元测试 执行 方法 | ||
【主权项】:
1.基于测试用例自动生成算法的单元测试自动执行方法,其特征在于,包括以下步骤:/nS1、对输入的源程序即用户代码进行文件预处理,使其符合词法分析要求的语法结构;/nS2、递归遍历用户代码,对预处理后的源程序进行词法分析,生成控制流图即测试代码的路径图,记录程序所有可能执行路径的路径编码,记为路径表;/nS3、递归遍历用户代码,对预处理后的源程序进行词法分析,并在预处理后的源程序中的条件语句块和循环语句块中分别插入代码,得到新组织好的代码;/n插入的代码即测试代码分为两部分,第一部分用于当用户代码执行到条件语句块或者循环语句块时,能实时记录该插入的代码块编号并将该代码块加入到当前测试用例的编码路径中,这一部分插入的代码也用于记录用户代码的输入变量执行到该代码块时的实际值;第二部分插入的代码包括对输入变量进行处理的测试用例自动生成算法的代码和调用用户代码函数的代码;/nS4、将新组织好的代码写入到一个新的源程序文件中并调用C++编译器对新的源程序文件中的代码进行编译,得到可执行文件;/nS5、运行步骤S4中生成的可执行文件,并将用户代码中的每个函数参数的上界和下界传入到新的源程序文件中,并将fitness适应值初始化为0;/nS6、测试用例自动生成算法根据传入的参数的上界、参数的下界和fitness适应值生成一个测试用例,步骤S4中的新的源程序文件编译后生成的程序调用用户代码并将测试用例传入用户代码中;/nS7、在用户代码执行即源程序运行的过程中,步骤S4中的新源程序文件编译后生成的程序实时记录用户代码进入到的代码块编号以及输入参数在该代码块开始时的具体值;/nS8、当用户代码执行完并返回后,步骤S4中的新源程序文件编译后生成的程序获取fitness适应值的结果,并生成和记录该测试用例对应的路径编码;/nS9、将步骤S2中生成的路径表与通过传入测试用例生成的路径编码作比较,若覆盖率已经达到100%或者运行已经超时则进入步骤S10,否则,重复步骤S5,S6,S7,S8;/nS10、生成路径编码与测试用例的映射关系,每一个路径编码仅对应第一次达到该路径时的测试用例;/nS11、生成测试报告,内容包括测试用例与路径编码的映射关系以及路径覆盖率。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910819271.2/,转载请声明来源钻瓜专利网。