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

技术领域

本申请涉及软件系统测试技术领域,具体涉及一种软件系统的测试方法、装置、终端设备和存储介质。

背景技术

随着智能化水平不断提高,涌现出了大量软件系统(例如电力软件系统),这些软件系统可以对数据、信息等实现自动化管理,例如可以采用电力系统软件系统自动完成电网调度等。要使软件系统发挥作用,首先要确定该软件系统能各功能正常且可靠,对软件系统进行测试就显得尤为重要。

然而,软件系统通常包括功能较多,测试过程繁杂。目前,通常采用人工测试方式,但该方法测试效率低,并且人工操作容易出现错误,从而导致测试准确率低。

申请内容

有鉴于此,本申请实施例中提供了一种软件系统的测试方法、装置、终端设备和存储介质,以克服现有技术测试效率和准确率低的问题。

第一方面,本申请实施例提供了一种软件系统的测试方法,该方法包括:

获取待测试的软件系统和测试用例集,其中所述软件系统包括至少一个功能模块,所述测试用例集包括至少一个测试用例;

选择与每一功能模块的功能相匹配的测试用例;

在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果;

根据各所述执行结果来判定所述软件系统是否通过测试。

第二方面,本申请实施例提供了一种软件系统的测试装置,该装置包括:

信息获取模块,用于获取待测试的软件系统和测试用例集,其中所述软件系统包括至少一个功能模块,所述测试用例集包括至少一个测试用例;

用例选择模块,用于选择与每一功能模块的功能相匹配的测试用例;

用例执行模块,用于在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果;

系统测试判定模块,用于根据各所述执行结果来判定所述软件系统是否通过测试。

第三方面,本申请实施例提供了一种终端设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的软件系统的测试方法。

第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的软件系统的测试方法。

本申请实施例提供的软件系统的测试方法、装置、终端设备和存储介质,先获取待测试的软件系统和测试用例集,其中软件系统包括至少一个功能模块,测试用例集包括至少一个测试用例;然后选择与每一功能模块的功能相匹配的测试用例,并在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果;执行结果可以反应测试用例在软件系统中的每个功能模块上执行情况(即测试用例是否可以在软件系统中的功能模块中正确执行),因此根据各执行情况就可以来确定软件系统功能是否正常,以及运行能力等相关信息,根据这些信息即可确定软件系统是否通过测试。该方法不需要人工参与,大大提高效率以及准确率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的软件系统的测试方法的应用场景示意图;

图2为本申请一个实施例提供的软件系统测试系统的结构示意图;

图3为本申请一个实施例提供的软件系统的测试流程示意图;

图4为本申请一个实施例提供测试用例存储结构示意图;

图5为本申请另一个实施例提供的软件系统测试方法的流程示意图;

图6为本申请一个实施例提供测试任务启动的流程示意图;

图7为本申请一个实施例中提供的软件系统的测试装置的结构示意图;

图8为本申请一个实施例中提供的终端设备的结构示意图;

图9为本申请一个实施例中提供的计算机可读存储介质的结构示意图。

具体实施方式

下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了更详细说明本申请,下面结合附图对本申请提供的一种软件系统的测试方法、装置、终端设备和存储介质,进行具体地描述。

请参考图1,图1示出了本申请实施例提供的软件系统的测试方法的应用场景的示意图,该应用场景包括本申请实施例提供的终端设备100,终端设备100可以是具有显示屏的各种电子设备(如102、104、106和108的结构图),包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。终端设备可以安装并运行有用于软件系统测试的相关应用程序,通过该程序可以完成对待测试的软件系统进行测试。此外,该终端设备100还可以维护有至少一种数据库,用于存储测试用例集等。终端设备100可以泛指多个终端设备中的一个,本实施例仅以终端设备100来举例说明。本领域技术人员可以知晓,上述终端设备的数量可以更多或更少。比如上述终端设备可以仅为几个,或者上述终端设备为几十个或几百个,或者更多数量,本申请实施例对终端设备的数量和类型不加以限定。终端设备100可以用来执行本申请实施例中提供的一种软件系统的测试方法。

在一种可选的实施方式中,如图2所示,终端设备100包括有软件系统测试系统,该系统包括测试用例管理模块、测试执行管理模块、测试结果管理模块、测试报告管理模块。其中,测试用例管理模块主要用于组织和存储用测试用例。

测试执行管理模块主要用于通过测试引擎实现指定测试用例在被测软件系统上执行,按照测试用例的内容验证测试是否通过,支持手工启动测试,可在测试过程中进行暂停、恢复,或者提前终止测试过程。支持周期启动测试,指定按月、按日、按天、按小时、按分钟或秒钟来执行。

