掌桥专利:专业的专利平台
掌桥专利
首页

软件测试方法、装置及电子设备

文献发布时间:2024-04-18 19:59:31


软件测试方法、装置及电子设备

技术领域

本申请涉及软件测试技术领域,具体而言,涉及一种软件测试方法、装置及电子设备。

背景技术

随着软件开发的不断发展,自动化测试成为了保证软件质量的重要手段之一。在自动化测试中,参数化是一种常见的技术手段,它可以通过改变测试用例的输入参数来覆盖不同的测试场景,从而提高测试的覆盖率和效果。然而,在实际测试过程中,有时候我们希望能够根据具体的需求,灵活地控制某些测试用例是否执行,以便更好地适应不同的测试环境和需求。

发明内容

为了解决上述技术问题,本申请提供一种软件测试方法、装置及电子设备。

第一方面,本申请实施例提供一种软件测试方法,所述方法包括:

创建一测试用例集,所述测试用例集包括多个测试用例,不同的测试用例组合适用于不同的测试场景,所述测试用例中配置有测试标识;

基于不同的测试场景对所述测试用例集中各个测试用例的测试标识进行赋值;

基于所述测试用例集中各个测试用例测试标识的值从所述测试用例集中选择待测试的测试用例;

采用所述待测试的测试用例进行软件测试。

在一种可能的实现方式中,所述创建一测试用例集的步骤,包括:

获取不同测试场景下进行软件测试所需的测试用例;

对获取的测试用例进行用例序列标号;

为获取的测试用例配置测试标识;

由具有所述测试标识和序列标号的测试用例构建所述测试用例集。

在一种可能的实现方式中,所述基于不同的测试场景对所述测试用例集中各个测试用例的测试标识进行赋值的步骤之前,所述方法还包括:

创建一测试标识向量,所述测试标识向量包括与所述测试用例的序列标号对应的向量元数;

根据不同测试场景下进行软件测试所需的测试用例,对所述测试标识向量中的各个向量元数进行赋值,得到不同测试场景下的测试标识向量。

在一种可能的实现方式中,所述根据不同测试场景下进行软件测试所需的测试用例,对所述测试标识向量中的各个向量元数进行赋值,得到不同测试场景下的测试标识向量的步骤,包括:

根据不同测试场景下进行软件测试所需的测试用例,在所述测试用例集中找到所需的测试用例的序列标号;

基于所需的测试用例的序列标号对所述测试标识向量中对应的向量元数进行赋值,得到与不同测试场景对应的测试标识向量。

在一种可能的实现方式中,所述基于不同的测试场景对所述测试用例集中各个测试用例的测试标识进行赋值的步骤,包括:

基于所述测试标识向量中的向量元数对所述测试用例集中与所述向量元数对应的各测试用例的测试标识进行赋值,将所述向量元数的值赋值给对应的测试用例的测试标识。

在一种可能的实现方式中,所述基于所述测试用例集中各个测试用例测试标识的值从所述测试用例集中选择待测试的测试用例的步骤,包括:

检测所述测试用例集中各个测试用例测试标识的值是否为预设值或是否在预设的数值范围内;

在测试标识的值为预设值或在预设的数值范围内时,将对应的测试用例作为所述待测试的测试用例。

在一种可能的实现方式中,所述采用所述待测试的测试用例进行软件测试的步骤,包括:

按照预先配置的不同测试场景下测试用例的执行顺序,将所述待测试的测试用例逐条读取,输入到所述软件中进行测试,并记录所述软件的测试结果。

在一种可能的实现方式中,所述方法还包括:

对所述测试用例集中的测试用例进行更新操作,所述更新操作包括删除测试用例、新增测试用例及对测试用例的代码进行修改;

基于更新后的测试用例集,对测试标识向量中的向量元数进行更新。

第二方面,本申请实施例还提供一种软件测试装置,所述装置包括:

创建模块,用于创建一测试用例集,所述测试用例集包括多个测试用例,不同的测试用例组合适用于不同的测试场景,所述测试用例中配置有测试标识;

赋值模块,用于基于不同的测试场景对所述测试用例集中各个测试用例的测试标识进行赋值;

选择模块,用于基于所述测试用例集中各个测试用例测试标识的值从所述测试用例集中选择待测试的测试用例;

测试模块,用于采用所述待测试的测试用例进行软件测试。

