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

软件测试方法和装置

文献发布时间:2023-06-19 19:16:40


软件测试方法和装置

技术领域

本申请涉及计算机技术领域,特别涉及一种软件测试方法和装置。

背景技术

软件的开发过程通常包括编码阶段、构建阶段和运行阶段。编码阶段指的是编写软件的源代码的阶段。构建阶段指的是根据软件的源代码构建软件包的阶段。运行阶段指的是根据软件包运行软件的阶段。

为了提升软件质量,通常需要在软件的开发过程对软件进行测试。目前,通常在编码阶段对软件的源代码进行测试。若源代码测试成功,则根据源代码构建软件包,并根据软件包运行软件。

但是,在软件的开发过程中,构建阶段和运行阶段也可能会出现软件质量问题,目前仅在编码阶段进行软件测试,无法发现在构建阶段和运行阶段存在的质量问题。因此目前的软件测试方案的测试效果较差。

发明内容

本申请提供了一种软件测试方法和装置,有助于改善软件测试效果,在较大范围内实现对软件安全规范的看护,例如实现对软件安全规范的全量看护。本申请技术方案如下:

第一方面,提供了一种软件测试方法,该方法包括:在目标软件的开发过程中的目标阶段,根据目标测试集对目标软件进行测试。其中,该开发过程包括n个阶段,每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合阶段的开发要求。目标阶段包括n个阶段中的至少两个阶段,目标测试集是目标阶段对应的测试集,n为大于1的整数。

本申请提供的技术方案,由于在目标软件的开发过程中的至少两个阶段对目标软件进行测试,因此可以改善软件测试效果。其中,测试集可以是软件安全规范,因此本申请可以在较大范围内实现对软件安全规范的看护,例如实现对软件安全规范的全量看护。

可选的,所述n个阶段包括编码阶段、构建阶段和运行阶段,目标阶段包括编码阶段、构建阶段和运行阶段中的至少两个阶段。例如,目标阶段为编码阶段和构建阶段,因此本申请可以在编码阶段和构建阶段实现对软件安全规范的看护。再例如,目标阶段为编码阶段和运行阶段,因此本申请可以在编码阶段和运行阶段实现对软件安全规范的看护。又例如,目标阶段为构建阶段和运行阶段,因此本申请可以在构建阶段和运行阶段实现对软件安全规范的看护。还例如,目标阶段包括编码阶段、构建阶段和运行阶段,因此本申请可以在编码阶段、构建阶段和运行阶段实现对软件安全规范的看护,即,实现对软件安全规范的全量看护。

可选的,在目标软件的开发过程中的目标阶段,根据目标测试集对目标软件进行测试,包括以下至少两项:在编码阶段,根据编码测试集对目标代码进行测试,目标代码是目标软件的源代码,编码测试集包括至少一条编码测试规则,编码测试规则用于测试目标代码是否符合目标软件的编码要求;在构建阶段,根据构建测试集对目标软件包进行测试,目标软件包是根据目标代码构建的目标软件的软件包,构建测试集包括至少一条构建测试规则,构建测试规则用于测试目标软件包是否符合目标软件的构建要求;在运行阶段,根据运行测试集对运行在目标运行环境中的目标软件进行测试,运行测试集包括至少一条运行测试规则,运行测试规则用于测试目标软件的运行过程是否符合目标软件的运行要求。

其中,编码阶段的测试过程、构建阶段的测试过程以及运行阶段的测试过程可以持续自动执行。即,在执行完编码阶段的测试时自动触发构建阶段的测试,在执行完构建阶段的测试时自动触发运行阶段的测试。

本申请提供的技术方案,在编码阶段根据编码测试集对目标代码进行测试可以实现对编码测试规则的看护,在构建阶段根据构建测试集对目标软件包进行测试可以实现对构建测试规则的看护,在运行阶段根据运行测试集对目标软件进行测试可以实现对运行测试规则的看护。例如,编码测试集可以是编码安全规范,构建测试集可以是构建安全规范,运行测试集可以是运行安全规范,本申请实现对编码安全规范、构建安全规范以及运行安全规范的看护。

可选的,根据编码测试集对目标代码进行测试,包括:通过编码测试工具根据编码测试集对目标代码进行测试;根据构建测试集对目标软件包进行测试,包括:通过构建测试工具根据构建测试集对目标软件包进行测试;根据运行测试集对运行在目标运行环境中的目标软件进行测试,包括:通过运行测试工具根据运行测试集对运行在目标运行环境中的目标软件进行测试。

本申请提供的技术方案,由于在不同阶段可以通过不同的测试工具对目标软件进行测试,因此可以便于对目标软件的灵活测试,并且可以便于测试工具的管理。例如,需要在编码阶段对目标软件进行测试时,仅需要调用编码测试工具,而无需调用构建测试工具和运行测试工具,同理,需要在构建阶段对目标软件进行测试时,仅需要调用构建测试工具,而无需调用编码测试工具和运行测试工具。

可选的,编码测试工具包括至少一个子编码测试工具,每个子编码测试工具对应至少一条编码测试规则,构建测试工具包括至少一个子构建测试工具,每个子构建测试工具对应至少一条构建测试规则,运行测试工具包括至少一个子运行测试工具,每个子运行测试工具对应至少一条运行测试规则。通过编码测试工具根据编码测试集对目标代码进行测试,包括:通过目标子编码测试工具对目标代码进行扫描,以测试目标代码是否符合目标编码测试规则,目标编码测试规则是目标子编码测试工具对应的编码测试规则。通过构建测试工具根据构建测试集对目标软件包进行测试,包括:通过目标子构建测试工具对目标软件包进行扫描,以测试目标软件包是否符合目标构建测试规则,目标构建测试规则是目标子构建测试工具对应的构建测试规则。通过运行测试工具根据运行测试集对运行在目标运行环境中的目标软件进行测试,包括:通过目标子运行测试工具对运行在目标运行环境中的目标软件进行扫描,以测试目标软件是否符合目标运行测试规则,目标运行测试规则是目标子运行测试工具对应的运行测试规则。其中,每个子测试工具(包括子编码测试工具、子构建测试工具和子运行测试工具)可以覆盖至少一条测试规则,即,子测试工具与测试规则可以是一对多的关系。

本申请提供的技术方案,由于子测试工具与测试规则具有对应关系,因此在需要测试目标软件是否符合某一条测试规则时,仅需调用该测试规则对应的测试工具对目标软件进行测试,因此可以便于对目标软件的灵活测试,并且可以便于测试工具的管理。

可选的,该方法还包括:提供工具配置界面;根据在工具配置界面中触发的对目标软件进行测试的配置指令,确定用于对目标软件进行测试的目标工具,目标工具包括编码测试工具、构建测试工具和运行测试工具中的至少两类。

