【技术实现步骤摘要】
单元测试方法、装置、电子设备和存储介质
[0001]本申请实施例涉及金融科技(Fintech)的软件测试
,尤其涉及一种单元测试方法、装置、电子设备和计算机存储介质。
技术介绍
[0002]随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
[0003]在软件研发过程中,软件需要经历单元测试、集成测试、系统测试、回归测试等阶段,以保证软件各个基本组成单位、各个接口的质量,验证软件功能、界面的正确,同时对发现的错误进行修复。
[0004]在单元测试中,存在代码模块需要依赖外部的类或者接口,对于某些不容易构造或者不容易获取的对象,需要创建适配的模拟对象,定义模拟对象适配出所需类或者接口进行测试。在实际应用中,由于测试返回的结果受到软件、硬件和系统环境等多方面的影响,测试阶段需要正常、异常各种各样的返回结果。
[0005]在相关技术中,针对特定领域测试依赖对象,生成特定类型Mock object。对一般类型的测试依赖对象,开发者通常需要手动创建Mock object,难以给Mock object指定合适的行为,无法适配任意的测试依赖对象。因此,如何在单元测试时提高模拟对象的适用性成为亟待解决的重要问题。
技术实现思路
[0006]本申请实施例提供了一种单元测试方法、装置、电子设备和计算机存储介质,可以在单元测试时提高模拟对象的适用性。
[0007]本申请实施例提供的一种单元 ...
【技术保护点】
【技术特征摘要】
1.一种单元测试方法,其特征在于,包括:获取第i种群的多个语句集合,每个所述语句集合包括至少一个语句;所述语句用于定义模拟对象的行为;根据每个所述语句对应的变异操作符,对每个所述语句进行变异操作,得到变异操作结果;对所述变异操作结果中的两个语句集合进行交叉互换,得到第i+1种群;若确定所述第i+1种群中存在符合测试用例的测试断言的语句集合,则采用所述符合测试断言的语句集合定义所述模拟对象;基于所述模拟对象对所述测试用例进行单元测试。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在i为大于1的整数的情况下,若确定第i
‑
1种群中不存在符合测试用例的测试断言的语句集合,则获取所述第i
‑
1种群中每个语句集合的适应度,根据所述每个语句集合的适应度,将所述第i
‑
1种群中适应度大于预设阈值的语句集合作为第i种群的语句集合;或者,根据所述每个语句集合的适应度,确定所述第i
‑
1种群中每个语句集合被抽中的概率;根据所述每个语句集合被抽中的概率,在所述第i
‑
1种群的多个语句集合中抽样得到所述第i种群的语句集合。3.根据权利要求2所述的方法,其特征在于,所述第i
‑
1种群中包括M个语句集合;所述获取所述第i
‑
1种群中每个语句集合的适应度,包括:确定至少一个适应度函数和每个所述适应度函数的权重系数;获取所述第i
‑
1种群中第j语句集合在每个所述适应度函数下的计算结果;根据所述第j语句集合在每个所述适应度函数下的计算结果和每个所述适应度函数的权重系数,获取所述第j语句集合的适应度;在j依次取1至M的情况下,获取所述第i
‑
1种群中每个语句集合的适应度。4.根据权利要求1所述的方法,其特征在于,所述第i种群中包括N个语句集合;所述对所述变异操作结果中的两个语句集合进行交叉互换,得到第i+1种群,包括:确定所述N个语句集合中的两个语句集合,对所述两个语句集合中语句类型相同的语句进行交叉互换,产生所述两个语句集合的两个子代;将所述两个语句集合中的至少一个和所述两个子代中的至少一个,加入所述第i+1种群中,得到所述第i+1种群中的N个语句集合。5.根据权利要求3所述的方法,其特征在于,所述确定至少一个适应度函数,包括以下任一项:根据语句集合中生成的语句条数和成功执行的语句条数,创建适应度函数;根据测试用例能否执行到测试断言前的状态分布,创建适应度函数;根据测试断言中断言语句的语句数以及每个断言语句的期望值和实际值的编辑距离,创建适应度函数;根据在模拟对象中所有方法调用的集合和在模拟对象中已经指定了行为的方法调用的集合,创建适应度函数;根据测试断言中已被满足的断言语句的语句数和测试断言中所有断言语句的语句数,创建适应度函数。
6.根据权利要求5所述的...
【专利技术属性】
技术研发人员:张成志,朱恒成,魏莉力,盛勤,宋丽红,张兵,
申请(专利权)人:香港科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。