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

软件测试设备、方法、电子设备及计算机程序产品

文献发布时间:2023-06-19 18:32:25


软件测试设备、方法、电子设备及计算机程序产品

技术领域

本申请涉及软件测试技术领域,尤其涉及一种软件测试设备、方法、电子设备及计算机程序产品。

背景技术

目前在软件中间件(以下简称中间件)开发或使用过程中,需要进行相关测试,如冒烟测试、基准测试、负载测试、接口测试、压力测试以及瓶颈测试等,但考虑到中间件需要支持大量复杂的场景,因此,除了上述测试外,还需要进行场景化测试。

场景化测试,包括手动场景化测试和自动场景化测试,其中,手动场景化测试是通过人工在终端手动输入选项的方式进行测试,存在测试效率低下,浪费大量的人力物力的问题。而自动场景化测试,存在测试场景有限的问题,测试人员如果想增加测试场景,则需要重新编写代码,因此,随着测试场景增加,测试接口与测试场景之间的耦合度变高,后期的维护成本也会增加。

发明内容

本申请提供一种软件测试设备、方法、电子设备及计算机程序产品,用以解决现有技术中中间件的手动场景化测试存在测试效率低和自动场景化存在测试接口与测试场景之间耦合度高的问题。

根据本申请的第一方面,提供了一种软件测试设备,包括解析模块和执行模块,所述执行模块与所述解析模块连接;

所述解析模块用于接收与测试场景的配置文件相关的输入的用户界面,还用于解析所述配置文件,获得所述测试场景对应的操作、所述操作对应的步骤以及所述步骤的第一配置属性,还用于向所述执行模块传输所述测试场景对应的操作、所述操作对应的步骤以及所述步骤的第一配置属性;

所述执行模块用于接收所述测试场景对应的操作、所述操作对应的步骤以及所述步骤的第一配置属性,还用于接收与目标测试信息相关的输入的用户界面,还用于根据所述测试场景对应的操作、所述操作对应的步骤以及所述目标测试信息,确定目标操作和所述目标操作对应的目标步骤,还用于根据所述步骤的第一配置属性、预先存储的所述步骤的第二配置属性以及所述目标步骤的执行函数,执行软件测试。

根据本申请的第二方面,提供了一种软件测试方法,包括:

接收与测试场景的配置文件相关的输入的用户界面和与目标测试信息相关的输入的用户界面;

解析所述配置文件,获得所述测试场景对应的操作、所述操作对应的步骤以及所述步骤的第一配置属性;

根据所述测试场景对应的操作、所述操作对应的步骤以及所述目标测试信息,确定目标操作和所述目标操作对应的目标步骤;

根据所述步骤的第一配置属性、预先存储的所述步骤的第二配置属性以及所述目标步骤的执行函数,执行软件测试。

根据本申请的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第二方面所述的软件测试方法。

根据本申请的第四方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时实现如第二方面所述的软件测试方法。

本申请实施例中,解析模块能够对构建的测试场景的配置文件进行解析,获得测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性,执行模块根据测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性实现自动化软件测试,提高测试效率,降低调试成本,以及节省人力物力;而且通过在解析模块输入测试场景的配置文件,实现丰富测试场景的构建,不需要重新编写代码,而且实现测试接口与测试场景分离,无需进行适配,测试接口与测试场景之间的耦合度降低,后期维护成本也会降低。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是本申请实施例提供的软件测试设备的结构示意图之一;

图2是本申请实施例提供的软件测试设备的结构示意图之二;

图3是本申请实施例提供的软件测试设备的结构示意图之三;

图4是本申请实施例提供的软件测试方法的流程示意图之一;

图5是本申请实施例提供的软件测试方法的流程示意图之二。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在进行本申请的具体实施例的说明之前,首先进行如下说明。

测试场景(scene):一个测试场景由一个或多个操作组成。

操作(action):用于表示客户端和服务端需要执行的特定操作,一个操作由一个或多个步骤组成,是构建测试场景的基本单元。

步骤(step):用于表示服务端或客户端能够操作的最小执行单元,是构建操作的基本单元,一般情况下,每一个步骤都具备一些配置属性。

需要说明的是,下述本申请实施例适用于中间件的场景化测试,所涉及到的测试场景、操作以及步骤的具体内容,本领域技术人员可以根据测试需求进行设计,在此不作限定。

其中,中间件是一种位于硬件、操作系统等平台和应用程序之间的通用服务软件,为处于上层的应用软件提供运行于开发的环境,能够帮助用户灵活、高效地开发和集成复杂的应用软件。常见的中间件有软件开发工具包(Software Development Kit,SDK),能够与一些应用软件编译在一起,从而提供一些功能接口来支持应用软件的功能实现。例如,将软件开发工具包编译到视频软件中以支持视频输出功能,因此,软件工具包(即中间件)的性能直接影响应用软件性能,所以为了确保应用软件性能,需要对中间件进行测试。

