CN109783354A - 应用系统的功能测试方法、终端设备及介质 - Google Patents
应用系统的功能测试方法、终端设备及介质 Download PDFInfo
- Publication number
- CN109783354A CN109783354A CN201811530555.1A CN201811530555A CN109783354A CN 109783354 A CN109783354 A CN 109783354A CN 201811530555 A CN201811530555 A CN 201811530555A CN 109783354 A CN109783354 A CN 109783354A
- Authority
- CN
- China
- Prior art keywords
- test
- parameter
- tested
- model
- combination
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title claims abstract description 20
- 238000012360 testing method Methods 0.000 claims abstract description 275
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 49
- 238000013515 script Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000011990 functional testing Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 241000208340 Araliaceae Species 0.000 description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 235000008434 ginseng Nutrition 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明适用于测试技术领域,提供了一种应用系统的功能测试方法、终端设备及介质,该方法包括:获取应用程序中待测试对象的参数输入项;若参数输入项的数目大于预设阈值,则创建对应各个参数输入项的枚举类对象;在预设的循环结构体模型中,将其包含的预留参数确定为枚举类对象,得到测试模型;执行测试模型,并根据测试模型所输出的各个参数组合,生成与待测试对象匹配的测试用例;基于测试用例,对应用程序进行测试。本发明避免了用户需要人为手工地组合各类测试参数,提高了测试用例的生成效率以及准确率;对于不同的待测试对象,本发明均能够以同一套测试逻辑来进行测试用例的生成操作,故也降低了测试管理平台的代码维护难度。
Description
技术领域
本发明属于测试技术领域,尤其涉及一种应用系统的功能测试方法、终端设备及计算机可读存储介质。
背景技术
目前,各类系统在开发完成后,为了确保系统所提供的各项功能均能够正常实现,在对外发布该系统之前,均需要由测试人员对其进行测试。在测试某项功能的过程中,若该项功能所对应的参数输入项有多个,且每一参数输入项能够有不同的取值,则测试人员需要将各个参数输入项的不同取值进行手动组合后,才能实现对各类测试场景的模拟。
然而,当某一功能的参数输入项过多时,对应的参数组合方案数目也会成倍递增,故测试人员在撰写测试用例时,只能提前进行分析并手工排列好各类组合方案。由于手工进行组合排列的方式容易出现方案遗漏或者方案重复的问题,因此,现有应用系统的功能测试方法中,测试效率以及测试准确率均较为低下。
发明内容
有鉴于此,本发明实施例提供了一种应用系统的功能测试方法、终端设备及计算机可读存储介质,以解决现有技术中测试效率以及测试准确率均较为低下的问题。
本发明实施例的第一方面提供了一种应用系统的功能测试方法,包括:
获取应用程序中待测试对象的参数输入项;
若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
基于所述测试用例,对所述应用程序进行测试。
本发明实施例的第二方面提供了一种应用系统的功能测试装置,包括:
第一获取单元,用于获取应用程序中待测试对象的参数输入项;
创建单元,用于若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
确定单元,用于在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行单元,用于执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
测试单元,用于基于所述测试用例,对所述应用程序进行测试。
本发明实施例的第三方面提供了一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取应用程序中待测试对象的参数输入项;
若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
基于所述测试用例,对所述应用程序进行测试。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
获取应用程序中待测试对象的参数输入项;
若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
基于所述测试用例,对所述应用程序进行测试。
本发明实施例中,通过确定待测试对象的参数输入项,在参数输入项的数目大于预设阈值时,创建对应各个参数输入项的枚举类对象,并将枚举类对象输入预设的循环结构体模型中,保证了测试系统能够迅速地获取用于输出各个参数组合的测试模型;通过自动执行该测试模型,使得测试模型的每一输出值均能够用于表示一类组合模拟场景,达到了测试用例的自动生成效果,由此也保证了测试用例所对应的参数组合能够更为全面、不容易出现遗漏,同时也避免了用户需要人为手工地组合各类测试参数,因此,提高了测试用例的生成效率以及准确率。另一方面,由于待测试对象的各个参数输入项能够被自动识别,故能够适应性地获取不同的测试模型,因此,对于不同的待测试对象,均能够以同一套测试逻辑来进行测试用例的生成操作,故也提高了测试用户对于测试管理平台的管理效率,降低了测试管理平台的代码维护难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用系统的功能测试方法的实现流程图;
图2是本发明实施例提供的应用系统的功能测试方法S105的具体实现流程图;
图3是本发明实施例提供的应用系统的功能测试方法S105的另一具体实现流程图;
图4是本发明实施例提供的应用系统的功能测试方法S104的一具体实现流程图;
图5是本发明实施例提供的应用系统的功能测试方法S104的另一具体实现流程图;
图6是本发明实施例提供的应用系统的功能测试装置的结构框图;
图7是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的应用系统的功能测试方法的实现流程,该方法流程包括步骤S101至S105。各步骤的具体实现原理如下:
S101:获取应用程序中待测试对象的参数输入项。
本发明实施例中,待测试对象包括待测试的移动应用、网页页面、脚本代码以及各类业务系统等。参数输入项表示待测试对象所关联的各个参数项,即,表示待输入参数值的各类条件参数。示例性地,上述参数输入项例如可以是与网页页面中的姓名输入框、编号输入框以及地址输入框等各类控件相对应的参数项。
在对待测试对象进行测试的过程中,通过待测试对象关联的各个代码分支,对其参数输入项所对应的参数值进行处理,可获得对应的运算结果。
本发明实施例中,通过预设的正则表达式,对待测试对象所对应的逻辑代码进行检测,以检测出逻辑代码中与正则表达式匹配的各个控件。根据各个控件与参数输入项的对应关系表,获取检测出的各个控件所对应的参数输入项,并统计获取得到的参数输入项的数目。
S102:若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象。
本发明实施例中,判断获取得到的参数输入项的数目是否大于预设阈值。其中,上述预设阈值为测试人员预先输入的门限值。若基于m(m为大于零的整数)个参数输入项所得到的组合场景有n(N为大于零的整数)个,且测试人员确定在对该N个组合场景进行手工列举编排时需要耗费较大的时间成本,则将此时的数值m确定为上述预设阈值。
若统计得到的参数输入项的数目大于预设阈值,则通过预先录入的脚本代码,创建对应各个参数输入项的枚举类对象。示例性地,对于网页页面中的文本输入框这一控件对象,其关联的参数输入项有String参数、文本框name以及文本框xpath,则创建对应各个参数输入项的枚举类对象为:public enum C C1(100,"id01","id='name/v1'"),C2(200,"id01","id='name/v1'"),C3(300,"id01","id='name/v1'")。
可选地,若统计得到的参数输入项的数目小于或等于预设阈值,则退出本发明实施例所提供的功能测试流程,并提示用户直接列举各个参数输入项所对应的参数值。
S103:在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合。
本发明实施例中,循环结构体模型根据测试人员所预先输入的代码指令来获取。循环结构体模型为反复执行循环遍历功能而设置的一种程序结构,其包括循环变量i、循环体和循环终止条件。其中,循环终止条件用于判断循环变量i是否达到目标值,若是,则确定循环结束。
本发明实施例中,循环结构体模型中的循环终止条件为预留参数,且该循环结构体模型用于遍历预留参数所对应的各个参数组合。将上述生成的与参数输入项对应的枚举类对象输入该循环结构体模型,以使该枚举类对象作为上述预留参数在当前时刻的取值。
例如,上述循环结构体模型可以为for(int i=0;i<C.value().length,i++){},则该循环结构体模型所包含的预留参数C将被确定为上述枚举类对象。
为了便于区分,将上述输入枚举类对象后的循环结构体模型称为测试模型。
S104:执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例。
S105:基于所述测试用例,对所述应用程序进行测试。
本发明实施例中,执行上述测试模型所包含的各脚本代码。当循环变量i取不同的参数值时,测试模型将输出不同的参数组合。在循环变量i逐渐增大的过程中,若其达到了预设的目标值时,则停止执行该测试模型。
本发明实施例中,为待测试对象所对应的每一个参数组合生成一个测试用例,并将该测试用例进行输出,以使测试人员基于该测试用例,对待测试对象进行测试操作。
作为本发明的一个实施例,如图2所示,上述S105具体包括:
S1051:获取与所述待测试对象关联的各个逻辑代码分支。
每一待测试对象关联多个逻辑代码分支,每一逻辑代码分支用于执行与该待测试对象关联的一项系统功能。本发明实施例中,依序读取其中的每一逻辑代码分支。
S1052:对所述测试用例中的每一个所述参数组合,通过所述逻辑代码分支对该参数组合进行运算处理,得到该参数组合在所述逻辑代码分支中的实际输出值。
对于当前读取到的逻辑代码分支,确定与该逻辑代码分支关联的各个参数输入项。在上述生成的各个测试用例中,依序读取其所包含的参数组合,并筛选出其中与上述各个参数输入项对应的参数组合。
将筛选出的参数组合输入当前读取的逻辑代码分支,以通过上述逻辑代码分支对该参数组合中的各项参数值进行运算处理后,得到实时输出值。
S1053:获取该参数组合在所述逻辑代码分支中的目标输出值。
在逻辑代码分支中对参数组合进行运算处理后,用户期望得到的输出值为目标输出值。对于不同的参数组合,其在逻辑代码分支中的目标输出值均存储于预设的数据表中。
根据当前输入于逻辑代码分支的参数组合,在上述数据表中,读取该参数组合在逻辑代码分支中的目标输出值。
S1054:根据所述实际输出值以及所述目标输出值的匹配度,生成关于所述待测试对象的测试结果。
本发明实施例中,获取当前时刻的实际输出值与该参数组合所对应的目标输出值的匹配度,并根据该匹配度来确定该测试用例所对应的测试结果。
示例性地,若上述实际输出值与目标输出值均为数值,则实际输出值与目标输出值的匹配度包括二者的差值;若上述实际输出值与目标输出值均为输出图形画面,则实际输出值与目标输出值的匹配度包括两个图形画面的相似度。
若获取得到的匹配度满足预设条件,则确定待测试对象在当前逻辑代码分支中的功能测试结果为测试成功;若获取得到的匹配度不满足预设条件,则确定待测试对象在当前逻辑代码分支中的功能测试结果为测试失败。
例如,若上述预设条件为实际输出值与目标输出值的差值为零,则表示当且仅当实际输出值与目标输出值相同时,待测试对象在当前逻辑代码分支中的功能测试结果才为测试成功。
优选地,若当前时刻检测到的功能测试结果为测试失败,则生成并记录关于当前测试用例的运行日志。
作为本发明的另一个实施例,如图3所示,在上述S1054之后,还包括:
S1055:若检测到所述测试结果为参数测试错误,则获取所述参数组合在所述逻辑代码分支的执行过程中所对应的各个测试界面截图。
本发明实施例中,若检测到当前测试用例所对应的功能测试结果为测试失败,则进一步确定其测试失败类型。若检测到测试失败类型为参数测试错误,则对测试过程中的各个运行界面进行截图处理,并将获取得到的测试界面截图存储于预设目录。
优选地,在存储每一测试界面截图时,根据该测试界面截图相关的参数组合,确定与该参数组合对应的各项测试参数。上述测试参数包括但不限于实际输出值、目标输出值、测试时间以及逻辑代码分支的分支标识等。
将测试界面截图、参数组合以及测试参数的对应关系存储于上述预设目录。
S1056:根据所述测试界面截图以及所述参数组合对应的各项测试参数,生成对应的运行日志,所述测试参数包括所述实际输出值、所述目标输出值、测试时间以及所述逻辑代码分支的分支标识。
S1057:每隔预设的时间间隔,将预设时长内所生成的所述运行日志导入报告模板,并将所述报告模板发送至预设的邮箱地址。
本发明实施例中,为每一张测试界面截图创建对应的一条或多条运行日志,以使用户根据运行日志所记录的参数信息,对出现测试错误的测试用例以及逻辑代码分支进行故障排查处理。
每隔预设的时间间隔,将最近预设时长内所生成的各条运行日志导入预加载的报告模板。其中,报告模板包含多项表头,每一表头与一表体对应,且每一表头用于描述运行日志中的一参数字段,每一表体用于记录与表头匹配的测试参数。
本发明实施例中,获取测试人员预设的邮箱地址,并将实时生成的电子邮件发送至该邮箱地址。其中,电子邮件携带附件信息,附件信息包括上述导入运行日志的报告模板。
本发明实施例中,通过在参数测试错误时,生成各项测试参数以及测试界面截图所对应的运行日志,将运行日志导入报告模板并发送至预设的邮箱地址,使得测试人员能够基于接收到的电子邮件,快速获取自动化测试过程中所关联的运行日志,从而及时地对运行日志进行分析及故障排查处理,因此,在实现系统自动化功能测试的同时,还提高了漏洞修复效率。
本发明实施例中,通过确定待测试对象的参数输入项,在参数输入项的数目大于预设阈值时,创建对应各个参数输入项的枚举类对象,并将枚举类对象输入预设的循环结构体模型中,保证了测试系统能够迅速地获取用于输出各个参数组合的测试模型;通过自动执行该测试模型,使得测试模型的每一输出值均能够用于表示一类组合模拟场景,达到了测试用例的自动生成效果,由此也保证了测试用例所对应的参数组合能够更为全面、不容易出现遗漏,同时也避免了用户需要人为手工地组合各类测试参数,因此,提高了测试用例的生成效率以及准确率。另一方面,由于待测试对象的各个参数输入项能够被自动识别,故能够适应性地获取不同的测试模型,因此,对于不同的待测试对象,均能够以同一套测试逻辑来进行测试用例的生成操作,故也提高了测试用户对于测试管理平台的管理效率,降低了测试管理平台的代码维护难度。
作为本发明的一个实施例,图4示出了本发明实施例提供的应用系统的功能测试方法S104的具体实现流程,详述如下:
S1041:在预先建立的测试用例数据库中,获取与所述待测试对象匹配的各个测试用例代码模块。
测试用例数据库用于存储预先建立的多个测试用例,每一个测试用例由多个测试用例代码模块构成。测试用例代码模块用于测试对应的一项系统子功能。因此,在上述测试用例数据库中,通过已连接的管理工具,可获取与当前测试对象匹配的一个或多个测试用例代码模块。
S1042:分别渲染与每个所述测试用例代码模块相对应的页面控件。
本发明实施例中,在显示界面中渲染每一个测试用例代码模块对应的一个可移动页面控件,并将测试用例代码模块的模块标识展示于该页面控件,以使用户根据页面控件上所展示的模块标识,确定该测试用例代码模块所需执行测试的系统子功能。
S1043:根据用户发出的移动操控指令,对所述页面控件进行排列组合,并根据其中每一所述页面控件所预先关联的逻辑代码,构建自动化测试脚本。
用户可以对任一页面控件发出移动操控指令,以使得移动操控指令的目标对象发生位置移动。例如,当检测到用户通过鼠标来对页面控件1进行拖动时,可将页面控件1沿着拖动轨迹进行位置移动。
基于每一页面控件的模块标识,在测试代码库中,查找出与该模块标识匹配的逻辑代码。根据显示页面中各个页面控件的排列顺序,对每一页面控件所关联的逻辑代码进行重组。将重组后的逻辑代码的集合输出为用户所实时创建的自动化测试脚本。
S1044:将所述测试模型所输出的各个所述参数组合导入所述自动化测试脚本。
S1045:验证所述自动化测试脚本的代码完整性,并在验证结果为验证通过时,将所述自动化测试脚本输出为与所述待测试对象匹配的测试用例。
本发明实施例中,获取测试模型输出的各个参数组合。对每一参数组合,将其输入上述实时创建的自动化测试脚本中,以使自动化测试脚本中的预留参数确定为参数组合中的各个参数值。在自动化测试脚本的运行过程中,验证其代码完整性,即,判断该自动化测试脚本是否满足语法规范以及是否逻辑完整。
具体地,在自动化测试脚本的运行过程中,若检测到系统错误执行信息或检测到自动化测试脚本执行中断信息,则确定该自动化测试脚本不符合语法规范,其不具备代码完整性。反之,若未检测到系统错误执行信息以及自动化测试脚本执行中断信息,则确定该自动化测试脚本的代码完整性验证结果为验证通过。此时,将包含该参数组合的自动化测试脚本输出为与待测试对象匹配的一个测试用例。
本发明实施例中,通过获取预设的各个测试用例代码模块,渲染与每一测试用例代码模块对应的页面控件,使得用户能够根据实时展示的页面控件的控件标识,准确确定所需测试功能的页面控件并对其进行移动操控处理,进而实现对逻辑代码的灵活组合,生成自动化测试脚本。通过将各参数组合导入自动化测试脚本,并在代码完整性验证通过后,才将该自动化测试脚本输出为一测试用例,降低了创建测试用例对人员编程能力的要求,提高了测试用例的生成效率。
作为本发明的一个实施例,图5示出了本发明实施例提供的应用系统的功能测试方法S104的另一具体实现流程,详述如下:
S1046:接收用户输入的测试需求文本。
本发明实施例中,测试需求文本用于描述功能测试过程中所需执行的测试操作,其为用户输入的文本描述性语句。
示例性地,若用户需要对应用程序中的物流价格运算功能进行测试,则其输入的测试需求文本可以为“物流价格运算测试”。
S1047:检测存在于所述测试需求文本中的特征词和对应的特征参数;所述特征词用于描述待测试对象关联的系统功能。
根据预设的特征词列表,提取存在于测试需求文本中的特征词以及与该特征词对应的特征参数。其中,特征词用于与描述待测试对象关联的系统功能。例如,上述示例中的“物流价格运算”为预设于物流系统中的一项系统功能,因此,基于预设的特征词列表,可检测出存在于测试需求文本中的特征词为“物流价格运算”。
S1048:获取与所述系统功能对应的所述逻辑代码分支。
本发明实施例中,不同的系统功能由不同的逻辑代码分支来实现。根据预设的系统功能以及逻辑代码分支的对应关系,确定与测试需求文本中的特征词相对应的逻辑代码分支。
S1049:根据所述逻辑代码分支、所述特征参数和所述参数组合,生成自动化测试脚本。
对于当前读取到的逻辑代码分支,确定与该逻辑代码分支关联的各个参数输入项。在测试模型所输出的各个参数组合中,检测出与上述各个参数输入项对应的参数组合,并将测试需求文本中的特征参数以及所述检测出的参数组合输入该逻辑代码分支,以得到对应测试需求文本的自动化测试脚本。
本发明实施例中,用户只需输入测试需求文本,系统便能够检测该测试需求文本中的特征词以及特征参数,从而自动确定出待测试的系统功能;通过查找出与该系统功能对应的逻辑代码分支,并根据逻辑代码分支、特征参数以及参数组合来生成自动化测试脚本,避免了用户需要人工编写各类测试脚本,因而提高了测试脚本的生成效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于本发明实施例所提供的应用系统的功能测试方法,图6示出了本发明实施例提供的应用系统的功能测试装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分。
参照图6,该装置包括:
第一获取单元61,用于获取应用程序中待测试对象的参数输入项。
创建单元62,用于若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象。
确定单元63,用于在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合。
执行单元64,用于执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例。
测试单元65,用于基于所述测试用例,对所述应用程序进行测试。
可选地,所述测试单元65包括:
第一获取子单元,用于获取与所述待测试对象关联的各个逻辑代码分支。
运算子单元,用于对所述测试用例中的每一个所述参数组合,通过所述逻辑代码分支对该参数组合进行运算处理,得到该参数组合在所述逻辑代码分支中的实际输出值。
第二获取子单元,用于获取该参数组合在所述逻辑代码分支中的目标输出值。
第一生成子单元,用于根据所述实际输出值以及所述目标输出值的匹配度,生成关于所述待测试对象的测试结果。
可选地,所述执行单元64包括:
第三获取子单元,用于在预先建立的测试用例数据库中,获取与所述待测试对象匹配的各个测试用例代码模块。
渲染子单元,用于分别渲染与每个所述测试用例代码模块相对应的页面控件。
构建子单元,用于根据用户发出的移动操控指令,对所述页面控件进行排列组合,并根据其中每一所述页面控件所预先关联的逻辑代码,构建自动化测试脚本。
导入子单元,用于将所述测试模型所输出的各个所述参数组合导入所述自动化测试脚本。
验证子单元,用于验证所述自动化测试脚本的代码完整性,并在验证结果为验证通过时,将所述自动化测试脚本输出为与所述待测试对象匹配的测试用例。
可选地,所述执行单元64包括:
接收子单元,用于接收用户输入的测试需求文本。
检测子单元,用于检测存在于所述测试需求文本中的特征词和对应的特征参数;所述特征词用于描述待测试对象关联的系统功能。
第四获取子单元,用于获取与所述系统功能对应的所述逻辑代码分支。
第二生成子单元,用于根据所述逻辑代码分支、所述特征参数和所述参数组合,生成自动化测试脚本。
可选地,所述测试单元65还包括:
第五获取子单元,用于若检测到所述测试结果为参数测试错误,则获取所述参数组合在所述逻辑代码分支的执行过程中所对应的各个测试界面截图。
第三生成子单元,用于根据所述测试界面截图以及所述参数组合对应的各项测试参数,生成对应的运行日志,所述测试参数包括所述实际输出值、所述目标输出值、测试时间以及所述逻辑代码分支的分支标识。
发送子单元,用于每隔预设的时间间隔,将预设时长内所生成的所述运行日志导入报告模板,并将所述报告模板发送至预设的邮箱地址。
图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如应用系统的功能测试程序。所述处理器70执行所述计算机程序72时实现上述各个应用系统的功能测试方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示单元61至65的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种应用系统的功能测试方法,其特征在于,包括:
获取应用程序中待测试对象的参数输入项;
若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
基于所述测试用例,对所述应用程序进行测试。
2.如权利要求1所述的应用系统的功能测试方法,其特征在于,所述基于所述测试用例,对所述应用程序进行测试,包括:
获取与所述待测试对象关联的各个逻辑代码分支;
对所述测试用例中的每一个所述参数组合,通过所述逻辑代码分支对该参数组合进行运算处理,得到该参数组合在所述逻辑代码分支中的实际输出值;
获取该参数组合在所述逻辑代码分支中的目标输出值;
根据所述实际输出值以及所述目标输出值的匹配度,生成关于所述待测试对象的测试结果。
3.如权利要求1所述的应用系统的功能测试方法,其特征在于,所述执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例,包括:
在预先建立的测试用例数据库中,获取与所述待测试对象匹配的各个测试用例代码模块;
分别渲染与每个所述测试用例代码模块相对应的页面控件;
根据用户发出的移动操控指令,对所述页面控件进行排列组合,并根据其中每一所述页面控件所预先关联的逻辑代码,构建自动化测试脚本;
将所述测试模型所输出的各个所述参数组合导入所述自动化测试脚本;
验证所述自动化测试脚本的代码完整性,并在验证结果为验证通过时,将所述自动化测试脚本输出为与所述待测试对象匹配的测试用例。
4.如权利要求1所述的应用系统的功能测试方法,其特征在于,所述执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例,包括:
接收用户输入的测试需求文本;
检测存在于所述测试需求文本中的特征词和对应的特征参数;所述特征词用于描述待测试对象关联的系统功能;
获取与所述系统功能对应的所述逻辑代码分支;
根据所述逻辑代码分支、所述特征参数和所述参数组合,生成自动化测试脚本。
5.如权利要求2所述的应用系统的功能测试方法,其特征在于,还包括:
若检测到所述测试结果为参数测试错误,则获取所述参数组合在所述逻辑代码分支的执行过程中所对应的各个测试界面截图;
根据所述测试界面截图以及所述参数组合对应的各项测试参数,生成对应的运行日志,所述测试参数包括所述实际输出值、所述目标输出值、测试时间以及所述逻辑代码分支的分支标识;
每隔预设的时间间隔,将预设时长内所生成的所述运行日志导入报告模板,并将所述报告模板发送至预设的邮箱地址。
6.一种应用系统的功能测试装置,其特征在于,包括:
第一获取单元,用于获取应用程序中待测试对象的参数输入项;
创建单元,用于若所述参数输入项的数目大于预设阈值,则创建对应各个所述参数输入项的枚举类对象;
确定单元,用于在预设的循环结构体模型中,将其包含的预留参数确定为所述枚举类对象,得到测试模型;所述循环结构体模型用于遍历所述预留参数所对应的各个参数组合;
执行单元,用于执行所述测试模型,并根据所述测试模型所输出的各个所述参数组合,生成与所述待测试对象匹配的测试用例;
测试单元,用于基于所述测试用例,对所述应用程序进行测试。
7.如权利要求6所述的应用系统的功能测试装置,其特征在于,还包括:
第二获取单元,用于获取与所述待测试对象关联的各个逻辑代码分支;
运算单元,用于对所述测试用例中的每一个所述参数组合,通过所述逻辑代码分支对该参数组合进行运算处理,得到该参数组合在所述逻辑代码分支中的实际输出值;
第三获取单元,用于获取该参数组合在所述逻辑代码分支中的目标输出值;
第一生成单元,用于根据所述实际输出值以及所述目标输出值的匹配度,生成关于所述待测试对象的测试结果。
8.如权利要求7所述的应用系统的功能测试装置,其特征在于,所述第一生成单元包括:
第一获取子单元,用于在预先建立的测试用例数据库中,获取与所述待测试对象匹配的各个测试用例代码模块;
渲染子单元,用于分别渲染与每个所述测试用例代码模块相对应的页面控件;
构建子单元,用于根据用户发出的移动操控指令,对所述页面控件进行排列组合,并根据其中每一所述页面控件所预先关联的逻辑代码,构建自动化测试脚本;
导入子单元,用于将所述测试模型所输出的各个所述参数组合导入所述自动化测试脚本;
验证子单元,用于验证所述自动化测试脚本的代码完整性,并在验证结果为验证通过时,将所述自动化测试脚本输出为与所述待测试对象匹配的测试用例。
9.一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530555.1A CN109783354A (zh) | 2018-12-14 | 2018-12-14 | 应用系统的功能测试方法、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530555.1A CN109783354A (zh) | 2018-12-14 | 2018-12-14 | 应用系统的功能测试方法、终端设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783354A true CN109783354A (zh) | 2019-05-21 |
Family
ID=66495947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811530555.1A Pending CN109783354A (zh) | 2018-12-14 | 2018-12-14 | 应用系统的功能测试方法、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783354A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502428A (zh) * | 2019-07-08 | 2019-11-26 | 平安科技(深圳)有限公司 | 代码测试方法、装置、计算机设备和存储介质 |
CN110764993A (zh) * | 2019-09-02 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 自动化测试方法及终端设备 |
CN111026650A (zh) * | 2019-11-22 | 2020-04-17 | 东软集团股份有限公司 | 软件测试的方法、装置、存储介质和电子设备 |
CN111190829A (zh) * | 2019-12-31 | 2020-05-22 | 武汉中海庭数据技术有限公司 | 一种路口测试模型数据自动构建方法和装置 |
CN111274133A (zh) * | 2020-01-17 | 2020-06-12 | Oppo广东移动通信有限公司 | 一种静态扫描方法、装置及计算机可读存储介质 |
CN111324544A (zh) * | 2020-03-12 | 2020-06-23 | 惠州市德赛电池有限公司 | 基于LabView的测试方法和测试系统 |
CN111400181A (zh) * | 2020-03-13 | 2020-07-10 | 北京金山云网络技术有限公司 | 对象测试方法、装置和服务器 |
CN111666222A (zh) * | 2020-07-09 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种测试方法和相关装置 |
CN112052167A (zh) * | 2020-08-25 | 2020-12-08 | 北京梧桐车联科技有限责任公司 | 生成测试脚本代码的方法和装置 |
CN112181835A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112241360A (zh) * | 2019-07-19 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、设备及存储介质 |
CN112540920A (zh) * | 2020-12-10 | 2021-03-23 | 中信银行股份有限公司 | 测试方法、装置、设备和存储介质 |
CN112948234A (zh) * | 2020-08-26 | 2021-06-11 | 深圳市明源云链互联网科技有限公司 | 接口测试方法、装置及电子设备 |
CN113127327A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 一种用于性能测试的测试方法及装置 |
CN113297072A (zh) * | 2021-05-17 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 容器测试方法及装置 |
CN113127327B (zh) * | 2019-12-31 | 2024-07-02 | 深圳云天励飞技术有限公司 | 一种用于性能测试的测试方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254665A1 (en) * | 2011-03-31 | 2012-10-04 | Infosys Technologies Ltd. | Generation of functional tests for re-hosted applications |
CN105512036A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 根据预置规则自动生成测试用例的测试模板及测试方法 |
CA2948250A1 (en) * | 2015-11-20 | 2017-05-20 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
WO2017096990A1 (zh) * | 2015-12-07 | 2017-06-15 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
CN107844424A (zh) * | 2017-11-15 | 2018-03-27 | 杭州杉石科技有限公司 | 基于模型的测试系统及方法 |
CN108255702A (zh) * | 2017-09-21 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种测试用例创建方法、装置、设备及存储介质 |
-
2018
- 2018-12-14 CN CN201811530555.1A patent/CN109783354A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254665A1 (en) * | 2011-03-31 | 2012-10-04 | Infosys Technologies Ltd. | Generation of functional tests for re-hosted applications |
CA2948250A1 (en) * | 2015-11-20 | 2017-05-20 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
WO2017096990A1 (zh) * | 2015-12-07 | 2017-06-15 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
CN105512036A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 根据预置规则自动生成测试用例的测试模板及测试方法 |
CN108255702A (zh) * | 2017-09-21 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种测试用例创建方法、装置、设备及存储介质 |
CN107844424A (zh) * | 2017-11-15 | 2018-03-27 | 杭州杉石科技有限公司 | 基于模型的测试系统及方法 |
Non-Patent Citations (1)
Title |
---|
梁衡;朱亮亮;杨华强;: "基于流程图自动生成测试用例的方法研究与实现", 信息系统工程, no. 08, 20 August 2012 (2012-08-20) * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502428A (zh) * | 2019-07-08 | 2019-11-26 | 平安科技(深圳)有限公司 | 代码测试方法、装置、计算机设备和存储介质 |
CN112241360A (zh) * | 2019-07-19 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、设备及存储介质 |
CN112241360B (zh) * | 2019-07-19 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、设备及存储介质 |
CN110764993A (zh) * | 2019-09-02 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 自动化测试方法及终端设备 |
CN111026650A (zh) * | 2019-11-22 | 2020-04-17 | 东软集团股份有限公司 | 软件测试的方法、装置、存储介质和电子设备 |
CN111026650B (zh) * | 2019-11-22 | 2023-12-22 | 东软集团股份有限公司 | 软件测试的方法、装置、存储介质和电子设备 |
CN111190829B (zh) * | 2019-12-31 | 2022-04-29 | 武汉中海庭数据技术有限公司 | 一种路口测试模型数据自动构建方法和装置 |
CN113127327A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 一种用于性能测试的测试方法及装置 |
CN113127327B (zh) * | 2019-12-31 | 2024-07-02 | 深圳云天励飞技术有限公司 | 一种用于性能测试的测试方法及装置 |
CN111190829A (zh) * | 2019-12-31 | 2020-05-22 | 武汉中海庭数据技术有限公司 | 一种路口测试模型数据自动构建方法和装置 |
CN111274133A (zh) * | 2020-01-17 | 2020-06-12 | Oppo广东移动通信有限公司 | 一种静态扫描方法、装置及计算机可读存储介质 |
CN111274133B (zh) * | 2020-01-17 | 2023-07-25 | Oppo广东移动通信有限公司 | 一种静态扫描方法、装置及计算机可读存储介质 |
CN111324544A (zh) * | 2020-03-12 | 2020-06-23 | 惠州市德赛电池有限公司 | 基于LabView的测试方法和测试系统 |
CN111400181A (zh) * | 2020-03-13 | 2020-07-10 | 北京金山云网络技术有限公司 | 对象测试方法、装置和服务器 |
CN111666222A (zh) * | 2020-07-09 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种测试方法和相关装置 |
CN112052167A (zh) * | 2020-08-25 | 2020-12-08 | 北京梧桐车联科技有限责任公司 | 生成测试脚本代码的方法和装置 |
CN112948234A (zh) * | 2020-08-26 | 2021-06-11 | 深圳市明源云链互联网科技有限公司 | 接口测试方法、装置及电子设备 |
CN112948234B (zh) * | 2020-08-26 | 2023-02-21 | 深圳市明源云链互联网科技有限公司 | 接口测试方法、装置及电子设备 |
CN112181835B (zh) * | 2020-09-29 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112181835A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112540920A (zh) * | 2020-12-10 | 2021-03-23 | 中信银行股份有限公司 | 测试方法、装置、设备和存储介质 |
CN113297072A (zh) * | 2021-05-17 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 容器测试方法及装置 |
CN113297072B (zh) * | 2021-05-17 | 2023-11-03 | 阿里巴巴新加坡控股有限公司 | 容器测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783354A (zh) | 应用系统的功能测试方法、终端设备及介质 | |
CN109542789B (zh) | 一种代码覆盖率统计方法及装置 | |
CN106021816B (zh) | 一种基于行为树的分布式系统行为仿真分析工具的实现方法 | |
CN109871326A (zh) | 一种脚本录制的方法和装置 | |
CN109784758B (zh) | 基于bim模型的工程质量监管预警系统和方法 | |
CN104699601A (zh) | 用于执行状态机驱动的注入的方法和系统 | |
CN106293891B (zh) | 多维投资指标监督方法 | |
CN108255702A (zh) | 一种测试用例创建方法、装置、设备及存储介质 | |
CN111506504B (zh) | 基于软件开发过程度量的软件安全性缺陷预测方法及装置 | |
US10521547B2 (en) | Covergroup network analysis | |
CN110532447A (zh) | 一种业务数据处理方法、装置、介质和设备 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
CN108255479A (zh) | cube文件的创建方法、装置、存储介质及终端 | |
CN107153702A (zh) | 一种数据处理方法及装置 | |
CN114168565B (zh) | 业务规则模型的回溯测试方法、装置、系统及决策引擎 | |
Taylor et al. | Extracting and visualizing hidden activations and computational graphs of PyTorch models with TorchLens | |
CN115494801B (zh) | 板件生产线搭建方法及终端 | |
Schmid et al. | A survey of simulation tools for requirements engineering | |
US11681511B2 (en) | Systems and methods for building and deploying machine learning applications | |
CN107317811B (zh) | 一种模拟plc的实现方法 | |
CN109522210A (zh) | 接口测试参数分析方法、装置、电子装置及存储介质 | |
Koch et al. | Assessment of effort reduction due to model-to-model transformations in the web domain | |
RU2669686C1 (ru) | Способ и система для помощи в верификации и валидации цепи алгоритмов | |
Kusel et al. | Common pitfalls of using QVT relations-graphical debugging as remedy | |
CN106354625A (zh) | 一种测试范围确定方法及装置 |
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 |