测试结果管理模块主要用于管理所有的用例执行结果,用户选择一个执行结果,即可用图形化等可视化界面展示各种统计信息,包括测试执行开始时间、结束时间、测试执行的用例个数、测试通过的用例个数、测试失败的用例个数;按照模块统计测试通过的比例,按照功能统计测试通过的比例,提供测试用例执行的详细日志信息。

测试报告管理模块主要用于管理所有的用例执行结果,用户选择一个用例执行结果,可展示该测试的统计信息,支持一键生成测试报告,测试报告包括详细的测试用例、测试过程、测试缺陷等。

在一种可选的实施方式中,该应用场景包括本申请实施例提供的终端设备100之外,还可以包括服务器,其中服务器与终端设备之间设置有网络。网络用于在终端设备和服务器之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器可以是多个服务器组成的服务器集群等。其中,终端设备通过网络与服务器交互,以接收或发送消息等。服务器可以是提供各种服务的服务器。其中服务器可以用来执行本申请实施例中提供的一种软件系统的测试方法的步骤。此外,终端设备在执行本申请实施例中提供的一种软件系统的测试方法时,可以将一部分步骤在终端设备执行,一部分步骤在服务器执行,在这里不进行限定。

基于此,本申请实施例中提供了一种软件系统的测试方法。请参阅图3,图3示出了本申请实施例提供的一种软件系统的测试方法的流程示意图,以该方法应用于图1中的终端设备为例进行说明,包括以下步骤:

步骤S110,获取待测试的软件系统和测试用例集。

其中软件系统包括至少一个功能模块,测试用例集包括至少一个测试用例。

其中,待测试的软件系统可以是任意需要进行测试的软件系统,例如电力软件系统、电网调度软件系统、报警软件系统以及门禁软件系统等。

一个软件系统通常包括多个功能,例如数据获取、数据处理、显示等,其中,每一个功能可以用一个功能模块表示。

测试用例是一组条件或变量,即对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个软件是否正确工作。不同类别的软件系统测试用例是不同的;此外,用一个软件系统不同的功能模块测试用例也是不相同的。

测试用例可以是测试人员预先设计而成的,采用的设计方法可以是黑盒测试法和白盒测试法。其中,测试用例设计通常是对一些测试数据进行模块化、参数化等从而形成测试用例。

在一种可选的实施方式中,请参照图4,测试用例可以按照测试项目、测试模块、测试功能、测试用例四层结构来组织设计和存储。其中可以将任一个待测试的软件系统记为一个测试项目;其中一个测试项目包括多个测试模块,每一个测试模块中可以包括多个测试功能(其中一个测试功能可以用一个功能模块表示),每一个测试功能可以对应一个或多个测试用例。采用四层结构来组织设计和存储测试用例能够方便动态扩展测试用例,方便批量导入导出以及在线修改;此外,测试用例设计可以支持多种脚本语言。

另外,将多个测试用例组合或聚合在一起,形成测试用例集。例如可以将图4中的测试用例1、测试用例2、测试用例3……测试用例n组合一起形成一个测试用例集。

步骤S120,选择与每一功能模块的功能相匹配的测试用例。

具体地,不同的功能模块对应不同的测试用例,因此在对每一个功能模块进行测试时先要选择出每一个功能模块相匹配的测试用例。其中一个功能模块可以对应一个或多个测试用例,因此在选择一个功能模块相匹配的测试用例时至少选择出一个测试用例。

可选地,为了测试的准确性,可以选择出每一个功能模块相匹配的所有测试用例,然后用相匹配的所有的测试用例来对该测试功能进行测试。

步骤S130,在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果。

步骤S140,根据各执行结果来判定软件系统是否通过测试。

在选择每一个功能模块相匹配的测试用例后,在每一个功能模块中来执行相应的测试用例,从而得到每一个功能模块的执行结果。其中,执行结果中包括执行开始时间、执行结束时间、执行的测试用例总数量、执行的测试用例数量、测试通过的测试用例个数、测试失败的测试用例个数、测试用例相关信息(即用于确定哪些测试用例执行了测试)测试用例期望结果和测试用例实际结果(即每个测试用例执行后得到的实际结果)。在得到每一个功能模块的执行结果后,对这些执行结果进行分析,就可以来确定软件系统是否通过测试。