第三方面,本申请实施例还提供一种电子设备,所述电子设备包括处理器及计算机可读存储介质,所述处理器及所述计算机可读存储介质之间通过总线系统连接,所述计算机可读存储介质用于存储程序、指令或代码,所述处理器用于执行所述计算机可读存储介质中的程序、指令或代码,以实现第一方面中任意一个可能的实现方式中的软件测试方法。

第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其被执行时,使得电子设备执行上述第一方面或者第一方面中任意一个可能的实现方式中的软件测试方法。

基于上述任意一个方面,本申请实施例提供的软件测试方法、装置及电子设备,首先,创建一测试用例集;接着,基于不同的测试场景对测试用例集中各个测试用例的测试标识进行赋值;再接着,基于测试用例集中各个测试用例测试标识的值从测试用例集中选择待测试的测试用例;然后,采用待测试的测试用例进行软件测试。上述方案通过在测试用例中配置测试标识,通过测试标识的值从测试用例集中筛选出用于进行软件测试的测试用例,如此可以更加灵活控制测试用例是否用于软件测试,提高软件测试的效率和灵活性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要调用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本实施例提供的软件测试方法的流程示意图;

图2为本实施例提供的软件测试方法的部分代码示例图;

图3为本实施例提供的测试用例的代码示意图;

图4为本申请实施例提供的软件测试装置的功能模块示意图;

图5为本申请实施例提供的电子设备的可能结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请实施例的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其它操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。

为了解决背景技术中的技术问题,相关技术中提供以下解决方案:以pytest自动化测试框架设计为例,可以使用@pytest.mark.skip()装饰器跳过某个测试用例、测试类或整个测试模块的执行。被标记为跳过的部分将不会运行,可以用于临时禁用测试或跳过无法正常运行的部分,其中,装饰器是一种可以附加到类、方法、属性或参数上的特殊声明。

然而上述方案存在以下缺陷,@pytest.mark.skip()装饰器在使用过程中需要跳过部分用例时,仅能对Pytest自动化测试框架定义的测试用例进行跳过,无法对同一用例下的多组数据进行过滤,且需要对框架中的装饰器进行修改,不利于框架的稳定运行。即上述方案对测试用例的控制不够细致,实现过程不利于框架的稳定运行。

为了解决上述技术问题,本申请提供一种软件测试方法,请参照图1,本申请实施例提供的软件测试方法可以由具有数据处理能力的电子设备执行,在本申请实施例的软件测试方法中的部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除,软件测试方法的详细步骤介绍如下。

步骤S11,创建一测试用例集。

在本步骤中,测试用例集可以包括多个测试用例,不同的测试用例组合适用于不同的测试场景,测试用例中配置有测试标识,其中,测试标识可以用于指示其对应的测试用例是否参与相应测试场景下的软件测试。

步骤S12,基于不同的测试场景对测试用例集中各个测试用例的测试标识进行赋值。

在本步骤中,可以预先根据不同的测试场景所需的测试用例,对测试用例集中测试用例的测试标识进行赋值,示例性地,当测试用例A为所需的测试用例时,可以将测试用例A的测试标识赋值为1,当测试用例B为不需要的测试用例时,可以将测试用例B的测试标识赋值为0,依次类推,对测试用例集中所有测试用例的测试标识进行赋值。可以理解的是,上述赋值过程可以是在软件测试前人工配置,也可以自动配置。

步骤S13,基于测试用例集中各个测试用例测试标识的值从测试用例集中选择待测试的测试用例。

在本步骤中,可以根据测试用例的测试标识值选择对应场景下所需的测试用例,比如,将测试标识的值为1的测试用例作为待测试的测试用例,而将测试标识的值为0的测试用例作为不需要的测试用例。

步骤14,采用待测试的测试用例进行软件测试。

在本步骤中,在测试用例集中选择出待测试的测试用例后,可以采用选择出的测试用例对软件进行测试。

上述提供的方案,通过在测试用例中配置测试标识,通过测试标识的值从测试用例集中筛选出用于进行软件测试的测试用例,如此可以更加灵活控制测试用例是否用于软件测试,提高软件测试的效率和灵活性。同时相对于相关技术中采用装饰器控制测试用例跳过的方式,可以对每条测试用例进行控制且不会对测试框架本身存在依赖。

在本实施例中,步骤S11可以通过以下方式实现。

首先,获取不同测试场景下进行软件测试所需的测试用例。