本申请实施例提供一种软件测试设备。

如图1所示,该软件测试设备包括:解析模块101和执行模块102,执行模块102与解析模块101连接;

解析模块101用于接收与测试场景的配置文件相关的输入的用户界面,还用于解析配置文件,获得测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性,还用于向执行模块102传输测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性;

执行模块102用于接收测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性,还用于接收与目标测试信息相关的输入的用户界面,还用于根据测试场景对应的操作、操作对应的步骤以及目标测试信息,确定目标操作和目标操作对应的目标步骤,还用于根据步骤的第一配置属性、预先存储的步骤的第二配置属性以及目标步骤的执行函数,执行软件测试。

其中,测试场景的配置文件可以是测试人员在用户界面根据测试需求输入的,如此,在测试场景增加时,测试人员可以根据测试需求修改配置文件,从而构建丰富的测试场景,不需要重新编写代码,极大提高测试效率,而且降低了调试成本。

目标测试信息可以是测试人员在用户界面根据本次软件测试需求输入的。

需要说明的是,测试人员输入测试场景的配置文件的用户界面和输入目标测试信息的用户界面可以是相同的用户界面,当然也可以是不同的用户界面。其中,该用户界面用于选择测试场景的配置文件的地址,从而测试场景的配置文件可以加载到解析模块101,以及还用于在对应选项处输入目标测试信息的具体信息内容,从而目标测试信息可以加载到执行模块102。

步骤的第二配置属性可以是测试人员预先存储的步骤的初始化配置属性,具体可以涉及服务端和客户端的步骤的配置属性。同样的,步骤的第一配置属性也可以涉及服务端和客户端的步骤的配置属性。

其中,配置属性可以是实际测试接口的输入参数,该输入参数由测试接口确认;或者还用于指示如何测试实际测试接口的配置项,例如并发调用实际测试接口的线程个数、实际测试接口调用的个数以及两个测试接口调用的间隔等。测试场景对应的操作可以理解为测试场景需要执行的操作;而操作对应的步骤可以理解为操作需要执行的步骤。

还需要说明的是,测试场景可以对应一个或多个操作,操作可以对应一个或多个步骤,也就是说,测试场景对应的操作可以理解为测试场景对应的操作序列,操作对应的步骤可以理解为操作对应的步骤序列。

其中,执行模块102在步骤的第一配置属性和第二配置属性中,选择目标步骤所对应的第一配置属性和第二配置属性,从而根据该目标步骤的第一配置属性和第二配置属性,对应执行目标步骤的执行函数,实现测试人员设定的软件场景化测试。

相关技术中,软件需要支持场景化测试,而场景化测试分为手动场景化测试和自动场景测试,其中,手动场景化测试存在测试效率低下,增加调试成本,以及浪费人力物力的问题;自动场景化测试随着测试场景增加,存在测试接口与测试场景之间耦合度高的问题。

鉴于此,本申请实施例提供一种软件测试设备,包括解析模块和执行模块,执行模块能够根据解析模块获得的测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性实现自动化软件测试,提高测试效率,降低调试成本,以及节省人力物力;而且通过在解析模块输入测试场景的配置文件,实现丰富测试场景的构建,不需要重新编写代码,而且实现测试接口与测试场景分离,无需进行适配,测试接口与测试场景之间的耦合度降低,后期维护成本也会降低。

在一些可选实施方式中,目标测试信息包括以下至少一项:

目标测试场景标识(SceneID);

目标域标识(DomainID);

目标进程标识(ProcessName)。

本申请实施例中,目标测试场景标识可以是目标测试场景的名称,用于表示测试场景的标识,该目标测试场景标识决定了测试用例的测试内容和参与的域控制器进程。

目标域标识可以是目标域的名称,用于表示软件测试程序所运行的域控制器,需要说明的是,该软件测试程序可以运行在车辆的域控制器,车辆的域控制器包括网关域控制器、智能驾驶域控制器以及智能座舱域控制器等。

目标进程标识可以是目标进程名称,由于软件测试程序在同一个域内存在多个进程构成的测试场景,因此采用目标进程标识表示软件测试程序运行的进程,以便于区分出软件测试程序当前需要运行的进程。

在一些可选实施方式中,还包括测试接口模块,如图2所示,该测试接口模块103分别与解析模块101和执行模块102连接;

解析模块101用于向测试接口模块103传输步骤的第一配置属性;

测试接口模块103用于接收步骤的第一配置属性,还用于预先存储步骤的第二配置属性,还用于执行以下其中一项:

