【技术实现步骤摘要】
测试用例的生成方法及装置
[0001]本说明书一个或多个实施例涉及测试
,尤其涉及一种测试用例的生成方法及装置。
技术介绍
[0002]为了确保业务代码的正确性和可靠性,需要编写测试用例对其测试。
[0003]在业务代码中,通常包含大量空值(Nu l l)判断逻辑,如果要针对该类逻辑进行测试,需要将该类逻辑涉及的判断对象赋为空值。
[0004]传统技术中,为了能够对空值判断逻辑进行测试,在编写测试用例时,针对每个创建的对象均以一定概率赋为空值,之后通过不断迭代来决定是否保留该空值。然而,该种随机赋空值的方法,会存在将对应取值不包括空值的对象赋为空值,由此会增加一些无效的测试,进而降低了测试效率。
技术实现思路
[0005]本说明书一个或多个实施例描述了一种测试用例的生成方法及装置,可以大大提升测试用例的准确性。
[0006]第一方面,提供了一种测试用例的生成方法,包括:
[0007]在针对被测试的业务代码编写测试用例的过程中,对于针对所述业务代码中的第一赋值对象创建的第一实例,获取所述第一实例在所述测试用例中的当前上下文信息;
[0008]基于所述当前上下文信息查询对象信息集;其中,所述对象信息集中存储有所述业务代码中对应取值包括空值的各赋值对象各自的上下文信息;
[0009]根据查询结果,判断所述第一实例的取值是否包括空值;
[0010]至少根据判断结果和所述第一实例,生成用于测试所述业务代码的测试用例。
[0011]第二方面,提
【技术保护点】
【技术特征摘要】
1.一种测试用例的生成方法,包括:在针对被测试的业务代码编写测试用例的过程中,对于针对所述业务代码中的第一赋值对象创建的第一实例,获取所述第一实例在所述测试用例中的当前上下文信息;基于所述当前上下文信息查询对象信息集;其中,所述对象信息集中存储有所述业务代码中对应取值包括空值的各赋值对象各自的上下文信息;根据查询结果,判断所述第一实例的取值是否包括空值;至少根据判断结果和所述第一实例,生成用于测试所述业务代码的测试用例。2.根据权利要求1所述的方法,其中,所述对象信息集通过以下步骤获得:获取所述业务代码;利用状态机,对所述业务代码对应的字节码指令序列集进行分析,识别出所述各赋值对象;获取所述各赋值对象各自的上下文信息,并基于所述各赋值对象各自的上下文信息形成所述对象信息集。3.根据权利要求2所述的方法,其中,所述利用状态机,对所述业务代码对应的字节码指令序列集进行分析,包括:对于任意的第一指令序列,对其中的各条指令进行倒序排列;根据倒序排列的各条指令,对所述状态机的状态从第一预定状态开始向前回溯;其中包括,将当前指令与当前状态进行匹配,若匹配,则向前回溯到前一状态,并将当前指令更新为下一指令,直至达到回溯结束条件;根据回溯过程中所得到的各个状态中的至少部分状态,确定对应的赋值对象。4.根据权利要求3所述的方法,其中,所述回溯结束条件包括,当前状态为第二预定状态。5.根据权利要求4所述的方法,其中,所述字节码指令序列集中的各条指令包括以下中的至少一项:变量调用指令、成员变量调用指令、函数调用指令和跳转指令;所述第一预定状态为所述跳转指令对应的状态;所述第二预定状态包括以下中的任一项:变量调用指令对应的状态、成员变量调用指令对应的状态和函数调用指令对应的状态。6.根据权利要求2所述的方法,其中,所述状态机至少包括跳转指令对应的状态;所述对所述字节码指令序列集中的各条指令序列进行分析,包括:从所述字节码指令序列集中筛选出包含跳转指令的各候选指令序列,得到候选指令序列集;对所述候选指令序列集进行分析。7.根据权利要求1所述的方法,其中,所述判断所述第一实例的取值是否包括空值,包括:若所述查询结果指示,所述对象信息集中存在与所述当前上下文信息相匹配的目标上下文信息,则判断所述第一实例的取值包括空值;若所述查询结果指示,所述对象信息集中不存在与所述当前上下文信息相匹配的目标上下文信息,则判断所述第一实例的取值不包括空值。8.根据权利要求1所述的方法,其中,所述生成用于测试所述业务代码的测试用例,包括:
若所述判断结果指示,所述第一实例的取值包括空值,则按照预定概率将所述第一实例的取值赋为空值;至少基于赋值后的所述第一实例,生成用于测试所述业务代码的测试用例;若所述判断结果指示,所述第一实例的取值不包括空值,则将所述第一实例的取值赋为预定值;至少基于赋值后的所述第一实例,生成用于测试所述业务代码的测试用例。9.根据权利要求1所述的方法,其中,所述第一赋值对象包括以下中的任一项:成员变量、函数入参以及函数返回值。10.根据权利要求1所述的方法,其中,所述各赋值对象各自的上下文信息包括以下中的至少一项:对象类型、对象所属函数、对象调用函数、对象所属类和成员变量指示。11.根据权利要求1所述的方法,其中,所述业务代码为对应于目标类的目标函数的代码,所述测试用例用于对所述目标函数进行单元测试。12.一种测试用例的生成装置,包括:获取单元,用于在针对被测试的业务代码编写测试用例的过程中,对于针对所述业务代码中的第一赋值对象创建的第一实例,获取所述第一实例在所述测试用例中的当前上下文信息;查询单元,...
【专利技术属性】
技术研发人员:张剑飞,周海莲,赵红兵,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。