本申请提供的技术方案,软件测试装置可以提供工具配置界面,使得工作人员可以对测试工具进行自由选择和配置,实现对目标软件的灵活测试。即,软件测试装置可以提供工作人员对测试工具选择和配置机制,方便持续自动化的对目标软件进行测试。

可选的,该方法还包括以下至少一项:根据目标代码构建目标软件包;根据目标软件包在目标运行环境中运行目标软件。例如,通过软件包构建工具(如Debreate工具、Gradle工具、Gul工具等)根据目标代码构建目标软件包。根据目标软件包将目标软件部署在目标运行环境中,使目标软件在目标运行环境中运行。

可选的,该方法还包括:检测是否满足测试条件。相应的,根据目标测试集对目标软件进行测试,包括:当满足测试条件时,根据目标测试集对目标软件进行测试。

本申请提供的技术方案,由于在满足测试条件时根据目标测试集对目标软件进行测试,即,如果不满足测试条件,则不对目标软件进行测试,由此可以避免不必要的测试过程,减小不必要的测试开销。

可选的,测试条件包括以下至少一项:目标软件的代码被存储至代码仓;代码仓中存储的目标软件的代码被更新;到达指定时刻;接收到针对目标软件的测试指令。

可选的,该方法还包括:在可视化界面中展示目标软件的测试结果。其中,目标软件的测试结果可以包括每条测试规则对应的测试结果。

本申请提供的技术方案,目标软件的测试结果可以包括每条测试规则对应的测试结果,目标软件的测试结果可以作为测试规则的举证证据,软件测试装置展示目标软件的测试结果,可以便于工作人员获知已被测试的测试规则。

第二方面,提供了一种软件测试装置,该软件测试装置包括用于执行如上述第一方面或第一方面的任一可选方式所提供的软件测试方法的各个单元。所述单元可以基于软件、硬件或软件和硬件的结合实现,且所述单元可以基于具体实现进行任意组合或分割。

第三方面,提供了一种软件测试装置,包括存储器和处理器;

存储器用于存储计算机程序;

处理器用于执行存储器中存储的计算机程序以使得该软件测试装置执行如上述第一方面或第一方面的任一可选方式所提供的软件测试方法。

第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被执行时实现如上述第一方面或第一方面的任一可选方式所提供的方法。

第五方面,提供了一种计算机程序产品,该计算机程序产品包括程序或代码,该程序或代码被执行时,实现如上述第一方面或第一方面的任一可选方式所提供的方法。

第六方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片运行时用于实现如上述第一方面或第一方面的任一可选方式所提供的方法。

本申请提供的技术方案带来的有益效果包括:

本申请提供的技术方案,目标软件的开发过程包括n个阶段,每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合该阶段的开发要求。软件测试装置在目标软件的开发过程中的目标阶段,根据该目标阶段对应的目标测试集对目标软件进行测试,以确定该目标软件是否符合目标阶段的开发要求,该目标阶段包括该n个阶段中的至少两个阶段。由于软件测试装置可以在目标软件的开发过程中的至少两个阶段对目标软件进行测试,因此可以改善软件测试效果。其中,测试集可以是软件安全规范,由于软件测试装置在至少两个阶段对目标软件进行测试,因此可以在较大范围内实现对软件安全规范的看护,例如实现对软件安全规范的全量看护。

附图说明

图1是本申请实施例提供的一种软件测试方法的流程图;

图2是本申请实施例提供的一种根据目标测试集对目标软件进行测试的方法流程图;

图3是本申请实施例提供的一种可视化界面的示意图;

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

图5是本申请实施例提供的一种工具配置界面的示意图;

图6是本申请实施例提供的再一种软件测试方法的流程图;

图7是本申请实施例提供的一种软件测试装置的结构示意图;

图8是本申请实施例提供的一种测试单元的结构示意图;

图9是本申请实施例提供的另一种软件测试装置的结构示意图。

具体实施方式

下面将结合附图对本申请实施方式作进一步地详细描述。

软件的开发过程通常包括编码阶段、构建阶段和运行阶段。编码阶段指的是编写软件的源代码的阶段。构建阶段指的是根据软件的源代码构建软件包的阶段。运行阶段指的是根据软件包运行软件的阶段。为了提升软件质量以及保证软件的安全性与可靠性,软件的开发过程通常需要受一系列的安全规范的约束。由于业务场景、编程语言、产品框架等的复杂性,软件安全规范本身比较复杂,并且软件安全规范分布在软件开发过程中的各个阶段。例如,软件安全规范包括分布在编码阶段的编码安全规范,分布在构建阶段的构建安全规范,分布在运行阶段的运行安全规范。

目前,通常在编码阶段对软件的源代码进行测试,以确定软件的源代码是否符合编码安全规范。在确定软件的源代码符合编码安全规范之后,根据源代码构建软件包并运行软件。

但是,软件安全规范不仅分布在编码阶段,还分布在构建阶段和运行阶段,目前仅在编码阶段对软件的源代码进行测试,无法发现软件在构建阶段和运行阶段存在的质量问题,因此测试效果较差。此外,目前的测试方案中,对软件进行测试的测试用例的举证工作依赖人工,耗费大量人力,容易出错、遗漏,而且测试效率较低。

有鉴于目前的软件测试方案存在的上述问题,本申请实施例提供一种软件测试方法及装置。在本申请中,目标软件的开发过程包括n个阶段,该n个阶段中的每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合该阶段的开发要求。软件测试装置在目标软件的开发过程中的目标阶段,根据该目标阶段对应的目标测试集对目标软件进行测试,以确定该目标软件是否符合目标阶段的开发要求,该目标阶段包括该n个阶段中的至少两个阶段。由于软件测试装置可以在目标软件的开发过程中的至少两个阶段对目标软件进行测试,因此可以改善软件测试效果。其中,测试集可以是软件安全规范,由于软件测试装置在至少两个阶段对目标软件进行测试,因此可以在较大范围内实现对软件安全规范的看护,例如实现对软件安全规范的全量看护。

本申请的软件测试方法由软件测试装置来执行,该软件测试装置可以是计算机设备,例如是服务器或终端设备。终端设备可以是智能手机、平板电脑、台式计算机等。由于本申请的软件测试方法由软件测试装置来执行,因此可以提高测试效率。

请参考图1,其示出了本申请实施例提供的一种软件测试方法的流程图。该软件测试方法可以由软件测试装置来执行。如图1所示,该方法包括如下步骤S101至S102。

S101.在目标软件的开发过程中的目标阶段,根据目标测试集对目标软件进行测试。其中,该开发过程包括n个阶段,每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合该阶段的开发要求,目标阶段包括该n个阶段中的至少两个阶段,目标测试集是目标阶段对应的测试集,n为大于1的整数。

