[发明专利]单元测试方法及装置、电子设备和存储介质在审
申请号: | 202211200156.5 | 申请日: | 2022-09-29 |
公开(公告)号: | CN115587030A | 公开(公告)日: | 2023-01-10 |
发明(设计)人: | 张成志;魏莉力;朱恒成;盛勤;张兵;宋丽红 | 申请(专利权)人: | 深圳前海微众银行股份有限公司;香港科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 刘晖铭;蒋雅洁 |
地址: | 518052 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 单元测试 方法 装置 电子设备 存储 介质 | ||
本申请实施例公开了一种单元测试方法及装置、电子设备和存储介质,所述方法包括:确定当前语句群体,所述当前语句群体中包括至少两个语句集合,每一所述语句集合中包括至少一个语句子集,每一所述语句子集包括用于定义模拟对象的行为语句和所述行为语句的至少一条依赖语句;对所述当前语句群体进行迭代处理,得到下一语句群体;基于第一测试用例的断言部分和所述下一语句群体,确定目标语句集合,所述目标语句集合用于定义所述模拟对象;基于所述模拟对象对所述第一测试用例进行所述单元测试。
技术领域
本申请实施例涉及但不限于软件测试技术领域,尤其涉及一种单元测试方法及装置、电子设备和存储介质。
背景技术
单元测试(Unit Testing),是指对软件中的最小可测试单元进行检查和验证。在单元测试中,由于测试用例中的部分代码模块存在依赖对象(例如,外部的类、接口等),而这些依赖对象难以获取或创建,此时需要创建适配的模拟对象(Mock Object)用于替代依赖对象进行该单元测试。
在相关技术中,用户可以根据实际场景需求,手动创建的Mock Object,并利用桩代码(Stub Code)来指定该Mock Object的行为,而这样人为设定的行为,使得该模拟对象及其行为只能适配于当前场景,而无法适配于其它场景,存在准确度低、适配度单一等问题。同时,在对Stub Code进行迭代更新的过程中,一方面,由于搜索空间过大,使得搜索效率低;另一方面,由于对个体质量的评估过于粗糙,存在个体准确度不高、且容易筛除较好的个体等问题。
发明内容
有鉴于此,本申请实施例提供一种单元测试方法及装置、电子设备、存储介质和计算机程序产品。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种单元测试方法,所述方法包括:
确定当前语句群体,所述当前语句群体中包括至少两个语句集合,每一所述语句集合中包括至少一个语句子集,每一所述语句子集包括用于定义模拟对象的行为语句和所述行为语句的至少一条依赖语句;
对所述当前语句群体进行迭代处理,得到下一语句群体;
基于第一测试用例的断言部分和所述下一语句群体,确定目标语句集合,所述目标语句集合用于定义所述模拟对象;
基于所述模拟对象对所述第一测试用例进行所述单元测试。
第二方面,本申请实施例提供一种单元测试装置,所述装置包括:
第一确定模块,用于确定当前语句群体,所述当前语句群体中包括至少两个语句集合,每一所述语句集合中包括至少一个语句子集,每一所述语句子集包括用于定义模拟对象的行为语句和所述行为语句的至少一条依赖语句;
迭代模块,用于对所述当前语句群体进行迭代处理,得到下一语句群体;
第二确定模块,用于基于第一测试用例的断言部分和所述下一语句群体,确定目标语句集合,所述目标语句集合用于定义所述模拟对象;
测试模块,用于基于所述模拟对象对所述第一测试用例进行所述单元测试。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时实现上述方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司;香港科技大学,未经深圳前海微众银行股份有限公司;香港科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211200156.5/2.html,转载请声明来源钻瓜专利网。