向执行模块102传输步骤的第一配置属性和第二配置属性;

根据步骤的第一配置属性和第二配置属性,确定步骤的配置属性,并向执行模块102传输步骤的配置属性。

需要说明的是,解析模块101用于解析测试场景的配置文件,获得步骤的第一配置属性,并将该步骤的第一属性缓存到测试接口模块103。

其中,步骤的第一配置属性,可以是测试人员想要测试的步骤的配置属性。如果测试人员想增加软件测试的测试场景,可以通过修改测试场景的配置文件实现。也就是说,测试人员可以根据需求,通过测试场景的配置文件,构建丰富的测试场景。

步骤的第二配置属性可以理解为是步骤的初始化配置属性,测试人员将步骤的初始化配置属性缓存到测试接口模块103。

测试接口模块103用于向执行模块102传输步骤的第一配置属性和第二配置属性,执行模块102用于在执行软件测试时,根据步骤的第一配置属性和步骤的第二配置属性,对步骤进行更新配置,确定步骤的配置属性;或者,测试接口模块103用于根据步骤的第一配置属性和第二配置属性,对步骤进行更新配置,确定步骤的配置属性,并向执行模块102传输该步骤的配置属性。

在一些可选实施方式中,执行模块102具体用于:

接收测试场景对应的操作、操作对应的步骤、步骤的第一配置属性、与目标测试信息相关的输入的用户界面、步骤的第二配置属性、测试信息与操作之间的第一映射关系、步骤与配置属性之间的第二映射关系以及与步骤的执行函数相关的第一接口;

根据测试场景对应的操作、目标测试信息以及第一映射关系,确定目标操作;

根据操作对应的步骤和目标操作,确定目标操作对应的目标步骤;

根据步骤的第一配置属性、步骤的第二配置属性、第二映射关系以及目标步骤,确定目标步骤的第一配置属性和第二配置属性;

根据第一接口和目标步骤,确定目标步骤的执行函数;

根据目标步骤的第一配置属性、第二配置属性以及执行函数,执行软件测试。

需要说明的是,执行模块102用于接收第一接口,该第一接口是与步骤的执行函数相关的接口,还是提供注册步骤的接口。此外,执行模块102还用于接收第二接口,该第二接口是提供注册操作的接口,还是获取与操作相关的接口,可以作为测试场景与步骤之间的桥梁,具体用于根据该第二接口,对目标操作进行注册,从而确定目标操作对应的目标步骤。

如图3所示,本申请实施例中,解析模块101包括测试场景解析器(用SceneParser表示);执行模块102包括测试场景执行器(用SceneExecutor表示)、操作管理器(用ActionManager表示)以及步骤管理器(用StepManager表示),测试场景执行器与操作管理器连接,操作管理器分别与解析模块101和步骤管理器连接,步骤管理器与测试接口模块103连接;测试接口模块103包括配置管理器(用ConfigManager表示),配置管理器预先存储步骤的配置属性,配置属性可以包括服务端和客户端需要执行的步骤的配置属性,这里,预先存储的步骤的配置属性即本申请实施例中的步骤的第二配置属性。

其中,测试场景解析器用于将测试场景对应的操作缓存到测试场景执行器、将操作对应的步骤缓存到操作管理器以及将步骤的第一配置属性缓存到配置管理器。

测试场景执行器用于接收测试人员在用户界面输入的目标测试信息和测试信息与操作之间的第一映射关系,以及接收测试场景解析器缓存的测试场景对应的操作;根据目标测试信息、第一映射关系以及测试场景对应的操作,确定目标操作,并将目标操作传输到操作管理器。

操作管理器用于接收测试场景执行器传输的目标操作和测试人员注册的第二接口;根据第二接口和测试场景解析器缓存的操作对应的步骤,获取目标操作对应的目标步骤;并将目标步骤传输到步骤管理器。

步骤管理器用于获取测试人员输入的步骤与配置属性之间的第二映射关系,获取测试人员注册的第一接口以及获取操作管理器传输的目标步骤;根据第一接口和第二映射关系,获取配置管理器缓存的目标步骤的第一配置属性、配置管理器预先存储的目标步骤的第二配置属性、目标步骤的执行函数;根据目标步骤的第一配置属性、第二配置属性以及执行函数,执行软件测试。

在一些可选实施方式中,配置文件和目标测试信息的数据类型均为字符串类型。

其中,配置文件的数据类型为字符串,解析配置文件获得的测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性的数据类型也均为字符串类型,而且预先存储的步骤的第二配置属性、目标测试信息、测试信息与操作之间的第一映射关系以及步骤与配置属性之间的第二映射关系的数据类型也均为字符串类型。字符串类型可读性好,而且通过字符串的适配方式,大大降低了测试场景之间的耦合度。