在本申请实施例中,目标软件的开发过程可以包括n个阶段,每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合该阶段的开发要求。可选的,该n个阶段包括编码阶段、构建阶段和运行阶段。编码阶段对应的测试集为编码测试集,编码测试集中的测试规则为编码测试规则,编码测试集中的编码测试规则用于测试目标软件是否符合编码要求(即测试目标软件的源代码的编写是否符合编码要求)。构建阶段对应的测试集为构建测试集,构建测试集中的测试规则为构建测试规则,构建测试集中的构建测试规则用于测试目标软件是否符合构建要求(即测试目标软件的软件包的构建是否符合构建要求)。运行阶段对应的测试集为运行测试集,运行测试集中的测试规则为运行测试规则,运行测试集中的运行测试规则用于测试目标软件是否符合运行要求(即测试目标软件的运行过程是否符合运行要求)。

以编码阶段、构建阶段和运行阶段中的每个阶段对应一个测试集为例说明。编码阶段对应的编码测试集可以为A={编码测试规则A1,编码测试规则A2,编码测试规则A3......}。构建阶段对应的构建测试集可以为B={构建测试规则B1,构建测试规则B2,构建测试规则B3......}。运行阶段对应的运行测试集可以为C={运行测试规则C1,运行测试规则C2,运行测试规则C3......}。例如,编码测试规则A1可以是“内存分配后必须判断内存是否分配成功”,编码测试规则A2可以是“不要访问已释放的内存”。构建测试规则B1可以是“堆栈不可执行是否打开”,构建测试规则B2可以是“地址随机化是否打开”。运行测试规则C1可以是“软件的系统自身操作维护类口令必须满足口令安全要求”,运行测试规则C2可以是“系统支持无法从用户面直接登录链接管理接口”。

本申请实施例中“测试集”这一描述仅仅是一种示例,并不够成对本申请技术方案的限制。在一些实施例中,测试集也被称为软件安全规范或者采用其他类似的称呼。例如编码测试集被称为编码安全规范,构建测试集被称为构建安全规范,运行测试集称为运行安全规范。

在本申请实施例中,目标软件的开发过程包括编码阶段、构建阶段和运行阶段,目标阶段包括编码阶段、构建阶段和运行阶段中的至少两个阶段。软件测试装置可以在目标阶段,通过测试工具,根据目标测试集对目标软件进行测试。例如,目标阶段包括编码阶段和构建阶段;或者,目标阶段包括编码阶段和运行阶段;或者,目标阶段包括构建阶段和运行阶段;或者,目标阶段包括编码阶段、构建阶段和运行阶段,本申请实施例对此不作限定。

为了便于描述,将在编码阶段对目标软件进行测试的测试工具称为编码测试工具,将在构建阶段对目标软件进行测试的测试工具称为构建测试工具,将在运行阶段对目标软件进行测试的测试工具称为运行测试工具。在可选的实施例中,请参考图2,其示出了本申请实施例提供的一种根据目标测试集对目标软件进行测试的方法流程图。如图2所示,该方法包括以下步骤S1011至S1013中的至少两个步骤。

S1011.在编码阶段,根据编码测试集对目标代码进行测试。其中,目标代码是目标软件的源代码,编码测试集包括至少一条编码测试规则,编码测试规则用于测试目标代码是否符合目标软件的编码要求。

可选的,软件测试装置通过编码测试工具,根据编码测试集对目标代码进行测试。即,软件测试装置调用编码测试工具对目标代码进行测试。其中,目标代码是目标软件的源代码,目标代码可以是基于C语言、C++语言、Java语言等任何编程语言编写的代码。

在本申请实施例中,编码测试工具包括至少一个子编码测试工具,每个子编码测试工具对应至少一条编码测试规则,每个子编码测试工具用于测试目标代码是否符合该子编码测试工具所对应的编码测试规则(也即,测试目标代码的编写过程是否符合该子编码测试工具所对应的编码测试规则)。软件测试装置可以通过目标子编码测试工具对目标代码进行扫描,以测试目标代码是否符合目标编码测试规则。其中,目标编码测试规则是目标子编码测试工具对应的编码测试规则,目标子编码测试工具是编码测试工具中的任一子编码测试工具。例如,软件测试装置通过编码测试工具中的每个子编码测试工具对目标代码进行扫描,以测试目标代码是否符合该子编码测试工具对应的编码测试规则。

示例的,编码测试工具包括子编码测试工具A1、子编码测试工具A2、子编码测试工具A3......,编码测试工具与编码测试集A中的编码测试规则的对应关系可以如下表1所示:

表1

如表1所示,子编码测试工具A1对应编码测试规则A1,子编码测试工具A1用于测试目标代码是否符合编码测试规则A1,软件测试装置可以调用子编码测试工具A1对目标代码进行扫描,以测试目标代码是否符合编码测试规则A1。子编码测试工具A2对应编码测试规则A2,子编码测试工具A2用于测试目标代码是否符合编码测试规则A2,软件测试装置可以调用子编码测试工具A2对目标代码进行扫描,以测试目标代码是否符合编码测试规则A2。子编码测试工具A3对应编码测试规则A3,子编码测试工具A3用于测试目标代码是否符合编码测试规则A3,软件测试装置可以调用子编码测试工具A3对目标代码进行扫描,以测试目标代码是否符合编码测试规则A3,以此类推。

S1012.在构建阶段,根据构建测试集对目标软件包进行测试。其中,目标软件包是根据目标代码构建的目标软件的软件包,构建测试集包括至少一条构建测试规则,构建测试规则用于测试目标软件包是否符合目标软件的构建要求。

可选的,在构建阶段,软件测试装置根据目标代码构建目标软件包,然后通过构建测试工具,根据构建测试集对目标软件包进行测试。例如,软件测试装置通过软件包构建工具(如Debreate工具、Gradle工具、Gul工具等),根据目标代码构建目标软件包,在根据目标代码构建目标软件包的过程中,软件测试装置可以对目标代码进行编译。其中,目标软件包包括至少一个二进制的可执行文件,每个可执行文件用于实现该目标软件的全部或部分功能。例如,二进制的可执行文件可以是.exe文件、.sys文件或.com等类型的文件。

在本申请实施例中,构建测试工具包括至少一个子构建测试工具,每个子构建测试工具对应至少一条构建测试规则,每个子构建测试工具用于测试目标软件包是否符合该子构建测试工具所对应的构建测试规则(也即,测试从目标代码到目标软件包的构建过程是否符合该子构建测试工具所对应的构建测试规则)。软件测试装置可以通过目标子构建测试工具对目标软件包进行扫描,以测试目标软件包是否符合目标构建测试规则。其中,目标构建测试规则是目标子构建测试工具对应的构建测试规则,目标子构建测试工具是构建测试工具中的任一子构建测试工具。例如,软件测试装置通过构建测试工具中的每个子构建测试工具对目标软件包进行扫描,以测试目标软件包是否符合该子构建测试工具对应的构建测试规则。

示例的,构建测试工具包括子构建测试工具B1、子构建测试工具B2、子构建测试工具B3......,构建测试工具与构建测试集B中的构建测试规则的对应关系可以如下表2所示:

表2

如表2所示,子构建测试工具B1对应构建测试规则B1,子构建测试工具B1用于测试从目标代码到目标软件包的构建过程是否符合构建测试规则B1,软件测试装置可以调用子构建测试工具B1对目标代码进行扫描,以测试从目标代码到目标软件包的构建过程是否符合构建测试规则B1。子构建测试工具B2对应构建测试规则B2,子构建测试工具B2用于测试从目标代码到目标软件包的构建过程是否符合构建测试规则B2,软件测试装置可以调用子构建测试工具B2对目标代码进行扫描,以测试从目标代码到目标软件包的构建过程是否符合构建测试规则B2。子构建测试工具B3对应构建测试规则B3,子构建测试工具B3用于测试从目标代码到目标软件包的构建过程是否符合构建测试规则B3,软件测试装置可以调用子构建测试工具B3对目标软件包进行扫描,以测试从目标代码到目标软件包的构建过程是否符合构建测试规则B3,以此类推。

S1013.在运行阶段,根据运行测试集对运行在目标运行环境中的目标软件进行测试。其中,运行测试集包括至少一条运行测试规则,运行测试规则用于测试目标软件的运行过程是否符合目标软件的运行要求。

可选的,在运行阶段,软件测试装置根据目标软件包将目标软件部署在目标运行环境中,使目标软件在目标运行环境中运行,然后软件测试装置通过运行测试工具,根据运行测试集对运行在目标运行环境中的目标软件进行测试。例如,软件测试装置通过软件部署工具(如ElectricFlow Cloud工具、Jenkins工具、Microsoft Visual Studio工具等)将目标软件部署到目标运行环境中。软件测试装置可以将目标软件部署在本地的目标运行环境中,也可以将目标软件部署在其他计算机设备提供的目标运行环境中,本申请实施例对此不作限定。

在本申请实施例中,运行测试工具包括至少一个子运行测试工具,每个子运行测试工具对应至少一条运行测试规则,每个子运行测试工具用于测试运行在目标运行环境中的目标软件是否符合该子运行测试工具所对应的运行测试规则(也即,测试目标软件的运行过程是否符合该子运行测试工具所对应的运行测试规则)。软件测试装置可以通过目标子运行测试工具对运行在目标运行环境中的目标软件进行扫描,以测试运行在目标运行环境中的目标软件是否符合目标运行测试规则。其中,目标运行测试规则是目标子运行测试工具对应的运行测试规则,目标子运行测试工具是运行测试工具中的任一子运行测试工具。例如,软件测试装置通过运行测试工具中的每个子运行测试工具对运行在目标运行环境中的目标软件进行扫描,以测试运行在目标运行环境中的目标软件是否符合该子运行测试工具对应的运行测试规则。

示例的,运行测试工具包括子运行测试工具C1、子运行测试工具C2、子运行测试工具C3......,运行测试工具与运行测试集C中的运行测试规则的对应关系可以如下表3所示:

表3

如表3所示,子运行测试工具C1对应运行测试规则C1,子运行测试工具C1用于测试目标软件的运行过程是否符合运行测试规则C1,软件测试装置可以调用子运行测试工具C1对运行在目标运行环境中的目标软件进行扫描,以测试目标软件的运行过程是否符合运行测试规则C1。子运行测试工具C2对应运行测试规则C2,子运行测试工具C2用于测试目标软件的运行过程是否符合运行测试规则C2,软件测试装置可以调用子运行测试工具C2对运行在目标运行环境中的目标软件进行扫描,以测试目标软件的运行过程是否符合运行测试规则C1。子运行测试工具C3对应运行测试规则C3,子运行测试工具C3用于测试目标软件的运行过程是否符合运行测试规则C3,软件测试装置可以调用子运行测试工具C3对运行在目标运行环境中的目标软件进行扫描,以测试目标软件的运行过程是否符合运行测试规则C3,以此类推。

需要说明的是,表1至表3均以子测试工具(例如子编码测试工具、子构建测试工具子运行测试工具)与测试规则一一对应为例说明,这仅仅是一种示例,并不构成对本申请技术方案的限制。实际应用中,每个子测试工具可以对应多条测试规则,当某一子测试工具对应多条测试规则时,该子测试工具用于测试目标软件是否符合该多条测试规则。

S102.在可视化界面中展示目标软件的测试结果。

软件测试装置对目标软件进行测试之后可以得到测试结果。软件测试装置可以在可视化界面中展示目标软件的测试结果,以便于实现目标软件的测试结果的可视化,从而便于工作人员查看目标软件的测试结果。可选的实施例中,软件测试装置包括显示模块(或称为显示组件),软件测试装置通过显示模块显示可视化界面,并在该可视化界面中显示目标软件的测试结果。或者,软件测试装置可以向其他的显示设备发送目标软件的测试结果,以由其他的显示设备显示目标软件的测试结果,本申请实施例对此不作限定。

如S101所述,目标软件的开发过程包括n个阶段,目标阶段包括该n个阶段中的至少两个阶段,因此目标软件的测试结果包括该至少两个阶段的测试结果。其中,每个阶段的测试结果包括该阶段对应的测试集中的至少一条测试规则对应的测试结果,每条测试规则对应的测试结果可以包括测试成功或测试失败,还可以包括针对该测试规则的告警次数(即针对该测试规则的测试过程中发生告警的次数)以及告警内容等,本申请实施例对此不作限定。

如S101所述,目标阶段可以包括编码阶段、构建阶段和运行阶段中的至少两个阶段,因此目标软件的测试结果包括编码阶段、构建阶段和运行阶段中的至少两个阶段的测试结果。本申请实施例以目标软件的测试结果包括编码阶段的测试结果(简称为编码测试结果),构建阶段的测试结果(简称为构建测试结果),运行阶段的测试结果(简称为运行测试结果)为例说明,则软件测试装置在可视化界面中展示的目标软件的测试结果可以如图3所示。