请参照图5,在一个具体实施例中,软件系统的测试方法的具体步骤为:开始测试,获取测试用例的信息,其中测试用例的信息包括测试平台ip、端口、测试日志id、测试项目id、测试任务id、测试用例id;在获取成功后,获取待测试的软件系统的信息,包括待测试的软件系统ip、被测系统用户、密码、被测系统中的功能模块,在获取成功后,在待测试的软件系统执行脚本,脚本执行成功,则测试结束。其中在待测试的软件系统执行脚本是分别在待测试的软件系统的功能模块上执行与之相匹配的测试用例。

其中,在对软件系统进行测试,可以将软件系统测试时按照功能模块分成一个个测试任务,形成测试任务列表。然后根据测试任务列表顺序进行执行,其中在执行过程中可以按照人工调度任务方式(即人为启动测试任务)、定时启动测试任务或周期启动测试任务等方式,具体过程详见图6。

进一步地,对于步骤S140,根据各执行结果来判定软件系统是否通过测试有多种实现方式。下面选择其中两种实现方式分别进行描述。

在其中一个实施例中,根据各执行结果来判定软件系统是否通过测试,包括:当设定的功能模块通过测试时,判定软件系统通过测试;其中设定的功能模块为软件系统中的一个或多个功能模块。

其中,设定的功能模块通常是测试人员预先设置的一些功能模块,该功能模块是软件系统中的一个或多个;对于不同的软件系统设定的功能模块是不同的,选择哪些功能模块以及选择的数量根据软件系统类型、软件系统作用等确定,一般情况下选择软件系统核心的功能模块作为设定的功能模块,其中核心的功能模块是指软件系统重要的、必须要实现的功能对应的功能模块。

采用该方式非常方便来判断或确定软件系统是否通过测试,并且可以确保软件系统最核心或最重要的功能正常运行,可以减少后期软件系统修改和测试的成本以及时间。

接下来对根据各执行结果来判定软件系统是否通过测试的第二个实现方式进行描述。

在另一个实施例中,根据各执行结果来判定软件系统是否通过测试,包括:统计软件系统中功能模块的测试通过率;当测试通过率大于第二预设阈值时,判定软件系统通过测试。

具体而言,软件系统中功能模块的测试通过率可以根据软件系统包括的功能模块总数量和通过测试的功能模块数量计算得到。

第二预设阈值可以是测试人员预先设置的值,通常是一个百分比值。具体数据可以根据实际需求设置,但实际中该值不应该太小,太小容易导致软件系统测试准确度低。采用该方式非常方便来判断或确定软件系统是否通过测试。

本申请实施例提供的软件系统的测试方法,先获取待测试的软件系统和测试用例集,其中软件系统包括至少一个功能模块,测试用例集包括至少一个测试用例;然后选择与每一功能模块的功能相匹配的测试用例,并在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果;执行结果可以反应测试用例在软件系统中的每个功能模块上执行情况(即测试用例是否可以在软件系统中的功能模块中正确执行),因此根据各执行情况就可以来确定软件系统功能是否正常,以及运行能力等相关信息,根据这些信息即可确定软件系统是否通过测试。该方法不需要人工参与,大大提高效率以及准确率。

进一步地,在执行步骤S130,在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果时,包括确定功能模块是否通过测试,具体过程如下。

在一个实施例中,在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果,包括:在每一功能模块中分别执行与之相匹配的各测试用例,并根据各测试用例的执行结果,确定每一功能模块是否通过测试。

具体地,执行结果中包括执行的测试用例总数量、执行的测试用例数量、测试通过的测试用例个数、测试失败的测试用例个数、测试用例相关信息(即用于确定哪些测试用例执行了测试)、测试用例期望结果和测试用例实际结果(即每个测试用例执行后得到的实际结果);其中根据测试用例结果可以来确定某个测试用例是否通过了测试,即是否测试成功。确定过程为:将某一测试用例的测试用例期望结果与测试用例实际结果进行比较,当结果一致时,表示该测试用例测试成功。

根据每一个功能模块的执行结果就可以确定每一功能模块是否通过测试。

接下来,对确定功能模块是否通过测试的具体实施方式进行描述。在一个实施例中,根据各测试用例的执行结果,确定每一功能模块是否通过测试,包括:当一功能模块对应的各测试用例中执行失败的测试用例的数量小于或等于第一预设阈值时,判定功能模块通过测试。

其中,第一预设阈值可以是测试人员预先设置的值,为正整数。具体数据可以根据实际需求设置,但实际中该值不应该太大,太大说明某一功能模块中测试用例失败数量多,该功能模块存在故障的可能性越大,从而容易导致软件系统测试准确度低。采用该方式非常方便来判断或确定某一功能模块是否通过测试。

