CN111522734B - 软件功能测试方法、装置、电子设备及存储介质 - Google Patents
软件功能测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111522734B CN111522734B CN202010187203.1A CN202010187203A CN111522734B CN 111522734 B CN111522734 B CN 111522734B CN 202010187203 A CN202010187203 A CN 202010187203A CN 111522734 B CN111522734 B CN 111522734B
- Authority
- CN
- China
- Prior art keywords
- test
- test case
- function
- model
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
本发明实施例提供一种软件功能测试方法、装置、电子设备及存储介质,通过获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能;根据功能信息,确定测试用例模型,并根据测试用例模型创建测试用例;使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试,由于测试用例模型可以根据不同的测试需要,生成特定类别的不同的测试用例,无需单独为每一项功能测试重复构建实施例,实现了测试用例模型的复用,因此能够有效提高软件功能测试的效率,降低了软件测试成本。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种软件功能测试方法、装置、电子设备及存储介质。
背景技术
软件测试一直以来都是确保软件质量和安全的重要措施,在软件的新版本、新功能交付使用前,需要通过功能测试,以确保软件的功能能够正常实现,防止软件使用过程中出现问题。
现有技术中,在对软件进行测试前,需要首先确定软件功能具体的输入参数的结构及字段,然后再根据应用的输入参数,构造匹配的测试用例。当该软件功能测试完成后,该测试用例就没有用了,即使之后再次测试相似的软件功能,由于输入参数的结构及字段不一致,导致需要重现构建测试用例。
因此,对于相似的软件功能,测试用例无法复用,造成了软件功能测试过程的效率低下;并且需要多次构造测试用例,造成测试成本高。
发明内容
本发明提供一种软件功能测试方法、装置、电子设备及存储介质,用以解决软件功能测试过程的效率低下,且需要多次构造测试用例导致的测试成本高的问题。
根据本公开实施例的第一方面,本发明提供了一种软件功能测试方法,所述方法包括:
获取测试目标的功能信息,其中,所述功能信息表征所述测试目标所归属的目标类型的功能;
根据所述功能信息,确定测试用例模型,并根据所述测试用例模型创建测试用例;
使用所述测试用例,对所述测试目标所归属的同一目标类型的各测试目标进行测试。
可选地,所述功能信息包括功能描述信息;根据所述功能信息,确定测试用例模型,包括:
根据所述功能描述信息,确定所述目标类型的功能;
根据所述目标类型的功能,确定与所述测试目标匹配的测试用例模型。
可选地,所述根据所述目标类型的功能,确定与所述测试目标匹配的测试用例模型,包括:
获取预设的目标类型与基础模型的映射关系;
根据所述目标类型和所述映射关系,确定基础模型;
根据所述基础模型,构建测试用例模型。
可选地,在所述根据所述目标类型和所述映射关系,确定基础模型之后,还包括:
根据所述功能信息,确定特性模型;
所述根据所述基础模型,构建测试用例模型,包括:
根据所述基础模型和所述特性模型,构建测试用例模型。
可选地,所述功能信息还包括接口信息,根据所述功能信息,确定特性模型,包括:
根据所述接口信息,确定与所述测试目标对应的第一功能接口;
确定与所述基础模型对应的第二功能接口;
将所述第一功能接口中不与所述第二功能接口重合的部分,确定为第三功能接口;
根据所述第三功能接口,确定特性模型。
可选地,在所述根据所述测试用例模型创建测试用例之后,还包括:
对所述测试用例进行评估,得到评估结果;
根据评估结果,对所述测试用例进行修正。
可选地,所述评估结果包括测试能力,对所述测试用例进行评估,得到评估结果,包括:
根据所述测试用例,对所述测试目标进行预测试,得到预测试结果,所述预测结果包括成功用例数量和失败用例数量;
根据所述成功用例数量和失败用例数量,确定所述测试能力;
所述根据评估结果,对所述测试用例进行修正,包括:
根据所述测试能力,对所述目标测试用例进行修正。
可选地,所述评估结果包括测试能力,和/或测试覆盖率,和/或调用频度,根据评估结果,对所述测试用例进行修正,包括:
根据测试能力,和/或测试覆盖率,和/或调用频度,对所述测试用例进行修正。
根据本公开实施例的第二方面,本发明提供了一种软件功能测试装置,包括:
功能信息获取模块,用于获取测试目标的功能信息,其中,所述功能信息表征所述测试目标所归属的目标类型的功能;
测试用例创建模块,用于根据所述功能信息,确定测试用例模型,并根据所述测试用例模型创建测试用例;
测试目标测试模块,用于使用所述测试用例,对所述测试目标所归属的同一目标类型的各测试目标进行测试。
可选地,所述功能信息包括功能描述信息;所述测试用例创建模块,具体用于:
根据所述功能描述信息,确定所述目标类型的功能;
根据所述目标类型的功能,确定与所述测试目标匹配的测试用例模型。
可选地,所述测试用例创建模块,在根据所述目标类型的功能,确定与所述测试目标匹配的测试用例模型时,具体用于:
获取预设的目标类型与基础模型的映射关系;
根据所述目标类型和所述映射关系,确定基础模型;
根据所述基础模型,构建测试用例模型。
可选地,所述测试用例创建模块在所述根据所述目标类型和所述映射关系,确定基础模型之后,具体用于:
根据所述功能信息,确定特性模型;
所述根据所述基础模型,构建测试用例模型,包括:
根据所述基础模型和所述特性模型,构建测试用例模型。
可选地,所述功能信息还包括接口信息,所述测试用例创建模块在根据所述功能信息,确定特性模型时,具体用于:
根据所述接口信息,确定与所述测试目标对应的第一功能接口;
确定与所述基础模型对应的第二功能接口;
将所述第一功能接口中不与所述第二功能接口重合的部分,确定为第三功能接口;
根据所述第三功能接口,确定特性模型。
可选地,所述测试用例创建模块,还用于:
对所述测试用例进行评估,得到评估结果;
根据评估结果,对所述测试用例进行修正。
可选地,所述评估结果包括测试能力,所述测试用例创建模块在对所述测试用例进行评估,得到评估结果时,具体用于:
根据所述测试用例,对所述测试目标进行预测试,得到预测试结果,所述预测结果包括成功用例数量和失败用例数量;
根据所述成功用例数量和失败用例数量,确定所述测试能力;
所述测试用例创建模块在根据评估结果,对所述测试用例进行修正时,具体用于:
根据所述测试能力,对所述目标测试用例进行修正。
可选地,所述评估结果包括测试覆盖率,和/或调用频度,所述测试用例创建模块在根据评估结果,对所述测试用例进行修正时,具体用于:
根据测试能力,和/或测试覆盖率,和/或调用频度,对所述测试用例进行修正。
根据本公开实施例的第三方面,本发明提供了一种电子设备,包括:存储器,处理器以及计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行如本公开实施例第一方面任一项所述的软件功能测试方法。
根据本公开实施例的第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本公开实施例第一方面任一项所述的软件功能测试方法。
本发明提供的软件功能测试方法、装置、电子设备及存储介质,通过获取测试目标的功能信息,其中,所述功能信息表征所述测试目标所归属的目标类型的功能;根据所述功能信息,确定测试用例模型,并根据所述测试用例模型创建测试用例;使用所述测试用例,对所述测试目标所归属的同一目标类型的各测试目标进行测试,由于测试用例模型可以根据不同的测试需要,生成特定类别的不同的测试用例,无需单独为每一项功能测试重复构建实施例,实现了测试用例模型的复用,因此能够有效提高软件功能测试的效率,降低了软件测试成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例提供的软件功能测试方法的一种应用场景图;
图2为本发明一个实施例提供的软件功能测试方法的流程图;
图3为本发明另一个实施例提供的软件功能测试方法的流程图;
图4为图3所示实施例中步骤S203的流程图;
图5为本发明再一个实施例提供的软件功能测试方法的流程图;
图6为图5所示实施例中步骤S305的流程图;
图7为图5所示实施例提供的软件功能测试方法的一种应用场景图;
图8为本发明一个实施例提供的软件功能测试装置的结构示意图;
图9为本发明一个实施例提供的电子设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
测试用例:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求,测试用例是将测试过程具体量化的方法之一,不同的软件或功能,测试用例是不同的。
下面对本发明实施例的应用场景进行解释:
图1为本发明实施例提供的软件功能测试方法的一种应用场景图,如图1所示,在一个示例性的应用场景中,本实施例提供的软件功能测试方法应用于电子设备12,软件开发的过程是通过多方协作而完成的,例如包括开发人员和测试人员;其中,开发人员通过电子设备11完成具有特定功能的功能模块的开发,并同时提供该应用程序或者功能模块的功能信息;测试人员通过电子设备12,利用电子设备11提供的功能信息生成对应的测试用例,对电子设备11输出的功能模块进行测试,实现软件功能测试的目的。
现有技术中,在测试人员在对软件进行测试前,需要首先根据功能信息确定软件功能具体的输入参数的结构及字段,然后再根据应用的输入参数,构造匹配的测试用例。当该软件功能测试完成后,该测试用例就没有用了,即使之后再次测试相似的软件功能,由于输入参数的结构及字段不一致,导致需要重现构建测试用例。而对于很多具有类似功能的同类软件功能,其内部功能实现的原理和流程是相似甚至相同的,仅是因为软件功能具体的输入参数的结构不同,而导致测试用例无法复用,导致了测试用例的浪费,也因此,造成了软件功能测试过程的效率低下和需要多次构造测试用例,测试成本高的问题。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明一个实施例提供的软件功能测试方法的流程图,如图2所示,本实施例提供的软件功能测试方法包括以下几个步骤:
步骤S101,获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能。
具体地,测试目标是指待测软件的某个具体的软件功能,例如,用户注册的功能、用户登录的功能。当然,此处的软件功能也包括软件集成测试或单元测试过程中的具体功能,例如,用户注册时,对用户键入的用户名是否含有非法字符的检测功能;再例如,用户依次进行注册、登录、修改密码的功能。测试目标的内容可以根据具体的测试需要,以多种形式实现,此处不做具体限定。
根据测试目标的具体功能,可以对测试目标进行分类,得到不同的目标类型,不同的目标类型具有不同的功能,功能信息可以起到表征该功能的作用,例如,用户注册的功能、用户登录的功能、错别字检测的功能等。功能信息表征测试目标所归属的目标类型的功能的方式有多种,例如,通过具体的描述信息实现对目标类型的功能的表征,再例如,还可以通过与目标类型的功能具有映射关系的标识实现对目标类型或目标类型的功能的表征,此处不对功能信息表征测试目标所归属的目标类型的功能的具体实现方式进行限定。
步骤S102,根据功能信息,确定测试用例模型,并根据测试用例模型创建测试用例。
具体地,测试用例模型为表征测试用例特性的模型,不同的功能信息,对应不同的测试用例模型,根据不同的测试用例模型,对应的生成不同的测试用例。例如,功能信息所表征的一种示例性的功能为用户注册功能,则对应的测试用例模型为表征用户注册功能测试过程特性的模型,相应地,根据该测试用例模型,可以生成一个用于对用户注册功能进行测试的测试用例。
根据功能信息,确定测试用例模型的实现方式有多种,例如,根据功能信息中的具体内容,以及预设的用例模型构建策略,构建测试用例模型,具体的构建方法可根据用例模型构建策略实施,此处不进行限定;再例如,在应用本实施例提供的软件功能测试方法的电子设备内,或者与此电子设备能够进行数据交换的其他电子设备内,存储有多个备选测试用例模型,各备选测试用例模型与功能信息具有预设的映射关系,根据功能信息,可以从多个备选测试用例模型中,确定与功能信息匹配的测试用例模型。例如,备选测试用例模型包括:表征用户注册功能测试过程特性的模型、表征用户登录功能测试过程特性的模型、表征错别字检测功能测试过程特性的模型,功能信息表征了错别字检测功能,因此,将表征错别字检测功能测试过程特性的模型确定为测试用例模型。此处不对根据功能信息,确定测试用例模型的实现方式做具体限定。
根据测试用例模型创建测试用例,可以按照预设的测试用例创建策略通过人工或者程序进行创建,具体的实现步骤为本领域现有的常用技术手段,此处不再赘述。
步骤S103,使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试。
通过上述步骤中创建的测试用例,可以对属于同一目标类型的测试目标进行测试,并获得测试结果。其中,通过测试用例对同一目标类型的各测试目标进行测试的方法,为本领域常规技术手段,此处不再赘述。
本实施例中,通过获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能;根据功能信息,确定测试用例模型,并根据测试用例模型创建测试用例;使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试,由于测试用例模型可以根据不同的测试需要,生成特定类别的不同的测试用例,无需单独为每一项功能测试重复构建实施例,实现了测试用例模型的复用,因此能够有效提高软件功能测试的效率,降低了软件测试成本。
图3为本发明另一个实施例提供的软件功能测试方法的流程图,如图3所示,本实施例提供的软件功能测试方法在图2所示实施例提供的软件功能测试方法的基础上,对步骤S102进一步细化,并在根据测试用例模型创建测试用例之后,增加了对测试用例进行修正的步骤,则本实施例提供的软件功能测试方法包括以下几个步骤:
步骤S201,获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能,功能信息包括功能描述信息。
步骤S202,根据功能描述信息,确定目标类型的功能。
具体地,功能描述信息用于表征功能信息具体的功能内容和实现方式。例如,功能描述信息包括:测试目标的功能信息所表征的目标的功能为“用户登录”,实现方式为通过“用户名”、“密码”两个输入参数实现“用户登录”功能。根据功能描述信息中的内容,可以确定对应的目标类型的功能,即“用户登录”。
功能描述信息的实现方式有多种,例如,将具体的文字、数字、符号的直接描述作为功能描述信息,实现表征功能信息具体的功能内容和实现方式;再例如,功能描述信息包括功能标识,根据预设的功能标识与功能信息具体的功能内容和实现方式的映射关系,实现对功能信息具体的功能内容和实现方式的表征。
步骤S203,根据目标类型的功能,确定与测试目标匹配的测试用例模型。
对于相同的目标类型的功能,往往具有固定的实现方式。例如,目标类型的功能为“用户登录”,则通常需要输出“用户名”和“密码”两个输入参数实现该功能。因此,在对该目标类型的功能进行测试时,测试用例中需要确定的输入参数为“用户名”和“密码”,该输入参数即可表征测试过程特性,即,确定测试用例模型。
可选地,如图4所示,步骤S203包括步骤S2031、S2032和S2033三个具体的实现步骤:
步骤S2031,获取预设的目标类型与基础模型的映射关系。
具体的,不同目标类型具有对应的功能,例如,目标类型为登录类、注册类等。对应的功能为用户登录、用户注册。因此,根据目标类型,可以确定对应的目标类型的功能。
基础模型可以表征测试某些特定功能所需要的基础参数,例如,在用户登录功能的测试中,需要输入的基础参数为“用户名”和“密码”,即至少需要输入“用户名”和“密码”两项,才能实现对该功能的测试。但同时,在登录功能中,还可以由其他输入参数,例如身份证号、电话号码等,此类输入参数则为非基础参数。根据基础参数构建的测试用例模型为基础模型。当然,需要指出的是,基础参数的设定可以根据具体的情况进行设定,例如,在用户登录功能的测试中,需要输入的基础参数可以为“用户名”和“密码”,也可以为“用户名”、“密码”和“电话号码”,此处不对基础参数及对应的基础模型的内容进行具体限定。
目标类型与基础模型之间具有预设的映射关系,例如,对于登录类的测试目标,则基础模型中的基础参数对应为“用户名”和“密码”;对于注册类的测试目标,则基础模型中的基础参数对应为“用户名”、“密码”和“电话号码”。该映射关系可以根据先验知识人工确定,或者根据映射策略通过程序生成,具体实现方法为本领域常规技术手段,此处不再赘述。
步骤S2032,根据目标类型和映射关系,确定基础模型。
在确定目标类型和映射关系后,进而可以确定对应的基础模型,该基础模型可以为多种表现形式,例如数组、矩阵、表达式等,此处不做具体限定。
步骤S2033,根据基础模型,构建测试用例模型。
具体的,根据基础模型中的基础参数作为输入参数,并根据不同的执行条件和预期结果,构建测试用例模型。测试用例模型生成的测试用例,可以满足基础模型对应的测试目标的测试要求。
本实施例步骤中,通过确定基础模型,并根据基础模型构建测试用例模型,实现了目标类型的功能与测试用例模型的映射,使具有相同目标类型的测试目标能够自动通过同一个基础模型构造测试用例模型,进而实现后续测试用例的构造,避免了多次构造测试用例,提高了测试效率,降低了测试成本。
步骤S204,根据测试用例模型创建测试用例。
步骤S205,对测试用例进行评估,得到评估结果。
具体地,根据不同的测试用例对测试目标进行测试,会得到不同的测试结果,其中,有的结果能够较好地反应出软件程序中存在的问题,有的则不能。因此,可以在通过对测试用例进行评估,得到评估结果,根据评估结果评估测试用例的适用性。可选地,评估结果包括测试能力、测试覆盖率和调用频度中的一种或多种。
步骤S206,根据评估结果,对测试用例进行修正。
具体地,根据评估结果,若测试用例的适用性差,例如,无法测试出程序错误,即测试能力差,或者测试用例覆盖的测试代码过少,即测试覆盖率低,则说明测试用例需要进行修正,以实现更好地测试效果。
本实施例步骤中,通过对测试用例进行评估,并根据评估效果对测试用例进行修正,可以提高测试用例的适用性,以实现对软件的测试目标更好的测试效果,提高测试准确性。
步骤S207,使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试。
本实施例中,步骤S201、步骤S204、步骤S207的实现方式与本发明图2所示实施例中的步骤S101-步骤S103的实现方式相同,在此不再一一赘述。
图5为本发明再一个实施例提供的软件功能测试方法的流程图,如图5所示,本实施例提供的软件功能测试方法在图3所示实施例提供的软件功能测试方法的基础上,在步骤S2032之后增加了确定特性模型的步骤,并对S205进行了细化,则本实施例提供的软件功能测试方法包括以下几个步骤:
步骤S301,获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能,功能信息包括功能描述信息。
步骤S302,根据功能描述信息,确定目标类型的功能。
步骤S303,获取预设的目标类型与基础模型的映射关系。
步骤S304,根据目标类型和映射关系,确定基础模型。
步骤S305,根据功能信息,确定特性模型。
具体地,在确定了与目标类型匹配的基础模型后,对于一些测试目标,还包括一些基础模型中不涉及的输入参数,例如,基础模型对应的目标类型为“登录类”的功能,基础参数仅包括“用户名”和“密码”,此处,在对还包括“电话号码”参数的登录类功能,则无法进行匹配。特性模型即用于表征基础模型中未涉及的功能特征,特性模型中所包括的输入参数为特性参数,相当于基础模型中基础参数的补充,例如本段举例的“电话号码”。根据功能信息表征的具体功能,可以确定该特性模型。
可选地,功能信息还包括接口信息,如图6所示,步骤S305包括步骤S3051、S3052、S3053和S3054四个具体的实现步骤:
步骤S3051,根据接口信息,确定与测试目标对应的第一功能接口。
具体地,接口信息为描述测试目标的功能接口的信息,接口信息为开发人员预设,用于表征测试目标具体的输入方式。输入参数与功能接口一一对应,输入参数通过功能接口输入测试目标对应的软件程序或功能模型。测试目标对应的功能接口为第一功能接口,例如,测试目标为一个注册类的功能,用于用户注册,根据接口信息,确定需要输入“用户名”、“密码”、“电话号码”三个基础参数。则第一功能接口包括用户名输入接口、密码输入接口和电话号码输入接口。
步骤S3052,确定与基础模型对应的第二功能接口。
进一步地,基础模型对应的功能接口为第二功能接口,例如,基础模型对应的输入参数为“用户名”和“密码”。则第二功能接口为用户名输入接口和密码输入接口。
步骤S3053,将第一功能接口中不与第二功能接口重合的部分,确定为第三功能接口。
根据第一功能接口和第二功能接口的比较,“电话号码”这个输入参数以及对应的电话号码输入接口,是基础模型中不涉及的,即,仅根据基础模型,无法实现生成针对上述功能的测试用例。因此,将电话号码输入接口确定为第三功能接口。
步骤S3054,根据第三功能接口,确定特性模型。
根据第三功能接口对应的输入参数,以及对应的执行条件以及预期结果,可以确定特性模型,作为对基础模型的补充,以实现特定的测试目标的测试用例生成目的。其中,执行条件以及预期结果可以根据具体的功能需求进行设置,此处不做具体限定。
步骤S306,根据基础模型和特性模型,构建测试用例模型。
根据基础模型和特性模型的输入参数,执行条件以及预期结果,可以形成一个新的模型,即测试用例模型。测试用例模型,包含了基础模型和特性模型两者各自的输入参数以及对应的执行条件和预期结果,因此,可以实现对测试目标的功能的完整表征。
本实施例步骤中,通过分别构建基础模型和特性模型,再通过基础模型和特性模型构建与测试目标相匹配的测试用例模型,将测试目标对应的输入参数进行了模块化划分,在对不同类别的测试目标进行测试时,只需要通过功能信息对与基础模型不同的特性模型进行设定,即可构建匹配的测试用例模型,进而实现测试用例的生成,提高了测试用例的生成效率。
步骤S307,根据测试用例模型创建测试用例。
为了更好地说明本发明实施例的实现方式,下面结合一个更具体的使用场景对该实施例进行说明。
图7为本发明实施例提供的软件功能测试方法的另一种应用场景图,如图7所示,在一个示例性的应用场景中,本实施例提供的软件功能测试方法应用于电子设备72,软件开发的过程是通过多方协作而完成的,例如包括软件开发人员、模型开发人员和测试人员;其中,软件开发人员通过电子设备71完成具有特定功能的功能模块的开发,并同时提供该应用程序或者功能模块的功能信息;模型开发人员通过电子设备72提供包含多个备选基础模型的备选基础模型库,测试人员通过电子设备73,利用电子设备71提供的功能信息,以及电子设备72提供的备选基础模型库,确认基础模型和特性模型,并构建测试用例模型,同时,该测试用例模型可以作为新的备选基础模型进行存储,实现对备选基础模型库的扩充。之后再通过测试用例模型生成对应的测试用例,对电子设备71输出的功能模块作为测试目标进行测试,实现软件功能测试的目的。
本实施例中,对测试目标进行测试的过程中,通过基础模型和特性模型实现了对测试用例模型的分解,对于不同的测试目标,测试人员只需要对特性模型部分进行处理,降低了测试用例编写的工作量,同时,通过对测试用例模型的保持,扩充备选基础模型库,对之后同类的测试目标,可以直接使用基础模型实现测试用例模型的构建,提高了测试效率,降低测试成本。
步骤S308,根据测试用例,对测试目标进行预测试,得到预测试结果,预测结果包括成功用例数量和失败用例数量。
具体的,测试用例包括多个子用例,使用多个子用例对测试目标进行测试,可以以通过(PASS)的方式标识测试解决,即通过或不通过。若通过,则说明程序不存在错误(BUG),若不通过,则说明程序存在错误。成功用例数量为多个子用例中测试结果为通过的子用例数量;失败用例数量为多个子用例中测试结果为不通过的子用例数量。例如,测试用例包括100个子用例,其中80个通过了测试,20个未通过测试,则成功用例数量为80,失败用例数量为20。
步骤S309,根据成功用例数量和失败用例数量,确定测试能力。
在一定条件下,成功用例数量和失败用例数量,可以表征测试用例的测试能力,失败用例的数量高,说明测试用例的测试能力强,更加能暴露出程序的问题。根据成功用例数量和失败用例数量确定测试能力的方法,可以根据具体的情况进行设定,例如,根据失败用例数量,确定测试能力;或者,根据失败用例数量和成功用例数量的比值,确定测试能力,此处不做具体限定。
步骤S310,根据测试能力、用例调用频度、测试覆盖率中的一种或多种,对目标测试用例进行修正。
可选地,用例调用频度为测试用例模型从备选基础模型中调用的频率或次数,测试覆盖率为测试用例覆盖代码的能力,获取用例调用频度和测试覆盖率的具体方法,为本领域常规技术手段,此处不再赘述。本实施例可以采用基于深度学习算法动态用例评定机制对历史用例调用频度,测试能力,测试覆盖率统计多维度进行综合评分,将用例与这三个指标综合度量,能为用例提供更精细化度量标准。还可以通过调整测试能力,代码覆盖率,调用频度权重分值,动态给用例评份,比如某个系统内部逻辑复杂,那这时可以通过将代码覆盖率权重提升,从而将这个领域内的用例更多关注于代码流转路径,从而使编写的用例执行对代码覆盖率更高。
步骤S311,使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试。
现有技术的测试用例完全基于手工编写,特别是在当今PASS化下,大量应用接口采用参数配置实现,而完全采用手工编写方式,面对大量组合场景,无法确保组合覆盖率,本实施例采用基于正交组合测试策略,通过对每个输入参数提供的因子,自动组合用例,该方式具备用例组合全面,冗余少的特点,实现最少的用例,覆盖最多场景。
本实施例中,步骤S301-步骤S304、步骤S311的实现方式与本发明图3所示实施例中的步骤S201-步骤S204、步骤S207的实现方式相同,在此不再一一赘述。
图8为本发明一个实施例提供的软件功能测试装置的结构示意图,如图8所示,本实施例提供的软件功能测试装置8包括:
功能信息获取模块81,用于获取测试目标的功能信息,其中,功能信息表征测试目标所归属的目标类型的功能。
测试用例创建模块82,用于根据功能信息,确定测试用例模型,并根据测试用例模型创建测试用例。
测试目标测试模块83,用于使用测试用例,对测试目标所归属的同一目标类型的各测试目标进行测试。
可选地,功能信息包括功能描述信息;测试用例创建模块82,具体用于:
根据功能描述信息,确定目标类型的功能。
根据目标类型的功能,确定与测试目标匹配的测试用例模型。
可选地,测试用例创建模块82,在根据目标类型的功能,确定与测试目标匹配的测试用例模型时,具体用于:
获取预设的目标类型与基础模型的映射关系。
根据目标类型和映射关系,确定基础模型。
根据基础模型,构建测试用例模型。
可选地,测试用例创建模块82在根据目标类型和映射关系,确定基础模型之后,具体用于:
根据功能信息,确定特性模型。
根据基础模型,构建测试用例模型,包括:
根据基础模型和特性模型,构建测试用例模型。
可选地,功能信息还包括接口信息,测试用例创建模块82在根据功能信息,确定特性模型时,具体用于:
根据接口信息,确定与测试目标对应的第一功能接口。
确定与基础模型对应的第二功能接口。
将第一功能接口中不与第二功能接口重合的部分,确定为第三功能接口。
根据第三功能接口,确定特性模型。
可选地,测试用例创建模块82,还用于:
对测试用例进行评估,得到评估结果。
根据评估结果,对测试用例进行修正。
可选地,评估结果包括测试能力,测试用例创建模块82在对测试用例进行评估,得到评估结果时,具体用于:
根据测试用例,对测试目标进行预测试,得到预测试结果,预测结果包括成功用例数量和失败用例数量。
根据成功用例数量和失败用例数量,确定测试能力。
测试用例创建模块82在根据评估结果,对测试用例进行修正时,具体用于:
根据测试能力,对目标测试用例进行修正。
可选地,评估结果包括测试能力,和/或测试覆盖率,和/或调用频度,测试用例创建模块82在根据评估结果,对测试用例进行修正时,具体用于:
根据测试能力,和/或测试覆盖率,和/或调用频度,对测试用例进行修正。
其中,功能信息获取模块81、测试用例创建模块82和测试目标测试模块83依次连接。本实施例提供的软件功能测试装置8可以执行如图2-图7任一所对应的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明一个实施例提供的电子设备的示意图,如图9所示,本实施例提供的电子设备包括:存储器91,处理器92以及计算机程序。
其中,计算机程序存储在存储器91中,并被配置为由处理器92执行以实现本发明图2-图7所对应的实施例中任一实施例提供的软件功能测试方法。
其中,存储器91和处理器92通过总线93连接。
相关说明可以对应参见图2-图7所对应的实施例中的步骤所对应的相关描述和效果进行理解,此处不做过多赘述。
本发明一个实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现本发明图2-图7所对应的实施例中任一实施例提供的软件功能测试方法。
其中,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (9)
1.一种软件功能测试方法,其特征在于,所述方法包括:
获取测试目标的功能信息,其中,所述功能信息表征所述测试目标所归属的目标类型的功能;
根据所述功能信息,确定测试用例模型,并根据所述测试用例模型创建测试用例;
使用所述测试用例,对所述测试目标所归属的同一目标类型的各测试目标进行测试;
所述功能信息包括功能描述信息;根据所述功能信息,确定测试用例模型,包括:
根据所述功能描述信息,确定所述目标类型的功能;
获取预设的目标类型与基础模型的映射关系;
根据所述目标类型和所述映射关系,确定基础模型;
根据所述基础模型,构建测试用例模型。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述目标类型和所述映射关系,确定基础模型之后,还包括:
根据所述功能信息,确定特性模型;
所述根据所述基础模型,构建测试用例模型,包括:
根据所述基础模型和所述特性模型,构建测试用例模型。
3.根据权利要求1所述的方法,其特征在于,所述功能信息还包括接口信息,根据所述功能信息,确定特性模型,还包括:
根据所述接口信息,确定与所述测试目标对应的第一功能接口;
确定与所述基础模型对应的第二功能接口;
将所述第一功能接口中不与所述第二功能接口重合的部分,确定为第三功能接口;
根据所述第三功能接口,确定特性模型。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述根据所述测试用例模型创建测试用例之后,还包括:
对所述测试用例进行评估,得到评估结果;
根据评估结果,对所述测试用例进行修正。
5.根据权利要求4所述的方法,其特征在于,所述评估结果包括测试能力,对所述测试用例进行评估,得到评估结果,包括:
根据所述测试用例,对所述测试目标进行预测试,得到预测试结果,所述预测试结果包括成功用例数量和失败用例数量;
根据所述成功用例数量和失败用例数量,确定所述测试能力;
所述根据评估结果,对所述测试用例进行修正,包括:
根据所述测试能力,对目标测试用例进行修正。
6.根据权利要求4所述的方法,其特征在于,所述评估结果包括测试能力,和/或测试覆盖率,和/或调用频度,根据评估结果,对所述测试用例进行修正,包括:
根据测试能力,和/或测试覆盖率,和/或调用频度,对所述测试用例进行修正。
7.一种软件功能测试装置,其特征在于,所述装置包括:
功能信息获取模块,用于获取测试目标的功能信息,其中,所述功能信息表征所述测试目标所归属的目标类型的功能;
测试用例创建模块,用于根据所述功能信息,确定测试用例模型,并根据所述测试用例模型创建测试用例;
测试目标测试模块,用于使用所述测试用例,对所述测试目标所归属的同一目标类型的各测试目标进行测试;
所述功能信息包括功能描述信息;所述测试用例创建模块具体用于:
根据所述功能描述信息,确定所述目标类型的功能;
获取预设的目标类型与基础模型的映射关系;
根据所述目标类型和所述映射关系,确定基础模型;
根据所述基础模型,构建测试用例模型。
8.一种电子设备,其特征在于,包括:存储器,处理器以及计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6中任一项所述的软件功能测试方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的软件功能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187203.1A CN111522734B (zh) | 2020-03-17 | 2020-03-17 | 软件功能测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187203.1A CN111522734B (zh) | 2020-03-17 | 2020-03-17 | 软件功能测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522734A CN111522734A (zh) | 2020-08-11 |
CN111522734B true CN111522734B (zh) | 2023-02-28 |
Family
ID=71901543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010187203.1A Active CN111522734B (zh) | 2020-03-17 | 2020-03-17 | 软件功能测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522734B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131114A (zh) * | 2020-09-23 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 应用的测试方法、装置、设备及存储介质 |
CN112506757A (zh) * | 2020-11-17 | 2021-03-16 | 中广核工程有限公司 | 自动测试方法、系统、计算机设备及其介质 |
CN112597046A (zh) * | 2020-12-29 | 2021-04-02 | 上海商汤智能科技有限公司 | 测试方法、装置、计算机设备及存储介质 |
CN112948244B (zh) * | 2021-02-26 | 2022-08-26 | 中国信息通信研究院 | 用于工业互联网信息模型测试的方法、装置和设备 |
CN113238930A (zh) * | 2021-04-26 | 2021-08-10 | 南方电网电力科技股份有限公司 | 软件系统的测试方法、装置、终端设备和存储介质 |
CN113656320A (zh) * | 2021-08-26 | 2021-11-16 | 国网电子商务有限公司 | 一种测试用例生成方法及装置 |
CN114089725B (zh) * | 2021-11-18 | 2024-03-15 | 北京晶亦精微科技股份有限公司 | 一种化学机械抛光设备控制软件的测试方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445799A (zh) * | 2015-08-05 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 软件测试方法及装置 |
CN107783901A (zh) * | 2017-09-26 | 2018-03-09 | 深圳市牛鼎丰科技有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN107885660A (zh) * | 2017-10-31 | 2018-04-06 | 平安科技(深圳)有限公司 | 基金系统自动化测试管理方法、装置、设备及存储介质 |
CN109542761A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 软件质量评估方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110088011A1 (en) * | 2009-10-14 | 2011-04-14 | Vermeg Sarl | Automated Enterprise Software Development |
-
2020
- 2020-03-17 CN CN202010187203.1A patent/CN111522734B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445799A (zh) * | 2015-08-05 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 软件测试方法及装置 |
CN107783901A (zh) * | 2017-09-26 | 2018-03-09 | 深圳市牛鼎丰科技有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN107885660A (zh) * | 2017-10-31 | 2018-04-06 | 平安科技(深圳)有限公司 | 基金系统自动化测试管理方法、装置、设备及存储介质 |
CN109542761A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 软件质量评估方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522734A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522734B (zh) | 软件功能测试方法、装置、电子设备及存储介质 | |
US9519571B2 (en) | Method for analyzing transaction traces to enable process testing | |
US20130191689A1 (en) | Functional testing of a processor design | |
Griebe et al. | A model-based approach to test automation for context-aware mobile applications | |
CN109522228B (zh) | 接口自动化测试数据构造方法、装置、平台及存储介质 | |
US8271252B2 (en) | Automatic verification of device models | |
CN110532185B (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
Caliebe et al. | Dependency-based test case selection and prioritization in embedded systems | |
CN108595342A (zh) | 单元测试方法和装置 | |
CN108255702A (zh) | 一种测试用例创建方法、装置、设备及存储介质 | |
CN111597110A (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN114117977B (zh) | 一种适用于自动验证处理器系统场景的方法 | |
Zhang et al. | Model based testing for agent systems | |
CN110737985A (zh) | 运行数据验证方法、装置、计算机设备和可读存储介质 | |
KR101334806B1 (ko) | 테스트 케이스 자동 생성 시스템에서 테스트 케이스를 구성하는 입력값의 집합을 자동으로 산출하는 방법 | |
CN112632882A (zh) | 一种基于形式验证对仲裁器验证的装置以及方法 | |
Villalobos-Arias et al. | Evaluation of a model‐based testing platform for Java applications | |
Goel et al. | Testability estimation of framework based applications | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
CN110659215A (zh) | 一种开放式工业app快速开发及测试验证方法 | |
CN116541024B (zh) | 用于软件通信体系结构的静态部署方法 | |
CN117236239B (zh) | 用于数字电路验证的通用连通性测试方法、设备和介质 | |
CN117389818B (zh) | 应用于uvm验证平台的验证方法及装置 | |
CN110750452B (zh) | 自动化测试方法及装置 | |
Tchier et al. | Putting engineering into software engineering: Upholding software engineering principles in the classroom |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221123 Address after: 200444 3F, No. 15, Lane 2999, Hutai Road, Baoshan District, Shanghai Applicant after: Shanghai Yunli Information Technology Co.,Ltd. Address before: 200444 Floor 3, No. 13, Lane 2999, Hutai Road, Baoshan District, Shanghai Applicant before: Shanghai Yunli Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |