[发明专利]一种单元测试方法及装置在审
申请号: | 202110773832.7 | 申请日: | 2021-07-08 |
公开(公告)号: | CN113377677A | 公开(公告)日: | 2021-09-10 |
发明(设计)人: | 林慕云;殷富成;杜卫林;李芳 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 刘熔;赵平 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 单元测试 方法 装置 | ||
本申请提供一种单元测试方法及装置,涉及软件测试领域,也可用于金融领域,所述方法包括:对被测功能代码及功能代码对应的测试代码分别进行语法分析,得到功能代码的方法信息和对象信息及测试代码的方法信息和对象信息;根据方法信息和对象信息确定进行模拟测试的点位及设置断言的点位;根据进行模拟测试的点位及设置断言的点位设置断言并启动模拟测试。本申请能够对功能代码及功能代码对应的测试代码分别进行语法分析,确定需要进行模拟测试的点位及设置断言的点位,然后设置断言并启动模拟测试。
技术领域
本申请涉及软件测试领域,可以用于金融领域,具体是一种单元测试方法及装置。
背景技术
目前市场上有一些自动生成单元测试代码的工具。这些工具可以通过对功能代码进行语法分析,结合代码分支特点进行全覆盖的单元测试代码自动生成。
但这种方法属于事后编写测试代码,即先有功能代码,后有测试代码。然而,单元测试驱动开发(UTDD)这种编程方法要求测试代码先行,即先有测试代码,后有功能代码。在编写代码的过程中功能代码与测试代码相互补全,相互完善,因此现有方法是不适用的。
另外,在测试功能代码的过程中,考虑到应尽量降低外界因素对功能代码测试的影响,往往需要设置断言(Assert),并进行模拟测试(Mock)。现有技术中,搜索需要断言(Assert)的位置及需要进行模拟测试(Mock)的位置往往依靠测试人员经验,容易出现漏搜及误搜,导致单元测试失效。
发明内容
针对现有技术中的问题,本申请提供一种单元测试方法及装置,能够对功能代码及功能代码对应的测试代码分别进行语法分析,确定需要进行模拟测试的点位及设置断言的点位,然后设置断言并启动模拟测试。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种单元测试方法,包括:
对被测功能代码及所述功能代码对应的测试代码分别进行语法分析,得到所述功能代码的方法信息和对象信息及所述测试代码的方法信息和对象信息;所述方法信息包括方法所属的代码段、方法所属的类、方法被调用的位置及历史模拟测试点位;所述对象信息包括对象所属的代码段、对象所属的类、对象所属的方法、对象被调用的位置及历史断言设置点位;
根据所述方法信息和对象信息确定进行模拟测试的点位及设置断言的点位;
根据所述进行模拟测试的点位及设置断言的点位设置断言并启动模拟测试。
进一步地,所述对被测功能代码及所述功能代码对应的测试代码分别进行语法分析,得到所述功能代码的方法信息和对象信息及所述测试代码的方法信息和对象信息,包括:
对所述功能代码及所述测试代码分别进行语法分析,得到所述功能代码的代码结构和关键词及所述测试代码的代码结构和关键词;
根据所述功能代码的代码结构及关键词确定所述功能代码的方法信息及对象信息;
根据所述测试代码的代码结构和关键词确定所述测试代码的方法信息和对象信息。
进一步地,所述根据所述方法信息和对象信息确定进行模拟测试的点位及设置断言的点位,包括:
根据所述方法信息和对象信息确定有测试注解的方法、对象及被所述有测试注解的方法所调用过的方法、对象;
在有测试注解的方法、对象及被所述有测试注解的方法所调用过的方法、对象中,根据所述方法信息和对象信息确定使用Java工具开发包访问网络及系统IO进程的第一方法,并将所述第一方法确定为所述进行模拟测试的点位中的必要点位;
确定与所述第一方法属于同一个类的第二方法,将所述第二方法确定为所述进行模拟测试的点位中的建议点位;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110773832.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用于挂篮的后锚辅助系统
- 下一篇:一种营销裂变系统及方法