一种代码测试、测试用例生成的方法及装置制造方法及图纸

技术编号:34400514 阅读:35 留言:0更新日期:2022-08-03 21:39
本说明书公开了一种代码测试、测试用例生成的方法及装置,可以在待测试代码测试时,准确的确定出在待测试代码在运行过程中所调用的泛型方法和发生强制类型转换的方法的实际返回值类型,从而可以基于确定出的实际返回值类型,对待测试代码进行测试,进而提升了测试结果的准确性。结果的准确性。结果的准确性。

【技术实现步骤摘要】
一种代码测试、测试用例生成的方法及装置


[0001]本说明书涉及计算机
,尤其涉及一种代码测试、测试用例生成的方法及装置。

技术介绍

[0002]在软件测试的过程中,由于待测试方法可能会与其他方法之间存在较高的依赖,从而会导致测试人员不能单独针对待测试方法进行测试,进而影响了测试工作的进行,因此,为了解决这个问题,软件的测试人员通常会通过Mock服务(即,依赖服务替身),用来代替与待测试方法相关联的其他方法,来进行待测试方法的测试工作。
[0003]但是,由于在使用Mock服务时,需要确定待测试方法所调用的方法的返回值类型,对于普通的方法来说,可以直接确定出方法的返回值类型,而对于一些返回值需要在根据实际运行时,才能确定出具体类型的方法而言,往往会随机确定一个类型作为该方法的返回值类型,这样就降低了生成的测试用例的准确性,影响了测试用例的覆盖率。
[0004]因此,如何能够在进行软件的测试工作时,有效的确定出待测试方法的返回值类型,进而提升待测试方法的测试结果的准确性,则是一个亟待解决的问题。

技术实现思路

...

【技术保护点】

【技术特征摘要】
1.一种代码测试的方法,包括:获取待测试代码;根据所述待测试代码所调用的方法所需参数的类型,和/或对所述待测试代码对应的字节码进行分析后得到的分析结果,确定在所述待测试代码测试时所调用的方法对应的实际返回值类型,所述待测试代码测试时所调用的方法的方法类型包括:泛型方法以及强制类型转换中的至少一种;根据所述实际返回值类型,得到针对所述待测试代码的测试结果。2.如权利要求1所述的方法,根据所述待测试代码所调用的方法所需参数的类型,和/或对所述待测试代码对应的字节码进行分析后得到的分析结果,确定在所述待测试代码测试时所调用的方法对应的实际返回值类型,具体包括:获取所述待测试代码所调用的方法的代码;根据获取到的所述待测试代码所调用的方法的代码,确定在所述待测试代码测试时所调用的方法的实际返回值类型,与所述待测试代码所调用的方法所需参数类型的关联关系;根据所述关联关系,以及所述待测试代码所调用的方法所需参数的类型,确定在所述待测试代码测试时所调用的方法对应的实际返回值类型。3.如权利要求2所述的方法,根据所述实际返回值类型,得到针对所述待测试代码的测试结果,具体包括:根据所述关联关系,创建方法数据结构MethodDescripter结构,所述MethodDescripter结构包括:调用方法的实际返回值类型、MethodDescripter结构被调用的次数、调用方法的方法名、调用方法的所属类名、调用方法的传入参数;根据所述MethodDescripter结构,以及所述实际返回值类型,生成所述待测试代码所调用的方法对应的mock方法;通过所述mock方法,得到针对所述待测试代码的测试结果。4.如权利要求1所述的方法,根据所述待测试代码所调用的方法所需参数的类型,和/或对所述待测试代码对应的字节码进行分析后得到的分析结果,确定在所述待测试代码测试时所调用的方法对应的实际返回值类型,具体包括:通过对所述待测试代码对应的字节码的分析,确定从所述待测试代码所调用的方法中确定出方法类型为强制类型转换的方法,作为目标方法;在对所述待测试代码进行测试时,根据所述目标方法,确定出在所述待测试代码所调用的方法对应的实际返回值类型。5.如权利要求4所述的方法,在对所述待测试代码进行测试时,根据所述目标方法,确定出在所述待测试代码所调用的方法对应的实际返回值类型之前,所述方法还包括:将所述目标方法在所述待测试代码中对应的代码行号,与所述目标方法的返回值经强制类型转换后的实际返回值类型的对应关系进行保存;在对所述待测试代码进行测试时,根据所述目标方法,确定出在所述待测试代码所调用的方法对应的实际返回值类型,具体包括:在所述待测试代码的测试过程中,确定所述待测试代码所调用的方法为强制类型转换的方法的代码行号,作为目标行号;
根据所述目标行号,从预先保存的对应关系中查询出所述待测试代码所调用的方法对应的实际返回值类型。6.如权利要求5所述的方法,根据所述实际返回值类型,得到针对所述待测试代码的测试结果,具体包括:根据从预先保存的对应关系中查询出所述待测试代码所调用的方法对应的实际返回值类型,生成所述待测试代码所调用的方法对应的mock方法;通过所述mock方法,得到针对所述待测试代码的测试结果。7.一种测试用例生成的方法,包括:获取各测试用例;针对每个测试用例,通过上述权利要求1~6任一项所述的方法,对设定代码进行测试,得到该测试用例对应的测试结果;根据每个测试用例对应的测试结果,确定是否满足预设的测试条件;若确定不满足所述测试条件,重新生成各测试用例,并根据重新生成的各测试用例,对所述设定代码进行测试,直到满足所述测试条件为止,得到满足所述测试条件时生成的测试用例。8.如权利要求7所述的方法,重新生成各测试用例,具体包括:从各测试用例中选取至少部分测试用例进行两两组合,得到各测试用例组合;针对每个测试用例组合,将该测试用例组合中包含的两个测试用例内的同类型参数进行加权,得到重新生成的测试用例。9.如权利要求7所述的方法,重新生成各测试用例,具体包括:从各测试用例中选取至少部分测试用例;针对选取出的每个测试用例,将该测试用例中包含的至少部分参...

【专利技术属性】
技术研发人员:张剑飞周海莲周智泉赵红兵
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1