请参考图3,图3示出了本申请实施例提供的一种可视化界面00的示意图。可视化界面00中包括编码测试结果的展示区01、构建测试结果的展示区02和运行测试结果的展示区03。展示区01中展示有多条编码测试规则和每条编码测试规则对应的测试结果。例如,编码测试规则A1对应的测试结果包括“失败”、“1次告警”和“第3行”,该测试结果表示目标代码(即目标软件的源代码)不符合编码测试规则A1,在针对该编码测试规则A1对目标代码进行扫描的过程中(例如,在编码子测试工具A1对目标代码进行扫描的过程中)发生了1次告警,并且是在扫描目标代码的第3行的过程中发生了告警(即目标代码的第3行不符合编码测试规则A1)。编码测试规则A2对应的测试结果包括“成功”和“0次告警”,该测试结果表示目标代码符合编码测试规则A2,在针对该编码测试规则A2对目标代码进行扫描的过程中(例如,在编码子测试工具A2对目标代码进行扫描的过程中)发生了0次告警。展示区02中展示有多条构建测试规则和每条构建测试规则对应的测试结果。例如,构建测试规则B1对应的测试结果包括“成功”和“0次告警”,该测试结果表示目标软件包(即根据目标代码构建的目标软件的软件包)的构建过程符合构建测试规则B1,在针对该构建测试规则B1对目标软件包进行扫描的过程中(例如,在构建子测试工具B1对目标软件包进行扫描的过程中)发生了0次告警。构建测试规则B2对应的测试结果包括“失败”、“4次告警”和“文件X”,该测试结果表示目标软件包的构建过程不符合构建测试规则B2,在针对该构建测试规则B2对目标软件包进行扫描的过程中(例如,在构建子测试工具B2对目标软件包进行扫描的过程中)发生了4次告警,并且是在扫描目标软件包中的文件X的过程中发生了告警。展示区03中展示有多条运行测试规则和每条运行测试规则对应的测试结果。例如,运行测试规则C1对应的测试结果均为“成功”和“0次告警”,该测试结果表示目标软件的运行过程符合运行测试规则C1。其他以此类推。

需要说明的是,图3所示的可视化界面仅仅是本申请的一个示例,并不构成对本申请技术方案的限制。实际应用中,用于显示测试结果的可视化界面还可以是其他界面,该可视化界面中可以包括比图3更多或更少的内容。例如,该可视化界面中还可以展示告警分析(例如发生告警的代码行的内容)等,或者,该可视化界面中仅展示每条测试规则测试成功或失败,而不展示告警次次数,本申请实施例对此不作限定。

综上所述,本申请实施例提供的软件测试方法,目标阶段包括目标软件的开发过程中的至少两个阶段,软件测试装置根据目标阶段对应的目标测试集对该目标软件进行测试,由此可以实现在目标软件的开发过程中的至少两个阶段对目标软件进行测试,因此可以改善软件测试效果。其中,测试集可以是软件安全规范,由于软件测试装置在至少两个阶段对目标软件进行测试,因此可以在较大范围内实现对软件安全规范的看护。例如,该至少两个阶段包括编码阶段、构建阶段和运行阶段,则软件测试装置可以在目标软件的开发过程中的编码阶段、构建阶段和运行阶段对目标软件进行测试,可以实现对各个阶段的测试集的看护,即,实现对软件安全规范的全量看护。

在本申请实施例中,每个阶段的测试工具对应该阶段的测试集,每个子测试工具(比如子编码测试工具、子构建测试工具、子运行测试工具)对应至少一条测试规则。在软件测试装置对目标软件进行测试之前,工作人员可以进行测试工具的配置,软件测试装置根据工作人员配置的测试工具对目标软件进行测试。可选的实施例中,软件测试装置提供测试工具以及测试工具的选择功能,在对目标软件进行测试之前,工作人员可以根据目标软件所需符合的测试规则,在软件测试装置提供的测试工具中选择用于对目标软件进行测试的测试工具。

作为本申请的可选实施例,请参考图4,其示出了本申请实施例提供的另一种软件测试方法的流程图。如图4所示,该软件测试方法还包括下述步骤S103和S104。

S103.提供工具配置界面。

软件测试装置可以提供工具配置界面,该工具配置界面中可以包括测试工具的配置控件,该配置控件可以是选择控件或者其他类型的控件,本申请实施例对此不作限定。

可选的实施例中,该工具配置界面中包括编码测试工具、构建测试工具和运行测试工具这三类测试工具的选择控件,还可以包括编码测试工具、构建测试工具和运行测试工具中的每类测试工具中的每个子测试工具的选择控件。例如,该工具配置界面包括子编码测试工具的选择控件,子构建测试工具的选择控件以及子运行测试工具的选择控件。

可选的,该工具配置界面中还包括子编码测试工具、子构建测试工具和子运行测试工具中的每个子测试工具对应的测试规则,以便于工作人员获知每个子测试工具对应的测试规则,以根据目标软件所需符合的测试规则来选择相应的测试工具。

示例的,请参考图5,其示出了本申请实施例提供的一种工具配置界面10的示意图。如图5所示,工具配置界面10中包括编码测试工具的配置区11、构建测试工具的配置区12、运行测试工具的配置区13、确认控件和取消控件。配置区11用于工作人员配置编码测试工具,配置区12用于工作人员配置构建测试工具,配置区13用于工作人员配置运行测试工具。确认控件和取消控件分别可以是按钮,确认控件用于工作人员确认所配置的测试工具,取消控件用于工作人员取消当前配置的测试工具。

如图5所示,配置区11中展示有编码测试工具及其选择控件100,多个子编码测试工具以及每个子编码测试工具的选择控件110,并且还展示有每个子编码测试工具对应的编码测试规则。配置区12中展示有构建测试工具及其选择控件100,多个子构建测试工具以及每个子构建测试工具的选择控件110,并且还展示有每个子构建测试工具对应的构建测试规则。配置区13中展示有运行测试工具及其选择控件100,多个子运行测试工具以及每个子运行测试工具的选择控件110,并且还展示有每个子运行测试工具对应的运行测试规则。其中,选择控件100为全选控件,当工作人员点击某一配置区中的选择控件100时,可以实现对该配置区中展示的所有子测试工具的选择。选择控件110为单选控件,当工作人员点击某一选择控件110时,可以实现对该选择控件110对应的子测试工具的选择。例如图5所示,当工作人员点击配置区11中的选择控件100时,可以实现对子编码测试工具A1、子编码测试工具A2、子编码测试工具A3、子编码测试工具A4......的选择。当工作人员点击子编码测试工具A1的选择控件110时,可以实现对子编码测试工具A1的选择。