可选地,第一预设阈值可以为0,此时要求某一个功能模块中所有的测试用例都执行成功,采用该方法能最大程度保证功能模块性能,并且测试准确率高。

在一些实施例中,得到每一功能模块的执行结果,还包括:记录测试用例执行日志信息。

其中,日志信息是指网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。在本实施例中,测试用例执行信息是用于记录每一个功能模块在执行测试用例时产生的信息,根据这些信息可以来确定测试用例每一步骤执行时间,执行是否正确,便于在测试用例执行失败时分析失败原因,从而确定该功能模块是否存在异常。

在一些实施例中,软件系统的测试方法还包括,根据各功能模块的执行结果生成测试报告。该测试报告中可以显示测试的功能模块、使用的测试用例、测试过程以及测试缺陷等。生成测试报告方便测试人员查看测试结果。

应该理解的是,虽然图3,图4至6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图3,图4至6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

上述本申请公开的实施例中详细描述了一种软件系统的测试方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的软件系统的测试装置,下面给出具体的实施例进行详细说明。

请参阅图7,为本申请实施例公开的一种软件系统的测试装置,主要包括:

信息获取模块710,用于获取待测试的软件系统和测试用例集,其中软件系统包括至少一个功能模块,测试用例集包括至少一个测试用例;

用例选择模块720,用于选择与每一功能模块的功能相匹配的测试用例;

用例执行模块730,用于在每一功能模块中执行与之相匹配的测试用例,以得到每一功能模块的执行结果;

系统测试判定模块740,用于根据各执行结果来判定软件系统是否通过测试。

在一个实施例中,用例执行模块包括:功能模块测试判定模块:

用例执行模块,用于在每一功能模块中分别执行与之相匹配的各测试用例;

功能模块测试判定模块,用于根据各测试用例的执行结果,确定每一功能模块是否通过测试。

在一个实施例中,功能模块测试判定模块,用于当一功能模块对应的各测试用例中执行失败的测试用例的数量小于或等于第一预设阈值时,判定所述功能模块通过测试。

在一些实施例中,用例执行模块还包括:日志信息记录模块,用于记录测试用例执行日志信息。

在一些实施例中,提供了系统测试判定模块实施根据各执行结果来判定软件系统是否通过测试的两种不同实现方式,接下来分别介绍:

第一种实现方式为:

系统测试判定模块,用于当设定的功能模块通过测试时,判定软件系统通过测试;其中设定的功能模块为软件系统中的一个或多个功能模块。

第二种实施方式为:

系统测试判定模块,用于统计软件系统中功能模块的测试通过率,当测试通过率大于第二预设阈值时,判定软件系统通过测试。

在一些实施例中,软件系统的测试装置还包括,测试报告生成模块,用于根据各功能模块的执行结果生成测试报告。

关于软件系统的测试装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件系统、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件系统形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

请参考图8,图8其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备80可以是计算机设备。本申请中的终端设备80可以包括一个或多个如下部件:处理器82、存储器84以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器84中并被配置为由一个或多个处理器82执行,一个或多个应用程序配置用于执行上述应用于终端设备的方法实施例中所描述的方法,也可以配置用于执行上述应用于软件系统的测试方法实施例中所描述的方法。

处理器82可以包括一个或者多个处理核。处理器82利用各种接口和线路连接整个终端设备80内的各个部分,通过运行或执行存储在存储器84内的指令、程序、代码集或指令集,以及调用存储在存储器84内的数据,执行终端设备80的各种功能和处理数据。可选地,处理器82可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器82可集成中央处理器(Cen tralProcessingUnit,CPU)、埋点数据的上报验证器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器82中,单独通过一块通信芯片进行实现。

存储器84可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器84可用于存储指令、程序、代码、代码集或指令集。存储器84可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备80在使用中所创建的数据等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

综上,本申请实施例提供的终端设备用于实现前述方法实施例中相应的软件系统的测试方法,并具有相应的方法实施例的有益效果,在此不再赘述。

请参阅图9,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质90中存储有程序代码,程序代码可被处理器调用执行上述软件系统的测试方法实施例中所描述的方法,也可以被处理器调用执行上述软件系统的测试方法实施例中所描述的方法。

计算机可读取存储介质90可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质90包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质90具有执行上述方法中的任何方法步骤的程序代码92的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码92可以例如以适当形式进行压缩。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 软件系统的测试方法、装置、终端设备和存储介质
  • 一种银行软件系统测试方法、装置、电子设备及存储介质
技术分类

06120113195648