测试方法、装置及存储介质与流程

文档序号:37617698发布日期:2024-04-18 17:32阅读:7来源:国知局
测试方法、装置及存储介质与流程

本技术涉及软件测试,尤其涉及一种测试方法、装置及存储介质。


背景技术:

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、在一种可能的实现方式中,还包括第三生成模块,用于在所述第二生成模块根据所述第一代码、所述第二代码、所述第一测试用例,以及所述单元测试用例生成方法,生成第二测试用例之后,根据所述第二代码、所述第三代码、所述第二测试用例,以及所述单元测试用例生成方法,生成第三测试用例。

48、在一种可能的实现方式中,所述第一测试模块,具体用于:

49、将所述第一测试用例作为测试输入,在所述第二代码上执行测试,得到所述第一测试结果。

50、第三方面,本技术实施例提供一种测试设备,包括:

51、处理器;

52、存储器;以及

53、计算机程序;

54、其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。

55、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。

56、第五方面,本技术实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行第一方面所述的方法。

57、本技术实施例提供的测试方法、装置及存储介质,该方法根据第一代码和预存的单元测试用例生成方法,生成第一测试用例,进而,基于第一测试用例,对第二代码进行测试,根据上述第一代码、第二代码、第一测试用例,以及上述单元测试用例生成方法,生成第二测试用例,基于第二测试用例,对第三代码进行测试,获得第二测试结果,其中,上述第一代码、第二代码和第三代码分别为同一应用程序的不同版本的代码,从而,根据上述两个代码的测试结果,确定异常代码,解决现有软件测试中利用自动生成技术生成的测试用例存在oracle problem,导致软件测试出错的问题。而且,本技术实施例通过比较两个版本代码的测试结果,能够以较大的概率发现代码之间的区别,从而可以以较低成本且自动化的方式,识别意料之外的程序行为(异常代码)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1