图5以子测试工具(例如子编码测试工具、子构建测试工具和子运行测试工具)与测试规则一一对应为例说明,这仅仅是一种示例,并不构成对本申请技术方案的限制。在实际应用中,每个子测试工具可以对应多条测试规则。当某一子测试工具对应多条测试规则时,工作人员所选择的该子测试工具测试目标软件是否符合该多条测试规则。此外,图5所示的工具配置界面仅仅是本申请的一个示例,实际应用中,工具配置界面还可以是其他界面,该工具配置界面中可以包括比图5更多或更少的内容,本申请实施例对此不作限定。

S104.根据在工具配置界面中触发的对目标软件进行测试的配置指令,确定用于对目标软件进行测试的目标工具,目标工具包括编码测试工具、构建测试工具和运行测试工具中的至少两类。

软件测试装置提供工具配置界面后,工作人员可以根据目标软件所需符合的测试规则,在该工具配置界面中选择用于对目标软件进行测试的目标工具,并触发对目标软件进行测试的配置指令。软件测试装置可以根据该配置指令,确定用于对目标软件进行测试的目标工具。其中,目标工具可以包括编码测试工具、构建测试工具和运行测试工具中的至少两类。也即,该目标工具包括子编码测试工具、子构建测试工具和子运行测试工具中的至少两个。

示例的,假设目标软件所需符合的测试规则包括编码测试规则A1、编码测试规则A2、编码测试规则A3、编码测试规则A4......、构建测试规则B1~B3、运行测试规则C1~C3。则如图5所示,工作人员可以点击配置区11中的选择控件100实现对子编码测试工具A1、子编码测试工具A2、子编码测试工具A3、子编码测试工具A4......的选择,以及、点击子构建测试工具B1~B3和子运行测试工具C1~C3中的每个子测试工具对应的选择控件110,实现对该子测试工具的选择。之后,工作人员可以点击确认控件触发对目标软件进行测试的配置指令。软件测试装置检测到该配置指令之后,根据该配置指令确定用于对目标软件进行测试的目标工具包括子编码测试工具A1、子编码测试工具A2、子编码测试工具A3、子编码测试工具A4......子构建测试工具B1~B3和子运行测试工具C1~C3。

本申请实施例提供的软件测试方法中,软件测试装置可以提供工具配置界面,使得工作人员可以对测试工具进行自由选择和配置,实现对目标软件的灵活测试。即,软件测试装置可以提供工作人员对测试工具选择和配置机制,方便持续自动化的对目标软件进行测试。

在本申请实施例中,工作人员配置测试工具之后,软件测试装置可以检测是否满足测试条件,在满足测试条件的情况下,软件测试装置触发对目标软件的测试过程。

作为本申请的可选实施例,请继续参考图4,该软件测试方法还包括下述步骤S105。

S105.检测是否满足测试条件。

可选的实施例中,软件测试装置实时或者周期性检测是否满足测试条件。

在本申请实施例中,开发人员在编写目标软件的代码之后,可以将目标软件的代码存储至代码仓,并且还可以对代码仓中存储的目标软件的代码进行更新。例如,开发人员每编写完目标软件的一个功能模块的代码,就将该功能模块的代码存储至代码仓。测试条件包括以下至少一项:目标软件的代码被存储至代码仓、代码仓中存储的目标软件的代码被更新、到达指定时刻和接收到针对目标软件的测试指令。其中,此处所述的目标软件的代码可以是目标软件的所有功能模块的代码(例如上述所述的目标代码),也可以是目标软件的某一个或某几个功能模块的代码。指定时刻可以是工作人员预先在软件测试装置中设置好的测试时刻,例如,指定时刻可以是一天内的一个或多个时刻。测试指令可以是工作人员针对目标软件触发的测试指令,例如是工作人员在软件测试装置提供的人机交互界面中触发的测试指令,可选的,测试指令还可以是其他设备向软件测试装置发送的测试指令。

可选的实施例中,软件测试装置可以对代码仓进行监控,以确定目标软件的代码是否被存储至该代码仓,和/或,确定代码仓中存储的目标软件的代码是否被更新。当目标软件的代码被存储至该代码仓,和/或,代码仓中存储的目标软件的代码被更新时,软件测试装置确定满足测试条件。软件测试装置还可以检测是否到达指定时刻,当到达指定时刻时,软件测试装置确定满足测试条件。以及,软件测试装置还可以检测是否接收到针对目标软件的测试指令,当接收到针对目标软件的测试指令时,软件测试装置确定满足测试条件。

在本申请实施例中,目标软件的软件开发方法是持续集成/持续交付(continuousintegration/continuous delivery,CI/CD)。CI/CD是一种通过在软件开发阶段引入自动化来频繁向客户交付软件的方法,CI/CD的核心概念是持续集成、持续交付和持续部署。CI/CD中包括编码阶段、构建阶段和运行阶段,本申请的软件测试方法可以将测试过程与CI/CD过程结合,通过自动化的测试工具持续自动的运行来对目标软件进行测试,实现测试规则的自动化举证,提高测试效率,且在较大范围内实现了对软件安全规范的看护。

为了便于理解本申请的技术方案,下面将测试过程与CI/CD过程结合,以在编码阶段、构建阶段和运行阶段对目标软件进行测试为例介绍介绍本申请实施例提供的软件测试方法。

请参考图6,其示出了本申请实施例提供的再一种软件测试方法的流程图。如图6所示,当软件测试装置确定满足测试条件时,触发对目标软件的测试过程。测试过程包括:

在编码阶段,软件测试装置从代码仓获取目标代码(即目标软件的源代码),并调用子编码测试工具A1~Am分别对目标代码进行扫描。其中,子编码测试工具A1~Am中的每个子编码测试工具根据该子编码测试工具对应的编码测试规则对目标代码进行扫描,以测试目标代码是否符合该编码测试规则。每个子编码测试工具对目标代码进行扫描之后,输出扫描结果(即编码测试结果)。子编码测试工具A1~Am输出扫描结果之后,进入构建阶段。

在构建阶段,软件测试装置根据目标代码构建目标软件包,并调用子构建测试工具B1~Bm分别对目标软件包进行扫描。其中,子构建测试工具B1~Bm中的每个子构建测试工具根据该子构建测试工具对应的构建测试规则对目标软件包进行扫描,以测试从目标代码到目标软件包的构建过程是否符合该构建测试规则。每个子构建测试工具对目标软件包进行扫描之后,输出扫描结果(即构建测试结果)。子构建测试工具B1~Bm输出扫描结果之后,进入运行阶段。

在运行阶段,软件测试装置将目标软件包部署在目标运行环境中,使目标软件在目标运行环境中运行,并且软件测试装置调用子运行测试工具C1~Cm对运行在目标运行环境中的目标软件进行扫描(或称为对运行有目标软件的目标运行环境进行扫描)。子运行测试工具C1~Cm中的每个子运行测试工具根据该子运行测试工具对应的运行测试规则对运行在目标运行环境中的目标软件进行扫描,以测试目标软件的运行过程是否符合该运行测试规则。每个子运行测试工具对运行在目标运行环境中的目标软件进行扫描之后,输出扫描结果(即运行测试结果)。之后,结束扫描过程。