示例性地,可以通过大数据分析,对待测试软件在不同测试场景下可能应用的测试用例进行收集,并将收集后的测试用例进行汇总,将其中重复的测试用例进行去重处理。

接着,对获取的测试用例进行用例序列标号。

对去重处理后的测试用例进行用例序列标号,示例性地,假设测试用例集中的测试用例的数量为50个,则可以采用序号0~49对各个测试用例进行序列标号。

再接着,对获取的测试用例配置测试标识。

在本实施例中,对不同测试用例配置的测试标识可以相同,也可以不同。示例性地,可以采用标识加序列标号的方式配置测试标识,如run

然后,由具有测试标识和序列标号的测试用例构建所述测试用例集。

在本实施例中,步骤S12可以通过以下方式实现。

首先,创建一测试标识向量。

在本实施例中,测试标识向量包括与测试用例的序列标号对应的向量元数,示例性地,假设测试用例集中的测试用例的数量为50个,测试标识向量A=(A0,A1,A2......A48,A49),其中,Ai表示序列标号为i的测试用例对应的向量元数,i的取值在0和49之间。

接着,根据不同测试场景下进行软件测试所需的测试用例,对测试标识向量中的各个向量元数进行赋值,得到不同测试场景下的测试标识向量。

在本实施例中,根据不同测试场景下进行软件测试所需的测试用例,在测试用例集中找到所需的测试用例的序列标号。基于所需的测试用例的序列标号对测试标识向量中对应的向量元数进行赋值,得到与不同测试场景对应的测试标识向量。

示例性地,若在某一测试场景下只需要用到序列标号0、4、6、9、11及32的6个测试用例,则可以在对测试标识向量A中的向量元数赋值时,将向量元数A0、A4、A6、A9、A11及A32赋值为1,而将其他的向量元数赋值为0。

在本实施例中,步骤S13可以通过以下方式实现。

基于测试标识向量中的向量元数对测试用例集中与向量元数对应的各测试用例的测试标识进行赋值,将向量元数的值赋值给对应的测试用例的测试标识。

在上面示例中,可以将测试标识向量A中向量元数A0、A4、A6、A9、A11及A32的值赋值给对应测试标识run

在选择待测试的测试用例时,可以检测测试用例集中各个测试用例测试标识的值是否为预设值或是否在预设的数值范围内。在测试标识的值为预设值或在预设的数值范围内时,将对应的测试用例作为待测试的测试用例,反之,将对应的测试用例不作为待测试的测试用例。

在本实施例中,步骤S14可以通过以下方式实现。

按照预先配置的不同测试场景下测试用例的执行顺序,将待测试的测试用例逐条读取,输入到软件中进行测试,并记录软件的测试结果。

示例性地,不同测试场景下测试用例的执行顺序可以预先配置好,在该测试场景下进行测试时,可以按照该配置好的顺序依次读取测试用例,并按照该顺序进行测试。

示例性地,请参照图2及图3,图2示例了本实施例提供软件测试方法的部分代码示例图,图3示例了本实施例提供的测试用例的代码示意图。如图2所示,可以将测试用例集保存在一yaml文件中,通过读取该yaml文件获得测试用例集,并通过遍历测试用例集中每个测试用例的测试标识值(比如,键值对),将测试标识值符合要求的测试用例作为待测试的测试用例逐条返回执行。测试用例中的测试标识可以通过赋值方式改变,比如图3中测试用例中cs_1和cs_2的值可以赋值为1,而cs_3的值可以赋值为0。

进一步地,在本实施例提供的软件测试方法还包括:

对测试用例集中的测试用例进行更新操作,更新操作包括删除测试用例、新增测试用例及对测试用例的代码进行修改;

基于更新后的测试用例集,对测试标识向量中的向量元数进行更新。

如此设计,可以在软件测试过程中不断更新测试用例,以便其能更加符合软件开发过程中对业务场景的不断调整。

请参照图4,图4为本申请实施例提供的软件测试装置200的一种功能模块示意图,本申请实施例可以根据服务器执行的方法实施例对软件测试装置200进行功能模块的划分,也即该软件测试装置200所对应的以下各个功能模块可以用于执行上述各个方法实施例。其中,该软件测试装置200可以包括创建模块210、赋值模块220、选择模块230及测试模块240,下面分别对该软件测试装置200的各个功能模块的功能进行详细阐述。

创建模块210,用于创建一测试用例集。

