软件测试方法、装置、计算设备及介质与流程

文档序号:31185133发布日期:2022-08-19 21:12阅读:58来源:国知局
软件测试方法、装置、计算设备及介质与流程

1.本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种软件测试方法、装置、计算设备及介质。


背景技术:

2.linux操作系统是一个由多种软件构成构建而成的复杂系统,不同软件之间存在着错综复杂的依赖关系,任何一个软件的变化都有可能导致其他相关软件的功能失效,因此,兼容性测试是操作系统软件测试中必不可少的一个环节。
3.相关技术中,常用的软件兼容性检测方法有应用程序二进制接口(application binary interface,abi)检测和应用程序接口(application programming interface,api)检测两种,上述两种检测方法都属于静态检测方法,无法检测软件动态运行时的行为变化导致的兼容性问题。因此,亟需一种能够有效检测软件动态行为兼容性的测试方法。


技术实现要素:

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.图1是一示例性实施例提供的一种软件测试方法的流程图。
50.图2是一示例性实施例提供的一种软件测试方法的整体流程图。
51.图3是一示例性实施例提供的一种软件测试过程的流程图。
52.图4是一示例性实施例提供的一种软件测试装置的框图。
53.图5是一示例性实施例提供的一种计算设备的示意结构图。
具体实施方式
54.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
55.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
56.本技术提供了一种软件兼容性测试方法,用于基于待测试软件的运行结果,来对待测试软件的待测试版本的兼容性进行分析,从而可以实现对软件动态兼容性的测试。
57.上述软件兼容性测试方法可以由计算设备执行。其中,计算设备可以为终端设备,如台式计算机、便携式计算机、平板电脑等,或者,计算设备还可以为服务器,如一台服务器、多台服务器、服务器集群、云计算平台等,本技术对计算设备的设备类型和设备数量不加以限定。
58.需要说明的是,本技术所提供的软件测试方法,可以在单个软件的版本升级场景中对新版本的软件进行兼容性测试。以待测试软件的新版本为2.0版本,原始版本为1.0版本为例,则在对待测试软件的2.0版本进行兼容性测试时,可以以待测试软件的1.0版本作为测试基线,来对待测试软件的2.0版本进行兼容性测试。可选地,本技术所提供的软件测试方法可以集成到软件包持续集成(continuous integration,ci)系统中,以实现对操作系统中的数千个软件的大规模覆盖,从而使得本技术所提供的软件测试方法可以实现对操作系统中的数千个软件包的兼容性测试,从而可以有效发现操作系统中的软件兼容性问题。
59.此外,本技术所提供的软件测试方法还可以对不同版本的操作系统的兼容性进行测试,例如,可以对不同版本的linux操作系统进行全面的软件兼容性评估。在对不同版本的操作系统的兼容性进行测试时,可以以一个操作系统为测试基线,对另一个操作系统进行兼容性评估。在一种可能的实现方式中,可以通过本技术所提供的软件测试方法,对操作系统中的多个软件分别进行兼容性测试,并根据软件重要等级对测试结果进行加权汇总,从而将加权汇总得到的结果作为操作系统的兼容性测试结果,以便可以为操作系统版本升级或者应用程序跨操作系统迁移提供兼容性建议。
60.上述为有关本技术的应用场景的示例性介绍,在更多可能的实现方式中,本技术所提供的软件测试方法还可以应用在其他多种场景中,本技术对具体的应用场景不加以限定。
61.在介绍了本技术的应用场景之后,下面对本技术的具体实现过程进行介绍。
62.参见图1,图1是一示例性实施例提供的一种软件测试方法的流程图,该方法包括:
63.步骤101、基于预设的多种参数组合方式,获取每种参数组合方式所包括的输入参数对应的参数值的组合,作为待测试软件的输入数据。
64.其中,待测试软件可以多种类型的软件,如多种类型的应用软件、操作系统等,本技术对待测试软件的具体类型不加以限定。
65.待测试软件的输入数据可以由多种类型的输入参数对应的参数值组合而成。以待测试软件为浏览器为例,输入数据也即是检索词,检索词可以为多种类型的输入参数对应的参数值的组合,输入参数可以为性别、年龄、专业之类的指示数据类型的信息,相应地,输入参数对应的参数值即可以为男性、23岁、文学专业等,因而,输入数据即可以是男性、23岁、文学专业这三个参数值的组合。
66.步骤102、将输入数据分别输入第一版本的待测试软件和第二版本的待测试软件,通过第一版本的待测试软件和第二版本的待测试软件,分别输出第一运行结果和第二运行结果,第一版本为待测试软件的稳定版本,第二版本为待测试软件的待测试版本。
67.步骤103、基于第一运行结果和第二运行结果之间的差异信息,获取第二版本的待测试软件的兼容性检测结果。
68.本技术通过基于预设的多种参数组合方式,获取每种参数组合方式所包括的输入参数对应的参数值的组合,作为待测试软件的输入数据,从而将输入数据分别输入第一版本的待测试软件和第二版本的待测试软件,通过第一版本的待测试软件和第二版本的待测试软件,分别输出第一运行结果和第二运行结果,其中,待测试软件的第一版本可以作为待测试软件的测试基线版本,待测试软件的第二版本也即是需要测试的软件版本,从而可以基于第一运行结果和第二运行结果之间的差异信息,来获取第二版本的待测试软件的兼容性检测结果,实现基于运行过程的软件兼容性测试,也即是是实现对软件动态行为的兼容性测试。
69.上述为对本技术的基本实现过程的介绍,下面对本技术的多个可选实现方式进行介绍。
70.需要说明的是,在一些实施例中,本技术所提供的软件测试方法大致可以分为5个环节,参见图2,图2是一示例性实施例提供的一种软件测试方法的整体流程图,如图2所示,本技术所提供的软件测试方法主要包括构建测试用例、生成测试基线、记录测试结果、进行差异分析、进行兼容性分析这5个环节,本技术将这5个环节结合在一起,构成一个自动化的测试流程,以提供软件兼容性测试能力。理论上,相同的输入数据下,同一软件应该产生相同的运行结果,基于此,本技术利用软件不同版本的运行结果作为差异分析的依据,以获取兼容性分析结果,实现软件兼容性测试。下面分别对本技术所提供的软件测试方法所包括的各个环节进行介绍。
71.首先,对构建测试用例的过程进行介绍。
72.在一些实施例中,对于步骤101,在基于预设的多种参数组合方式,获取每种参数组合方式所包括的输入参数对应的参数值的组合,作为待测试软件的输入数据时,多种参数组合方式可以是由相关技术人员根据软件需求预先设置好的,例如,可以设置“参数1+参数2+参数3”为一种参数组合方式、“参数1+参数3+参数4”为一种参数组合方式、“参数1+参数2+参数3+参数4”为一种参数组合方式,等等,则在获取输入数据时,即可直接基于预先设置好的参数组合方式,来进行输入数据的生成。
73.在一种可能的实现方式中,该步骤101可以通过如下方式实现:
74.对于任一种参数组合方式,为参数组合方式所指示的输入参数组合中的各个输入
参数生成参数值,将所生成的参数值的组合作为一个输入数据。
75.对于任一种参数组合方式,可以为这种参数组合方式中的输入参数随机生成一个参数值,进而将基于这种参数组合方式所包括的输入参数生成的参数值,作为一个输入数据,其他数如数据的生成过程与之同理,此处不再赘述。
76.可选地,可以为同一种参数组合方式中所包括的输入参数生成不同的参数值,以便基于同一种参数组合方式可以获取到多个输入数据。
77.例如,对于参数组合方式“参数1+参数2+参数3”,可以为参数1生成一个参数值a,为参数2生成一个参数值b,为参数3生成一个参数值c,从而即可将参数值a、参数值b和参数值c的组合作为一个输入数据;此外,还可以为参数1生成一个参数值d,为参数2生成一个参数值e,为参数3生成一个参数值f,从而即可将参数值d、参数值e和参数值f的组合作为另一个输入数据,以此类推,基于一个参数组合方式即可获取到多个输入数据,另外,基于其他的任一个参数组合方式也可以获取到多个输入数据。
78.需要说明的是,在软件兼容性测试过程中,与软件功能测试不同的是,无论输入参数是有效参数还是无效参数,多个输入参数对应的参数值组合得到的输入数据均可以作为兼容性测试过程的输入数据。也即是,输入参数可以是待测试软件在运行过程中所需的参数,或者,输入参数也可以不是待测试软件在运行过程中所需的参数。
79.例如,在待测试软件的运行过程中,将参数1对应的参数值、参数2对应的参数值以及参数3对应的参数值输入待测试软件中,可以得到一个有效的输出结果,则参数1、参数2、参数3即为有效参数,而如果在将参数1对应的参数值、参数2对应的参数值、参数3对应的参数值以及参数4对应的参数值输入待测试软件中,也可以得到一个输出结果,但所得到的输出结果与将参数1对应的参数值、参数2对应的参数值以及参数3对应的参数值输入待测试软件中所得到的输出结果一致,则参数4即为无效的输入参数。
80.然而,无论输入参数是否有效,多个输入参数所组成的输入数据仍可作为软件兼容性测试过程中所使用的输入数据,甚至,由多个无效输入参数所组成的输入数据,也可作为软件兼容性测试过程中所使用的输入数据。
81.通过上述采用有效参数组合和无效参数组合均可获取到输入数据的方式,可以扩充软件测试过程中所使用的输入数据,而输入数据的数量越多、组合方式越多,可以保证获取到的运行结果更加多样,从而可以保证后续可以基于更加多样的结果来进行差异分析和兼容性分析,从而提高兼容性分析结果的可靠性。
82.另外,各种输入数据按照一定的顺序执行,即可构成测试用例,从而即可将测试用例作为不同版本的待测试软件的输入。通过构建测试用例,可以将待测试软件作为一个黑箱,从而通过测试用例所包括的多组输入数据组合,来激活待测试软件中的不同运行路径,从而得到待测试软件中不同路径的运行结果,从而保证待测试软件的兼容性测试过程的完整性。
83.下面,对生成测试基线的过程进行介绍。
84.需要说明的是,测试基线也即是基于稳定版本的待测试软件对输入数据进行处理后所得到的运行结果。
85.在一些实施例中,在获取到待测试软件的输入数据后,即可通过步骤102,来获取输入数据通过不同版本的待测试软件处理得到的运行结果。
86.需要说明的是,对于步骤102,第一版本的待测试软件可以为待测试版本的已上线版本中的任一版本,仅需保证作为第一版本的待测试软件已经在线上批量部署,能够有效支撑功能运行即可,或者说,仅需保证作为第一版本的待测试软件版本为待测试软件的稳定版本即可。
87.通过以稳定版本的待测试软件作为第一版本的待测试软件,或者说,以稳定版本的待测试软件作为测试基线(或称参考基线),以便后续可基于第一版本的待测试软件的运行结果,来对待测试版本的运行结果进行对比分析,以实现待测试版本的软件的兼容性测试。
88.可选地,在将输入数据输入第一版本的待测试软件,通过第一版本的待测试软件输出第一运行结果之后,还可以对第一运行结果进行进一步处理,下面介绍两种可选的处理方式:
89.在一种可能的实现方式中,可以基于预设的过滤规则,对第一版本的待测试软件所输出的第一运行结果进行过滤。
90.可选地,可以预先设置一些过滤规则,过滤规则可以指示需要过滤掉的运行结果的类型,以便在获取到第一运行结果之后,可以直接基于预先设置好的过滤规则所指示的需要过滤掉的运行结果的类型,从第一运行结果中删除需要过滤掉的运行结果。
91.例如,在软件运行过程中,可能会在运行结果中产生一些动态时间戳,而这些动态时间戳在兼容性分析过程中属于无效内容,因而,可以将过滤规则设置为过滤运行结果中的动态时间戳,则在获取到第一运行结果之后,可以基于所设置的过滤规则,过滤掉第一运行结果中的动态时间戳,以便后续可以基于清除无效内容后的第一运行结果来进行兼容性分析。
92.相关技术人员可以根据实际技术需求设置相应的过滤规则,从而可以基于预设的过滤规则实现对第一运行结果的过滤,避免第一运行结果中的无效内容给兼容性分析过程造成不必要的影响,从而可以提高兼容性分析结果的准确性,并且可以避免计算设备基于这些无效内容进行兼容性分析,减小计算设备的处理压力,提高兼容性分析速度。
93.在一种可能的实现方式中,可以基于预设的结果转换规则,对所输出的运行结果进行格式转换。
94.可选地,可以预先设置一些结果转换规则,结果转换规则可以指示进行兼容性分析时所使用的运行结果的格式,以便在获取到第一运行结果之后,可以直接基于预先设置好的结果转换规则所指示的运行结果的格式,对不符合该格式的第一运行结果进行格式转换。
95.例如,在软件测试过程中,可以采用文本格式的运行结果,来进行软件兼容性分析。以采用文本格式的运行结果来进行兼容性分析为例,可以将结果转换规则设置为运行结果为文本格式,则在获取到第一运行结果之后,可以将第一运行结果中不是文本格式的部分,转换为文本格式,以便后续可以基于文本格式的第一运行结果来进行兼容性分析。
96.此外,相关技术人员可以根据实际技术需求设置其他的结果转换规则,从而可以基于预设的结果转换规则,来对不符合格式需求的运行结果进行格式转换,以保证运行结果所包括的内容格式一致,且符合兼容性分析时的格式需求,从而可以保证后续的兼容性分析过程的顺利进行。
97.需要说明的是,可以采用上述两种方式中的任一种,来对第一运行结果进行进一步处理,可选地,还可以采用上述两种方式结合的方式,来对第一运行结果进行进一步处理,也即是,基于预设的过滤规则,对所输出的运行结果进行过滤,并基于预设的结果转换规则,对所输出的运行结果进行格式转换,本技术对具体采用哪种方式来对第一运行结果进行进一步处理不加以限定。
98.下面,对记录测试结果的过程进行介绍。
99.在一些实施例中,通过步骤102,来将获取到的输入数据输入至第二版本的待测试软件,通过第二版本的待测试软件,输出第二运行结果,所输出的第二运行结果记为需要记录的测试结果。
100.可选地,对于第二版本的待测试软件,在通过第二版本的待测试软件获取到第二运行结果之后,也可以采用与上述过程同理的处理方式,来对获取到的第二运行结果进行进一步处理,具体处理方式以及各种处理方式所带来的效果可以参见上述内容,此处不再赘述。
101.需要说明的是,在对第二运行结果进行进一步处理时所采用的过滤规则和结果转换规则,需与对第一运行结果进行进一步处理时所采用的过滤规则和结果转换规则一致,以保证后续确定差异信息时所使用的第一运行结果和第二运行结果所包括的内容以及运行结果的格式一致,以保证可以有效确定出两个运行结果之间的差异信息,从而可以保证后续兼容性分析过程的顺利进行。
102.另外,在实现上述对运行结果进行进一步处理的过程时,本技术可以设置一个规则过滤器,以便可以通过该规则过滤器,基于预先设置好的过滤规则和/或结果转换规则,来对运行结果进行过滤和/或格式转换。可选地,还可以采用其他方式来实现对运行结果的进一步处理,本技术对具体采用哪种方式不加以限定。
103.在一些实施例中,在通过上述过程获取到第一运行结果和第二运行结果后,即可通过步骤103,来基于第一运行结果和第二运行结果之间的差异信息,获取第二版本的待测试软件的兼容性检测结果。
104.在一种可能的实现方式中,该步骤103可以包括进行差异分析以及进行兼容性分析这两部分的内容,也即是,步骤103可以包括如下步骤:
105.步骤1031、对第一运行结果和第二运行结果进行对比,得到第一运行结果和第二运行结果之间的差异信息。
106.需要说明的是,由于第一版本和第二版本为待测试软件的不同版本,因而通过第一版本的待测试软件以及第二版本的待测试软件,基于相同的输入数据所输出的第一运行结果和第二运行结果的类型是一致的,此外,在获取到第一运行结果和第二运行结果后,还对采用相同的过滤规则和/或结果转换规则,对第一运行结果和第二运行结果进行了进一步处理,可以进一步保证第一运行结果和第二运行结果的类型和格式的一致性,因而可以直接通过对第一运行结果和第二运行结果的对比来获取差异信息。
107.以第一运行结果和第二运行结果均为文本形式的运行结果为例,可以直接对第一运行结果和第二运行结果进行文本对比,以获取第一运行结果和第二运行结果之间的差异信息。
108.可选地,可以在计算设备中设置一个差异分析模块,从而可以将第一运行结果和
第二运行结果输入该差异分析模块,以通过该差异分析模块,自动输出第一运行结果和第二运行结果之间的差异信息。
109.需要说明的是,上述步骤1031所描述的过程即为图3中所示的进行差异分析的过程。
110.步骤1032、基于差异信息对待测试软件的兼容性的影响,获取第二版本的待测试软件的兼容性检测结果。
111.需要说明的是,对于第一运行结果和第二运行结果之间的各个差异点,每个差异点都需要审查,以确定各个差异点对软件兼容性的影响。
112.在一种可能情况下,对于任一差异信息,在差异信息不影响待测试软件的兼容性的情况下,为差异信息添加第一标记,第一标记用于指示差异信息不影响待测试软件的兼容性。
113.在另一种可能情况下,在差异信息影响待测试软件的兼容性的情况下,为差异信息添加第二标记,第二标记用于指示差异信息影响待测试软件的兼容性。
114.可选地,可以预先构建一个知识库,该知识库可以用于存储不同的差异信息对兼容性的影响情况,以便计算设备在为差异信息添加标记时,对于任一差异信息,可以从知识库中获取该差异信息对兼容性的影响情况,从而根据获取到的结果,自动为该差异信息生成相应的标记。
115.通过预先构建一个知识库,后续即可基于所构建的知识库,来自动为差异信息设置相应的标记,无需相关技术人员手动操作,提高兼容性分析过程的效率,而且,可以提高标记结果的准确性。
116.可选地,在为影响软件兼容性的差异信息设置了第二标记以后,还可以基于差异信息对待测试软件的兼容性的影响程度,为差异信息添加第三标记,第三标记用于指示差异信息对待测试软件的影响程度,以便后续可以基于第三标记,直接确定出差异信息对兼容性的影响程度大小。
117.需要说明的是,上述步骤1032所描述的过程即为图3中所示的进行兼容性分析的过程。
118.在为差异信息添加了相应的标记后,即可将对兼容性有影响的差异信息(也即是标记有第二标记的差异信息)以及各个差异信息对应的第三标记,作为兼容性检测过程的评估结果,从而可以将评估结果输出给相关技术人员,以便相关技术人员可以根据评估结果,对第二版本的待测试软件进行上线或改进等。
119.上述各个实施例所描述的软件测试过程的流程可以参见图3,图3是一示例性实施例提供的一种软件测试过程的流程图,如图3所示,将第一版本的待测试软件记为app v1,将第二版本的待测试软件记为app v2,从而可以测试用例所包括的多组输入数据,分别输入app v1和app v2,通过app v1和app v1分别获取相应的运行结果,进而通过规则过滤器对所获取到的运行结果进行进一步处理,以便基于进一步处理得到的结果(也即是测试基线和测试结果)来进行差异分析,从而基于差异分析得到的结果来进行兼容性分析,实现软件兼容性测试。
120.需要说明的是,图3所示仅为对本技术所提供的软件测试方法的流程性介绍,具体实现过程可以参见上述各个实施例,此处不再赘述。
121.本技术所提供的软件测试方法,基于软件的动态运行结果进行差异分析,可以有效发现软件的动态差异引发的兼容性问题,同时,由于本方案是直接基于软件运行结果来进行兼容性分析的,因此,无需依赖静态检测过程中所使用的应用程序调试信息,与静态检测方法相比具有更低的环境要求和更广的使用场景。
122.与前述方法的实施例相对应,本说明书还提供了装置及其所应用的计算设备的实施例。
123.参见图4,图4是一示例性实施例提供的一种软件测试装置的框图,该装置包括:
124.数据获取单元401,用于基于预设的多种参数组合方式,获取每种参数组合方式所包括的输入参数对应的参数值的组合,作为待测试软件的输入数据;
125.处理单元402,用于将输入数据分别输入第一版本的待测试软件和第二版本的待测试软件,通过第一版本的待测试软件和第二版本的待测试软件,分别输出第一运行结果和第二运行结果,第一版本为待测试软件的稳定版本,第二版本为待测试软件的待测试版本;
126.结果获取单元403,基于第一运行结果和第二运行结果之间的差异信息,获取第二版本的待测试软件的兼容性检测结果。
127.在一些实施例中,结果获取单元403,在用于基于第一运行结果和第二运行结果之间的差异,获取第二版本的待测试软件的兼容性检测结果时,包括对比子单元和获取子单元;
128.对比子单元,用于对第一运行结果和第二运行结果进行对比,得到第一运行结果和第二运行结果之间的差异信息;
129.获取子单元,用于基于差异信息对待测试软件的兼容性的影响,获取第二版本的待测试软件的兼容性检测结果。
130.在一些实施例中,获取子单元,在用于基于差异信息对待测试软件的兼容性的影响,获取第二版本的待测试软件的兼容性检测结果时,用于:
131.对于任一差异信息,在差异信息不影响待测试软件的兼容性的情况下,为差异信息添加第一标记,第一标记用于指示差异信息不影响待测试软件的兼容性;
132.在差异信息影响待测试软件的兼容性的情况下,为差异信息添加第二标记,第二标记用于指示差异信息影响待测试软件的兼容性。
133.在一些实施例中,该装置还包括:
134.添加单元,用于基于差异信息对待测试软件的兼容性的影响程度,为差异信息添加第三标记,第三标记用于指示差异信息对待测试软件的影响程度。
135.在一些实施例中,数据获取单元401,在用于基于预设的多种参数组合方式,获取每种参数组合方式所包括的输入参数对应的参数值的组合,作为待测试软件的输入数据时,用于:
136.对于任一种参数组合方式,为参数组合方式所指示的输入参数组合中的各个输入参数生成参数值,将所生成的参数值的组合作为一个输入数据。
137.在一些实施例中,输入参数为待测试软件在运行过程中所需的参数,或者,输入参数不是待测试软件在运行过程中所需的参数。
138.在一些实施例中,该装置还包括:
139.过滤单元,用于基于预设的过滤规则,对所输出的运行结果进行过滤;
140.转换单元,用于基于预设的结果转换规则,对所输出的运行结果进行格式转换。
141.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
142.本技术还提供了一种计算设备,参见图5,图5是一示例性实施例提供的一种计算设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括实现其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
143.本技术还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本技术任一实施例所提供的软件测试方法。
144.上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
145.在一个典型的配置中,计算机包括一个或多个处理器(central processing unit,cpu)、输入/输出接口、网络接口和内存。
146.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(random access memory,ram)和/或非易失性内存等形式,如只读存储器(read-only memory,rom)或闪存(flash ram)。内存是计算机可读介质的示例。
147.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(phase-change random access memory,pram)、静态随机存取存储器(static random-access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(compact disc read only memory,cd-rom)、数字多功能光盘(digital video disc,dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
148.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
149.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
150.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
151.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
152.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1