软件测试装置可以对编码测试结果、构建测试结果和运行测试结果进行汇总,得到目标软件的测试结果,并展示目标软件的测试结果。

其中,目标软件的测试结果中可以包括每条测试规则对应的测试结果,因此目标软件的测试结果可以作为测试规则的举证证据,软件测试装置展示目标软件的测试结果,可以便于工作人员获知已被测试的测试规则。可选的,目标软件的测试结果可以作为测试用例(每个测试用例可以覆盖至少一条测试规则)的举证证据。

在本申请实施例中,软件测试装置可以包括至少一个功能模块,以实现上述软件测试方法。当该软件测试装置中包括多个功能模块时,该多个功能模块可以集成部署或分布式部署。即,该多个功能模块可以位于同一设备中,也可以分布在不同的设备中(即软件测试装置是分布式部署的软件测试系统)。

可选的实施例中,软件测试装置包括代码管理模块、构建管理模块、运行环境管理模块、工具集成模块、工具执行模块、规范管理模块、结果显示模块和结果管理模块。代码管理模块、构建管理模块和运行环境管理模块可以集成部署,例如代码管理模块、构建管理模块和运行环境管理模块集成为一个持续集成服务。工具集成模块和工具执行模块可以集成部署,例如工具集成模块和工具执行模块集成为一个工具管理服务。规范管理模块、结果显示模块和结果管理模块可以集成部署,例如规范管理模块、结果显示模块和结果管理模块集成为一个举证管理服务。

上述软件测试方法中,从代码仓中获取目标代码的过程可以由代码管理模块执行。根据目标代码构建目标软件包的过程可以由构建管理模块执行。将目标软件包部署到目标运行环境的过程可以由运行环境管理模块执行。工具集成模块用于管理测试工具。工具执行模块用于提供测试工具选择功能并负责测试工具扫描过程的管理。规范管理模块用于管理测试集以及测试工具与测试集中的测试规则的对应关系,结果显示模块用于显示测试结果。举证结果管理模块用于管理测试结果与测试规则的对应关系。

以上是对本申请实施例提供的软件测试方法的介绍。下面介绍本申请的装置实施例,本申请的装置可以用于执行本申请的软件测试方法。对于本申请装置实施例中未披露的细节,请参照本申请的方法实施例。

请参考图7,其示出了本申请实施例提供的一种软件测试装置700的结构示意图。参见图7,软件测试装置700包括测试单元710。

测试单元710,用于在目标软件的开发过程中的目标阶段,根据目标测试集对目标软件进行测试。其中,该开发过程包括n个阶段,每个阶段对应至少一个测试集,每个测试集包括至少一条测试规则,每个阶段对应的测试集中的测试规则用于测试目标软件是否符合该阶段的开发要求,目标阶段包括该n个阶段中的至少两个阶段,目标测试集是目标阶段对应的测试集,n为大于1的整数。测试单元710的功能实现可以参考上述S101。

可选的,该n个阶段包括编码阶段、构建阶段和运行阶段,目标阶段包括编码阶段、构建阶段和运行阶段中的至少两个阶段。

可选的,请参考图8,其示出了本申请实施例提供的一种测试单元710的结构示意图。如图8所示,该测试单元710包括第一测试子单元711、第二测试子单元712和第三测试子单元713中的两个子单元。

第一测试子单元711,用于在编码阶段,根据编码测试集对目标代码进行测试。其中,目标代码是目标软件的源代码,编码测试集包括至少一条编码测试规则,编码测试规则用于测试目标代码是否符合目标软件的编码要求。第一测试子单元711的功能实现可以参考上述S1011。

第二测试子单元712,用于在构建阶段,根据构建测试集对目标软件包进行测试。其中,目标软件包是根据目标代码构建的目标软件的软件包,构建测试集包括至少一条构建测试规则,构建测试规则用于测试目标软件包是否符合目标软件的构建要求。第二测试子单元712的功能实现可以参考上述S1012。

第三测试子单元713,用于在运行阶段,根据运行测试集对运行在目标运行环境中的目标软件进行测试。其中,运行测试集包括至少一条运行测试规则,运行测试规则用于测试目标软件的运行过程是否符合目标软件的运行要求。第三测试子单元713的功能实现可以参考上述S1013。

可选的,第一测试子单元711,用于通过编码测试工具根据编码测试集对目标代码进行测试。

第二测试子单元712,用于通过构建测试工具根据构建测试集对目标软件包进行测试。

第三测试子单元713,用于通过运行测试工具根据运行测试集对运行在目标运行环境中的目标软件进行测试。

可选的,编码测试工具包括至少一个子编码测试工具,每个子编码测试工具对应至少一条编码测试规则,构建测试工具包括至少一个子构建测试工具,每个子构建测试工具对应至少一条构建测试规则,运行测试工具包括至少一个子运行测试工具,每个子运行测试工具对应至少一条运行测试规则。

第一测试子单元711,具体用于通过目标子编码测试工具对目标代码进行扫描,以测试目标代码是否符合目标编码测试规则,目标编码测试规则是目标子编码测试工具对应的编码测试规则。

第二测试子单元712,具体用于通过目标子构建测试工具对目标软件包进行扫描,以测试目标软件包是否符合目标构建测试规则,目标构建测试规则是目标子构建测试工具对应的构建测试规则。

第三测试子单元713,具体用于通过目标子运行测试工具对运行在目标运行环境中的目标软件进行扫描,以测试目标软件是否符合目标运行测试规则,目标运行测试规则是目标子运行测试工具对应的构建测试规则。

可选的,请继续参考图7,该软件测试装置700还包括:

提供单元720,用于提供工具配置界面。提供单元720的功能实现可以参考上述S103。

确定单元730,用于根据在工具配置界面中触发的对目标软件进行测试的配置指令,确定用于对目标软件进行测试的目标工具,目标工具包括编码测试工具、构建测试工具和运行测试工具中的至少两类。确定单元730的功能实现可以参考上述S104。

可选的,请继续参考图7,该软件测试装置700还包括以下至少一个单元:

构建单元740,用于根据目标代码构建目标软件包。

运行单元750,用于根据目标软件包在目标运行环境中运行目标软件。

可选的,请继续参考图7,该软件测试装置700还包括:

检测单元760,用于检测是否满足测试条件。检测单元760的功能实现可以参考上述S105。

测试单元710,用于当满足测试条件时,根据目标测试集对目标软件进行测试。