在本实施例中,测试用例集可以包括多个测试用例,不同的测试用例组合适用于不同的测试场景,测试用例中配置有测试标识,其中,测试标识可以用于指示其对应的测试用例是否参与相应测试场景下的软件测试。

本实施例中,创建模块210可以用于执行上述的步骤S11,关于创建模块210的详细实现方式可以参照上述针对步骤S11的详细描述。

赋值模块220,用于基于不同的测试场景对所述测试用例集中各个测试用例的测试标识进行赋值。

赋值模块220可以预先根据不同的测试场景所需的测试用例,对测试用例集中测试用例的测试标识进行赋值,示例性地,当测试用例A为所需的测试用例时,可以将测试用例A的测试标识赋值为1,当测试用例B为不需要的测试用例时,可以将测试用例B的测试标识赋值为0,依次类推,对测试用例集中所有测试用例的测试标识进行赋值。可以理解的是,上述赋值过程可以是在软件测试前人工配置,也可以自动配置。

本实施例中,赋值模块220可以用于执行上述的步骤S12,关于赋值模块220的详细实现方式可以参照上述针对步骤S12的详细描述。

选择模块230,用于基于所述测试用例集中各个测试用例测试标识的值从所述测试用例集中选择待测试的测试用例。

选择模块230可以根据测试用例的测试标识值选择对应场景下所需的测试用例,比如,将测试标识的值为1的测试用例作为待测试的测试用例,而将测试标识的值为0的测试用例作为不需要的测试用例。

本实施例中,选择模块230可以用于执行上述的步骤S13,关于选择模块230的详细实现方式可以参照上述针对步骤S13的详细描述。

测试模块240,用于采用待测试的测试用例进行软件测试。

测试模块240在测试用例集中选择出待测试的测试用例后,可以采用选择出的测试用例对软件进行测试。

本实施例中,测试模块240可以用于执行上述的步骤S14,关于测试模块240的详细实现方式可以参照上述针对步骤S14的详细描述。

需要说明的是,应理解以上装置或系统中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以在物理上分开。且这些模块可以全部以软件(比如,开源软件)可以通过处理器调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理器调用软件的形式实现,部分模块通过硬件的形式实现。作为一种示例,选择模块230可以由单独处理器运行实现,可以以程序代码的形式存储于上述装置或系统的存储器中,由上述装置或系统的某一个处理器调用并执行以上选择模块230的功能,其它模块的实现与之类似,在此就不再赘述。

请参照图5,图5示出了本公开实施例提供的用于实现上述的软件测试方法的电子设备100的硬件结构示意图。如图5所示,电子设备100可包括处理器110、计算机可读存储介质120及总线130。

在具体实现过程中,处理器110执行计算机可读存储介质120存储的计算机执行指令(例如图4中所示的软件测试装置200中的各个模块),使得处理器110可以执行如上方法实施例的软件测试方法,其中,处理器110和计算机可读存储介质120可以通过总线130连接。

处理器110的具体实现过程可参见上述电子设备100执行的各个方法实施例,其实现原理和技术效果类似,本申请实施例此处不再赘述。

计算机可读存储介质120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序或者数据。

总线130可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

此外,本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的软件测试方法。

综上所述,本申请实施例提供的软件测试方法、装置及电子设备,首先,创建一测试用例集;接着,基于不同的测试场景对测试用例集中各个测试用例的测试标识进行赋值;再接着,基于测试用例集中各个测试用例测试标识的值从测试用例集中选择待测试的测试用例;然后,采用待测试的测试用例进行软件测试。上述方案中通过在测试用例中配置测试标识,通过测试标识的值从测试用例集中筛选出用于进行软件测试的测试用例,如此可以更加灵活控制测试用例是否用于软件测试,提高软件测试的效率和灵活性。

以上所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,在附图中提供的本申请的实施例的详细描述并非旨在限制本申请的保护范围,而仅仅是表示本申请的选定实施例。基于此,本申请的保护范围应以权利要求的保护范围为准。此外,基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下可获得的所有其它实施例,都应属于本申请保护的范围。

相关技术
  • 一种重复传输的激活/去激活方法、基站、终端及装置
  • 用于传输参考信号的方法和通信装置
  • 信息传输的方法和通信装置
  • 通信光的传输方法及装置
  • 用于混合自动重复请求传输的通信装置和通信方法
  • 重复传输的配置和或激活方法、重复传输的方法及装置
技术分类

06120116525866