System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件测试,尤其涉及一种测试方法、装置及存储介质。
技术介绍
1、近年来,随着软件技术的飞速发展以及软件快速迭代,软件质量的稳定性和可靠性变得尤为重要,而软件测试作为保障软件质量的关键环节,目的就在于以耗费尽可能少的人力、物力在短时间内尽可能多的找出软件中的缺陷,以对软件进行修复。
2、相关技术中,测试人员通常按需手动编写特定的测试用例,基于测试用例对软件进行测试,而且为了改善测试效果,往往需要编写大量的测试用例。但是,通过手动编写测试用例,耗时较长、效率较低,导致软件测试效率下降。因此,现有逐渐利用自动生成技术生成测试用例,进行软件测试。
3、然而,现有利用自动生成技术生成的测试用例存在oracle problem(无法验证输出是否正确的问题),从而,导致软件测试出错。
技术实现思路
1、本申请提供一种测试方法、装置及存储介质,以解决现有软件测试中利用自动生成技术生成的测试用例存在的oracle problem(无法验证输出是否正确的问题)。
2、第一方面,本申请实施例提供一种测试方法,包括:
3、根据第一代码和预存的单元测试用例生成方法,生成第一测试用例;
4、基于所述第一测试用例,对第二代码进行测试,获得第一测试结果;
5、根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例;
6、基于所述第二测试用例,对第三代码进行测试,获得第二测试结果,
7、根据所述第一测试结果和所述第二测试结果,确定异常代码。
8、在一种可能的实现方式中,所述根据所述第一代码、所述第二代码,所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例,包括:
9、将所述第一代码和所述第二代码进行比较,确定所述第一代码与所述第二代码之间的差异代码;
10、基于所述第一代码与所述第二代码之间的差异代码,所述第一测试用例,以及所述单元测试用例生成方法,生成所述第二测试用例。
11、在一种可能的实现方式中,所述基于所述第一代码与所述第二代码之间的差异代码,所述第一测试用例,以及所述单元测试用例生成方法,生成所述第二测试用例,包括:
12、基于所述第一代码与所述第二代码之间的差异代码,以及所述单元测试用例生成方法,生成差异测试用例;
13、根据所述差异测试用例,对所述第一测试用例进行更新,获得所述第二测试用例。
14、在一种可能的实现方式中,所述根据所述第一测试结果和所述第二测试结果,确定异常代码,包括:
15、将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码;
16、基于所述第二代码与所述第三代码之间的差异代码,确定异常代码。
17、在一种可能的实现方式中,在所述将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码之前,还包括:
18、判断所述第一测试结果与所述第二测试结果是否相同;
19、所述将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码,包括:
20、若所述第一测试结果与所述第二测试结果不同,则将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码。
21、在一种可能的实现方式中,所述基于所述第二代码与所述第三代码之间的差异代码,确定异常代码,包括:
22、将所述第二代码与所述第三代码之间的差异代码发送至预设人员,以使所述预设人员基于所述第二代码与所述第三代码之间的差异代码,确定异常代码。
23、在一种可能的实现方式中,在所述根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例之后,还包括:
24、根据所述第二代码、所述第三代码、所述第二测试用例,以及所述单元测试用例生成方法,生成第三测试用例。
25、在一种可能的实现方式中,所述基于所述第一测试用例,对第二代码进行测试,获得第一测试结果,包括:
26、将所述第一测试用例作为测试输入,在所述第二代码上执行测试,得到所述第一测试结果。
27、第二方面,本申请实施例提供一种测试装置,包括:
28、第一生成模块,用于根据第一代码和预存的单元测试用例生成方法,生成第一测试用例;
29、第一测试模块,用于基于所述第一测试用例,对第二代码进行测试,获得第一测试结果;
30、第二生成模块,用于根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例;
31、第二测试模块,用于基于所述第二测试用例,对第三代码进行测试,获得第二测试结果,其中,所述第一代码、所述第二代码和所述第三代码分别为同一应用程序的不同版本的代码;
32、异常确定模块,用于根据所述第一测试结果和所述第二测试结果,确定异常代码。
33、在一种可能的实现方式中,所述第二生成模块,具体用于:
34、将所述第一代码和所述第二代码进行比较,确定所述第一代码与所述第二代码之间的差异代码;
35、基于所述第一代码与所述第二代码之间的差异代码,所述第一测试用例,以及所述单元测试用例生成方法,生成所述第二测试用例。
36、在一种可能的实现方式中,所述第二生成模块,具体用于:
37、基于所述第一代码与所述第二代码之间的差异代码,以及所述单元测试用例生成方法,生成差异测试用例;
38、根据所述差异测试用例,对所述第一测试用例进行更新,获得所述第二测试用例。
39、在一种可能的实现方式中,所述异常确定模块,具体用于:
40、将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码;
41、基于所述第二代码与所述第三代码之间的差异代码,确定异常代码。
42、在一种可能的实现方式中,所述异常确定模块,还用于:
43、判断所述第一测试结果与所述第二测试结果是否相同;
44、若所述第一测试结果与所述第二测试结果不同,则将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码。
45、在一种可能的实现方式中,所述异常确定模块,具体用于:
46、将所述第二代码与所述第三代码之间的差异代码发送至预设人员,以使所述预设人员基于所述第二代码与所述第三代码之间的差异代码,确定异常代码。
47、在一种可能的实现方式中,还包括第三生成模块,用于在所述第二生成模块根据所述第本文档来自技高网...
【技术保护点】
1.一种测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一代码与所述第二代码之间的差异代码,所述第一测试用例,以及所述单元测试用例生成方法,生成所述第二测试用例,包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一测试结果和所述第二测试结果,确定异常代码,包括:
5.根据权利要求4所述的方法,其特征在于,在所述将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码之前,还包括:
6.根据权利要求4所述的方法,其特征在于,所述基于所述第二代码与所述第三代码之间的差异代码,确定异常代码,包括:
7.根据权利要求1至3中任一项所述的方法,其特征在于,在所述根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例之后,还包括:
...【技术特征摘要】
1.一种测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一代码与所述第二代码之间的差异代码,所述第一测试用例,以及所述单元测试用例生成方法,生成所述第二测试用例,包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一测试结果和所述第二测试结果,确定异常代码,包括:
5.根据权利要求4所述的方法,其特征在于,在所述将所述第一测试结果与所述第二测试结果进行比较,确定所述第二代码与所述第三代码之间的差异代码之前,还包括:
【专利技术属性】
技术研发人员:甘陈卿,陈柳杉,梁昊,马国俊,
申请(专利权)人:北京字跳网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。