可选的,测试条件包括以下至少一项:

目标软件的代码被存储至代码仓;

代码仓中存储的目标软件的代码被更新;

到达指定时刻;

接收到针对目标软件的测试指令。

可选的,请继续参考图7,该软件测试装置700还包括:

展示单元770,用于在可视化界面中展示目标软件的测试结果。展示单元770的功能实现可以参考上述S102。

综上所述,本申请实施例提供的软件测试装置,目标阶段包括目标软件的开发过程中的至少两个阶段,软件测试装置根据目标阶段对应的目标测试集对该目标软件进行测试,由此可以实现在目标软件的开发过程中的至少两个阶段对目标软件进行测试,因此可以改善软件测试效果。其中,测试集可以是软件安全规范,由于软件测试装置在至少两个阶段对目标软件进行测试,因此可以在较大范围内实现对软件安全规范的看护。例如,该至少两个阶段包括编码阶段、构建阶段和运行阶段,则软件测试装置可以在目标软件的开发过程中的编码阶段、构建阶段和运行阶段对目标软件进行测试,可以实现对各个阶段的测试集的全量看护,即,实现对软件安全规范的全量看护。

本申请实施例提供的软件测试装置还可以用专用集成电路(application-specific integrated circuit,ASIC)或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的软件测试方法,当通过软件实现上述方法实施例提供的软件测试方法时,该软件测试装置中的各个单元也可以为软件单元。

本申请实施例提供了一种软件测试装置,包括存储器和处理器;

存储器用于存储计算机程序;

处理器用于执行存储器中存储的计算机程序以使得该软件测试装置执行上述方法实施例提供的软件测试方法的全部或部分步骤。

示例的,请参考图9,其示出了本申请实施例提供的另一种软件测试装置900的结构示意图。参见图9,软件测试装置900包括:

处理器901和存储器902,存储器901与存储器902通过总线903连接。图9以处理器901和存储器902相互独立说明。可选的,处理器901和存储器902集成在一起。

其中,存储器902用于存储计算机程序,计算机程序包括操作系统和程序代码。存储器902是各种类型的存储介质,例如存储器902是随机存取存储器(random accessmemory,RAM)、只读存储器(read-only memory,ROM)、非易失性随机存取存储器(non-volatile random access memory,NVRAM)、可编程只读存储器(programmable read-onlymemory,PROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、只读光盘(compact disc read-only Memory,CD-ROM)、闪存、寄存器、光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘或者其它磁存储设备。

其中,处理器901是通用处理器或专用处理器。通用处理器是通过读取并执行存储器(例如存储器902)中存储的计算机程序来执行特定步骤和/或操作的处理器,通用处理器在执行上述步骤和/或操作的过程中可能用到存储在存储器(例如存储器902)中的计算机程序。计算机程序例如被执行以实现前述测试单元710、确定单元730、构建单元740、运行单元750和检测单元760的相关功能。通用处理器例如但不限于中央处理器(centralprocessing unit,CPU)。专用处理器是专门设计的用于执行特定步骤和/或操作的处理器,专用处理器例如但不限于,数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、复杂程序逻辑器件(complexprogrammable logical device,CPLD)、现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。可选的,处理器901可能是单核(single-CPU)处理器,也可能是多核(multi-CPU)处理器。处理器901包括至少一个电路,以执行上述实施例提供软件测试方法的全部或部分步骤。

可选的,软件测试装置900还包括网络接口904,网络接口904通过总线903与处理器901和存储器902连接。网络接口904能够实现软件测试装置700与其他设备通信。

可选的,软件测试装置900还包括输入/输出(input/output,I/O)接口905,I/O接口905通过总线903与处理器901和存储器902连接。处理器901能够通过I/O接口905接收输入的命令或数据等。其中,I/O接口905用于软件测试装置900连接输入设备,这些输入设备例如是键盘、鼠标等。

可选的,软件测试装置900还包括显示器906,显示器906通过总线903与处理器901和存储器902连接。显示器906能够用于显示处理器901执行上述软件测试方法产生的中间结果和/或最终结果等。例如,显示器906用于显示上述实施例中所述的工具配置界面,结果展示界面。在可能的实现方式中,显示器906是触控显示屏,以提供人机交互接口。显示器906能够实现前述提供单元720和展示单元770的相关功能。

可选的,在一些可能的场景中,上述网络接口904和I/O接口905被统称为通信接口。此外,通信接口还包括收发器以进行信息收发,本申请实施例对此不作限定。

其中,总线903是任何类型的,用于实现软件测试装置900的内部器件互连的通信总线。例如系统总线。本申请实施例以软件测试装置900内部的上述器件通过总线903互连为例说明,可选的,软件测试装置900内部的上述器件采用除了总线903之外的其他连接方式彼此通信连接,例如软件测试装置900内部的上述器件通过软件测试装置900内部的逻辑接口互连。

上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不作限定。

图9所示的软件测试装置900仅仅是示例性的,在实现过程中,软件测试装置900包括其他组件,本文不再一一列举。图9所示的软件测试装置900可以通过执行上述实施例提供软件测试方法的全部或部分步骤来在目标软件的开发过程中对目标软件进行测试。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被执行(例如,被软件测试装置、计算机设备、一个或多个处理器等执行)时,实现如上述方法实施例提供的软件测试方法的全部或部分步骤。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序或代码,该程序或代码被执行(例如,被软件测试装置、计算机设备、一个或多个处理器等执行)时,实现如上述方法实施例提供的软件测试方法的全部或部分步骤。

本申请实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片运行时用于实现如上述方法实施例提供的软件测试方法的全部或部分步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。

应当理解的是,本申请中的“至少一个”指一个或多个,“多个”指两个或两个以上。“至少两个”指两个或两个以上。另外,为了便于清楚描述,在本申请中,采用了“第一”、“第二”、“第三”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”、“第三”等字样并不对数量和执行次序进行限定。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本申请实施例提供的方法实施例和装置实施例等不同类型的实施例均可以相互参考,本申请实施例对此不作限定。本申请实施例提供的方法实施例操作的先后顺序能够进行适当调整,操作也能够根据情况进行响应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。

在本申请提供的相应实施例中,应该理解到,所揭露的装置等可以通过其它的构成方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元描述的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络设备(例如终端设备)上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种软件测试范围确定方法、软件测试方法和装置
  • 测试数据帧生成方法及装置、软件测试方法及装置
  • 软件测试方法、装置、计算机设备和可读存储介质
  • 软件自动测试方法及装置
  • 一种软件测试方法、装置及电子设备
  • 软件测试装置及其软件测试方法
  • 基于家用电器的软件测试方法及软件测试装置
技术分类

06120115849184