综上,本申请实施例的软件测试设备,基于模块化,具有高内聚、低耦合的优势,能够极大避免测试场景增加导致的耦合度变高、后期维护成本增加的问题。具体的,测试人员可以根据测试需求,构建测试场景的配置文件,实现丰富的测试场景,以及实现测试场景与测试接口分离,无需额外的适配操作;配置文件的数据类型为字符串类型极大降低测试场景和测试接口之间的耦合度,从而降低调试成本和后期维护成本;而且通过解析模块加载测试场景的配置文件,并解析配置文件,从而执行模块可以根据解析模块解析获得的测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性执行软件测试,实现自动化测试,尤其适用于中间件的自动化测试,提高测试效率,而且相比于硬编码方式,具有更高的灵活性。

本申请实施例还提供一种软件测试方法。

如图4所示,该软件测试方法包括如下步骤:

步骤401,接收与测试场景的配置文件相关的输入的用户界面和与目标测试信息相关的输入的用户界面;

步骤402,解析所述配置文件,获得所述测试场景对应的操作、所述操作对应的步骤以及所述步骤的第一配置属性;

步骤403,根据所述测试场景对应的操作、所述操作对应的步骤以及所述目标测试信息,确定目标操作和所述目标操作对应的目标步骤;

步骤404,根据所述步骤的第一配置属性、预先存储的所述步骤的第二配置属性以及所述目标步骤的执行函数,执行软件测试。

本申请实施例提供一种软件测试方法,能够对测试场景的配置文件进行解析,获得测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性,从而根据测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性实现自动化软件测试,提高测试效率,降低调试成本,以及节省人力物力;而且通过测试场景的配置文件,实现丰富测试场景的构建,而且实现测试接口与测试场景分离,无需进行适配,测试接口与测试场景之间耦合度降低,后期维护成本也会降低。

在一些可选实施方式中,所述目标测试信息包括以下至少一项:

目标测试场景标识;

目标域标识;

目标进程标识。

在一些可选实施方式中,步骤403包括:

接收测试信息与操作之间的第一映射关系;

根据所述测试场景对应的操作、所述目标测试信息以及所述第一映射关系,确定所述目标操作;

根据所述操作对应的步骤和所述目标操作,确定所述目标操作对应的目标步骤。

在一些可选实施方式中,步骤404包括:

接收步骤与配置属性之间的第二映射关系和与步骤的执行函数相关的第一接口;

根据所述步骤的第一配置属性、所述步骤的第二配置属性、所述第二映射关系以及所述目标步骤,确定所述目标步骤的第一配置属性和第二配置属性;

根据所述第一接口和所述目标步骤,确定所述目标步骤的执行函数;

根据所述目标步骤的第一配置属性、第二配置属性以及执行函数,执行软件测试。

在一些可选实施方式中,所述配置文件和所述目标测试信息的数据类型为字符串。

下面,结合图5说明本申请实施例的软件测试方法的实现流程。

步骤501,测试接口模块中的步骤管理器注册第一接口,并加载配置管理器预先存储的步骤的第二配置属性。

步骤502,解析模块中的测试场景解析器解析测试场景的配置文件,获得测试场景对应的操作、操作对应的步骤以及步骤的第一配置属性,并将测试场景对应的操作缓存到执行模块中的测试场景执行器,将操作对应的步骤缓存到执行模块中的操作管理器,以及将步骤的第一配置属性缓存到执行模块中的步骤管理器。

步骤503,测试场景执行器根据目标测试信息和测试场景对应的操作,确定目标操作,并将目标操作传入操作管理器。

步骤504,操作管理器注册第二接口,根据第二接口和操作对应的步骤,确定目标操作对应的目标步骤,并将目标步骤传入步骤管理器。

步骤505,步骤管理器根据目标步骤的第一配置属性、第二配置属性和执行函数,执行软件测试。

本申请实施例还提供一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一种软件测试方法。

本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时实现上述软件测试方法实施例的各个过程。

本申请中的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、网络设备、用户设备、核心网设备、OAM或者其它可编程装置。

所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘;还可以是半导体介质,例如,固态硬盘。该计算机可读存储介质可以是易失性或非易失性存储介质,或可包括易失性或非易失性两种类型的存储介质。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 溯源分析方法、电子设备及计算机程序产品
  • 文本分类方法、电子设备及计算机程序产品
  • 图像分类方法及装置、电子设备、计算机程序及存储介质
  • 一种测试设备的管理系统、方法及电子设备
  • 射频电路及电路测试设备、测试方法、电子设备
  • 用于测试设备参数的系统、方法和计算机程序产品
  • 用于测试设备的方法、装置及计算机程序产品
技术分类

06120115601772