[发明专利]一种单元测试脚本的生成方法及装置在审
申请号: | 202110843856.5 | 申请日: | 2021-07-26 |
公开(公告)号: | CN113448874A | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 张健;徐海栋;王可;李亚南 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 刘熔;赵平 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 单元测试 脚本 生成 方法 装置 | ||
本发明提供一种单元测试脚本的生成方法及装置,可用于金融领域或其他技术领域。所述方法包括:导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;获取目标源代码,并将所述目标源代码转换为抽象语法树;根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。所述装置用于执行上述方法。本发明实施例提供的单元测试脚本的生成方法及装置,提高了单元测试脚本的覆盖率和有效性。
技术领域
本发明涉及计算机技术领域,具体涉及一种单元测试脚本的生成方法及装置。
背景技术
单元测试驱动开发(Unit Test Driven Development,简称UTDD),是敏捷开发中的一项核心实践和技术,其原理是在开发功能代码之前,先编写单元测试用例代码,具有降低开发者负担和快速反馈等优点。
现有技术中,单元测试脚本的算法和工具主要基于源代码的解析,采用自然语言处理的方式生成脚本或通过全量模拟(Mock)的方式产出单元测试脚本,并且源代码自动解析出的脚本可读性和可维护性差,若程序较为复杂,往往只能覆盖异常分支,无法覆盖具有价值的业务代码。因此,如何通过UTDD的方式生成单元测试脚本,成为本领域需要解决的重要课题。
发明内容
针对现有技术中的问题,本发明实施例提供一种单元测试脚本的生成方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种单元测试脚本的生成方法,包括:
导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;
获取目标源代码,并将所述目标源代码转换为抽象语法树;
根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。
进一步地,所述单元测试驱动开发的设计案例采用预设模版对业务功能进行描述,包括至少一个表达式语句;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:
为每个表达式语句创建一个对应的方法名,并将每个表达式语句作为对应的方法名的注解。
进一步地,所述单元测试脚本的生成方法还包括:
为每个表达式语句对应的方法名补充案例设计描述。
进一步地,所述将所述目标源代码转换为抽象语法树包括:
对所述目标源代码的类、方法和成员变量进行解析,获得所述目标源代码的抽象语法树。
进一步地,所述成员变量包括外部成员变量;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:
根据所述外部成员变量生成模拟语句,并声明所述外部成员变量。
进一步地,所述单元测试脚本的生成方法还包括:
根据所述单元测试脚本生成单元测试驱动开发复核文档。
另一方面,本发明提供一种单元测试脚本的生成装置,包括:
导入模块,用于导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;
转换模块,用于获取目标源代码,并将所述目标源代码转换为抽象语法树;
生成模块,用于根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。
进一步地,所述单元测试驱动开发的设计案例采用预设模版对业务功能进行描述,包括至少一个表达式语句;相应地,所述生成模块具体用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110843856.5/2.html,转载请声明来源钻瓜专利网。