CN112100071B - 测试用例生成方法、装置、计算机设备和存储介质 - Google Patents
测试用例生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112100071B CN112100071B CN202010971293.3A CN202010971293A CN112100071B CN 112100071 B CN112100071 B CN 112100071B CN 202010971293 A CN202010971293 A CN 202010971293A CN 112100071 B CN112100071 B CN 112100071B
- Authority
- CN
- China
- Prior art keywords
- scene
- program
- test
- image
- paths
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 294
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000009191 jumping Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 15
- 230000000712 assembly Effects 0.000 claims description 4
- 238000000429 assembly Methods 0.000 claims description 4
- 230000003252 repetitive effect Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 241000023308 Acca Species 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种测试用例生成方法、装置、计算机设备和存储介质。所述方法通过获取测试用例生成请求;调用测试用例生成请求对应待测程序;获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径;根据探索路径获取测试用例。本申请的测试用例生成方法,通过获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径,来生成探索路径,而后依据探索路径来得到对待测程序进行测试的测试用例,可以有效提高测试用例的生成效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种测试用例生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,计算机软件系统的开发过程也越来越趋向于规范化。软件系统开发的流程一般包括总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作。其中,软件测试是指描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件系统的测试一般由人工根据经验来完成,由测试人员亲自操作应用程序,来记录从应用程序的一个场景到另一个场景的多条路径,并将这些路径写成测试用例。然而这种方法生成测试用例的效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能有效提高测试用例生成效率的测试用例生成方法、装置、计算机设备和存储介质。
一种测试用例生成方法,所述方法包括:
获取测试用例生成请求;
调用所述测试用例生成请求对应待测程序;
获取所述待测程序对应的程序页面场景;
识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
根据所述探索路径获取测试用例。
一种测试用例生成装置,所述装置包括:
请求获取模块,用于获取测试用例生成请求;
程序调用模块,用于调用所述测试用例生成请求对应待测程序;
场景获取模块,用于获取所述待测程序对应的程序页面场景;
路径探索模块,用于识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
用例生成模块,用于根据所述探索路径获取测试用例。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取测试用例生成请求;
调用所述测试用例生成请求对应待测程序;
获取所述待测程序对应的程序页面场景;
识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
根据所述探索路径获取测试用例。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取测试用例生成请求;
调用所述测试用例生成请求对应待测程序;
获取所述待测程序对应的程序页面场景;
识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
根据所述探索路径获取测试用例。
上述测试用例生成方法、装置、计算机设备和存储介质,通过获取测试用例生成请求;调用测试用例生成请求对应待测程序;获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径;根据探索路径获取测试用例。本申请的测试用例生成方法,通过获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径,来生成探索路径,而后依据探索路径来得到对待测程序进行测试的测试用例,可以有效提高测试用例的生成效率。
附图说明
图1为一个实施例中测试用例生成方法的应用环境图;
图2为一个实施例中测试用例生成方法的流程示意图;
图3为一个实施例中自动搜索探索路径步骤的流程示意图;
图4为一个实施例中识别当前页面图像对应程序页面场景图像步骤的流程示意图;
图5为一个实施例中生成测试用例步骤的流程示意图;
图6为一个实施例中删除测试路径集合内重复路径步骤的流程示意图;
图7为一个实施例中待测程序中一个场景的示意图;
图8为一个实施例中测试用例生成方法的最简化流程示意图;
图9为另一个实施例中自动搜索探索路径步骤的流程示意图;
图10为一个实施例中搜索探索路径步骤的流程示意图;
图11为另一个实施例中删除测试路径集合内重复路径步骤的流程示意图;
图12为一个实施例中测试路径的起点场景以及重点场景的示意图;
图13为另一个实施例中生成测试用例步骤的流程示意图;
图14为一个实施例中测试路径的示意图;
图15为一个实施例中测试用例生成方法的流程示意图;
图16为一个实施例中测试用例生成装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的测试用例生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与测试用例生成服务器104进行通信。其中,用户可以通过终端102向测试用例生成服务器104发送测试用例生成请求,并在请求中指定待测程序。而测试用例生成服务器104从终端102获取测试用例生成请求;调用测试用例生成请求对应待测程序;获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径;根据探索路径获取测试用例。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,测试用例生成服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种测试用例生成方法,以该方法应用于图1中的测试用例生成服务器104为例进行说明,包括以下步骤:
步骤201,获取测试用例生成请求。
其中,测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。而从终端提交的测试用例生成请求,则是用于请求测试用例生成服务器104生成对目标待测程序进行测试的测试用例。该请求携带有目标待测程序的具体信息。
具体地,本申请的测试用例生成方法具体用于为用户提供测试用例。而用户需要先通过终端102提交包含目标待测程序的测试用例生成请求至测试用例生成服务器104端,由测试用例生成服务器104来生成测试用例。
步骤203,调用测试用例生成请求对应待测程序。
其中,测试用例生成请求对应的待测程序即是测试目标待测程序。
具体地,终端102发送的测试用例生成请求具体可以携带有目标程序的描述信息、标识或者是程序文件所处地址等信息。从而测试用例生成服务器104可以在接收到测试用例生成请求后,可以依据测试用例生成请求中所携带的信息调用待测程序。
步骤205,获取待测程序对应的程序页面场景。
其中,待测程序对应的程序页面场景是指待测程序在运行后,在显示页面所呈现的场景。
具体地,一个待测程序可以包含多个不同的程序页面场景,一般程序页面场景上还设置有若干的跳转组件,跳转组件用于控制程序从一个程序页面场景跳转到另一个程序页面场景。测试用例生成服务器104在生成测试用例的过程中,可以先启动待测程序,当待测程序运行之后,通过点击程序页面场景内的跳转组件,控制程序页面场景不断跳转,从而获取待测程序对应的所有程序页面场景。
步骤207,识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径。
其中,场景对包含两个程序页面场景,包含起始场景以及终止场景,可以通过起始场景内的跳转组件,直接跳转到终止场景,如对于三个场景A、B、C。场景对可以为AB、AC、BC以及CA等,分别表示场景A跳转至场景B,场景A跳转至场景C,场景B跳转至场景C,场景C跳转至场景A。此外场景对还可以包含控制起始场景跳转至终止场景的跳转组件。而探索路径是指由若干个场景对连接而成的一条路径,如路径ABC,表示从场景A跳转到场景B,再从场景B跳转到场景C。如路径ACBCA,表示从场景A跳转到场景C,再从场景C跳转到场景B,再从场景B跳转到场景C,再从场景C跳转到场景A的一条路径。
具体地,当确定待测程序中所有可能出现的程序页面场景后,还需要识别不同程序页面场景间的切换关系。如通过程序页面场景A中的跳转组件就可以跳转至程序页面场景B这样的跳转关系,而后将存在跳转关系的场景对串联起来,即可以组成完整的探索路径。
步骤209,根据探索路径获取测试用例。
具体地,当得到探索路径之后,还需要结合测试需求来获取所需要的测试用例。例如,可以通过指定是需要对程序的哪个场景到哪个场景进行测试。当指定需要当前测试进程对应的起始场景以及终止场景后,即可以从探索路径的集合中提取出从起始场景到终止场景过程中的各种路径。并将其以图像序列的形式输出,而后在后续过程中,通过第三方来对直观的图像序列集合进行审核,来获得可用于测试的测试用例。
上述测试用例生成方法,通过获取测试用例生成请求;调用测试用例生成请求对应待测程序;获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径;根据探索路径获取测试用例。本申请的测试用例生成方法,通过获取待测程序对应的程序页面场景;识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径,来生成探索路径,而后依据探索路径来得到对待测程序进行测试的测试用例,可以有效提高测试用例的生成效率。
在一个实施例中,如图3所示,步骤207包括:
步骤301,获取待测程序的当前页面图像。
其中,当前页面图像是指在显示器页面所呈现的程序页面图像,具体地,在待测程序第一次启动时,或者是在待测程序切换页面后,都需要获取待测程序的当前页面图像。以确定当前页面图像的具体属性。
步骤302,在预设场景库内,查找与当前页面图像相似的程序页面场景图像。
步骤303,根据程序页面场景图像,识别当前页面图像对应的程序页面场景。
其中,预设场景库用于存放待测程序所能呈现的所有程序页面场景图像。具体地,可以将程序在运行过程中,程序页面所呈现的所有场景都可以以程序页面场景图像的形式预先保存在预设场景库内,同时可以对这些场景进行相应的编号。当需要对程序页面场景图像进行识别时,服务器可以根据当前程序页面所呈现的场景图像,确定这个图像对应的那个程序页面场景。
步骤304,读取预设的程序页面场景对应的跳转组件配置数据。
其中,跳转组件配置数据是指控制程序页面场景进行跳转的一些数据,这些数据被预先分配好了编号,同时被分配好了相应的编号。并在预设场景库内,与程序页面场景一同保存,当确定当前页面图像是哪个程序页面场景图像后,便可直接根据预存的数据,查找该程序页面场景图像中的跳转组件对应的配置数据。程序页面内的跳转组件具体可以为按钮,可以通过点击这些按钮来实现对程序页面场景的跳转。而跳转组件配置数据具体可以包含跳转组件在程序页面场景图像中的位置、跳转组件的编号以及跳转组件在本次测试用例生成过程中的被点击次数。
步骤305,根据跳转组件配置数据,执行跳转操作,进入跳转后的页面图像,根据程序页面场景对应的场景编号以及跳转组件配置数据,生成存在跳转关系的场景对对应的探索节点,并更新探索次数。
当得到跳转组件配置数据后,可以通过跳转组件来实现对当前页面图像所对应程序页面场景的跳转,如跳转组件为按钮时,可以模拟点击按钮来实现对当前页面图像的跳转操作。在其中一个实施例中,具体可以先判断当前页面图像对应的程序页面场景中是否存在未执行过跳转操作的跳转组件,优先控制未执行过跳转操作的跳转组件执行跳转。同时可以按照跳转组件的编号顺序来控制跳转组件,优先控制跳转次数少的跳转组件执行跳转操作。以控制待测程序进入跳转后的页面图像。同时在执行跳转时,还需要对本次的跳转操作进行一次记录,具体地,记录时,可以根据程序页面场景对应的场景编号以及跳转组件配置数据,生成存在跳转关系的场景对对应的探索节点,并更新探索次数。具体地,可以将探索次数,程序页面场景对应的场景编号以及跳转组件配置数据中的跳转组件编号作为一个三元数组的探索节点进行记录。如对于跳转组件为按钮时,探索节点具体可以为,(<1,场景编号,按钮编号>,<2,场景编号,按钮编号>,……)。
步骤306,判断探索次数是否大于预设次数阈值。
步骤307,当探索次数小于或等于预设次数阈值时,将跳转后的页面图像重新作为当前页面图像,返回步骤302;
步骤308,当探索次数大于预设次数阈值时,根据探索节点获取探索路径。
其中预设次数阈值具体可以根据待测程序所有场景内所具有的跳转组件数目来确定。如在一个实施例中,程序的跳转组件数不到500,阈值设置为1000;程序的跳转组件数的数量不到1500,阈值设置为3000。当探索次数小于或等于预设次数阈值时,说明对当前程序的探索次数不足,应该继续执行跳转操作,探索更多的路径。而大于次数阈值时,说明当前的跳转操作已经完全,可以根据在上述循环跳转过程中所得到的所有探索节点,得到一条完整的探索路径。而通过执行若干次的上述的自动探索动作,就可以得到一个包含有多条探索路径的探索路径集合。本实施例中,通过自动探索的方式来对待测程序中不同页面场景间的跳转关系进行识别,可以得到更加完整以及丰富的探索路径,从而保证所得到的测试用例的可靠性。
在其中一个实施例中,步骤302之前,还包括:获取待测程序对应的程序页面场景图像,为程序页面场景图像分配场景编号,为程序页面场景图像内的跳转组件分配配置数据,提取程序页面场景图像的ORB特征点。
其中,待测程序对应的程序页面场景图像是指待测程序的程序页面,所能呈现的所有场景图像,当得到这些程序页面后,可以为这些程序页面对应的场景进行编号,并将图像保存在预设场景库内,同时还可以对程序页面场景图像进行图像识别的操作,从图像中识别得到跳转组件,以及跳转组件对应的位置。并将各个跳转组件对应的位置信息记录,并为各个跳转组件分配相应的编号。同时为了更方便地进行图像比对的工作,还可以提前提取出各个程序页面场景图像的ORB特征点。从而在后续的查找与当前页面图像相似的程序页面场景图像可以保证处理的效率。本实施例中,通过预先获取待测程序对应的程序页面场景图像,为程序页面场景图像分配场景编号,为程序页面场景图像内的跳转组件分配配置数据,可以有效地保证探索路径过程中的探索效率。
在一个实施例中,如图4所示,步骤302包括:
步骤401,提取当前页面图像对应的ORB特征点。
步骤403,获取当前页面图像对应的ORB特征点,与程序页面场景图像对应的ORB特征点的汉明距离。
步骤405,根据汉明距离获取当前页面图像与程序页面场景图像的相似度。
步骤407,将当前页面图像相似度最大的程序页面场景图像,作为与当前页面图像相似的程序页面场景图像。
其中ORB是Oriented Fast and Rotated Brief(尺度不变特征转换)的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。而汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。可以通过提取当前页面图像对应的ORB特征点,而后将这些特征点与场景库内存放的程序页面场景图像对应的ORB特征点进行比对,获取他们之间的汉明距离,基于汉明距离来确定两个图像之间的相似度,而通过多次对比,就可以确定当前页面图像与场景库内所有的程序页面场景图像之间的相似度,从而将相似度最大的程序页面场景图像,作为与当前页面图像相似的程序页面场景图像。在其中一个实施例中,具体可以统计汉明距离小于30的ORB特征点数量,作为输入图像与场景库中每张图像的相似程度,最后将场景库中相似程度最大的场景作为输入图像的场景。本实施例中,通过ORB特征点以及汉明距离来计算图像之间的相似程度,可以保证图像对比查找过程中的准确率,从而保证后续控制程序页面场景进行跳转过程的准确性。
在其中一个实施例中,如图5所示,步骤209包括:
步骤502,获取测试起始场景以及测试终止场景。
其中,测试起始场景以及测试终止场景由终端102方的测试人员来进行指定,测试人员根据测试需求从预先建立的场景库中选择测试用例的起点图像和终点图像,并找到对应的起始场景编号和终止场景编号,作为测试路径生成的起点和终点。
步骤504,根据测试起始场景对应的场景编号以及测试终止场景对应的场景编号,从探索路径中搜索从测试起始场景到测试终止场景的测试路径集合。
在确定一条测试路径中起始场景对应的场景编号以及测试终止场景对应的场景编号后,由于探索路径中已经生成了包含场景编号在内的探索节点,所以可以直接从上述生成的各条探索路径中截取所需要的路径,直接作为测试路径。并获得测试路径的集合。在其中一个实施例中,从探索路径中搜索测试路径的过程具体包括了:
1)初始化各个变量,搜索方向为空,目标场景为测试起始场景,路径为空,路径集合为空,搜索序号为1。
2)在探索路径中找到搜索序号与自动探索序号相等的节点,进行3),如果搜索序号大于探索路径中最大的自动探索序号,那么结束搜索路径。
3)查看2)找到节点的场景编号,如果场景编号是测试终止场景的编号,则进行4);反之,则进行5)。
4)如果场景编号为测试起始场景的场景编号,那么搜索方向设置为“从起点到终点”,目标场景设置为测试终止场景,在清空路径后将节点添加到路径中,搜索序号加1;如果场景编号为测试终止场景的场景编号,那么搜索方向设置为“从终点到启点”,目标场景设置为测试起始场景,将节点添加到路径中,将此路径添加到路径集合中,清空此路径,搜索序号加1。
5)如果当前的搜索方向是“从起点到终点”,那么进行6);如果不是,则搜索序号加1。
6)如果场景编号是测试起始场景的编号,那么在清空路径后将节点添加到路径中,搜索序号加1;如果不是,则把节点添加到路径中,搜索序号加1。
步骤506,提交测试路径集合对应的图像序列至第三方,获取第三方根据图像序列反馈的测试用例。
在得到测试路径集合之后,则可以直接根据测试路径集合内的各条测试路径,将测试路径中各个探索节点中所保存的图像,并按照探索节点的顺序,以图像序列的形式将测试路径集合内的测试路径提交至第三方,由第三方对图像序列进行审核,并生成相应的测试用例。本实施例中,通过获取指定的测试起始场景以及测试终止场景,而后根据所指定的测试起始场景以及测试终止场景来截取探索路径中的测试路径,从而得到完整的测试路径,并通过提交测试路径集合对应的图像序列至第三方,由第三方对测试路径执行审核以后处理,可以保证所得到的测试用例的有效性。
在其中一个实施例中,步骤506之前,还包括:删除测试路径集合内的重复路径;提交测试路径集合至第三方包括:提交删除重复路径后的测试路径集合至第三方。
具体地,由于本申请是通过自动探索的方式得到所有可能出现的探索路径。所以所得到的探索路径中可能存在部分节点出现路径重合的现象,为了提高后续审核以及后处理过程的处理效率,可以先对所得到的测试路径集合进行数据清洗的操作,删除测试路径集合内的重复路径,从而有效提高后续处理过程的处理效率。
在其中一个实施例中,如图6所示,删除测试路径集合内的重复路径,并提交删除重复路径后的测试路径集合对应的图像序列至第三方的过程,包括:
步骤601,获取测试路径集合内各测试路径的节点数量。
步骤603,当测试路径集合内存在两条测试路径的节点数量一样时,分别截取节点数量相同的两条测试路径从测试起始场景到测试终止场景前一个场景的子路径,判断子路径内各探索节点中的场景编号和跳转组件配置数据是否按照相同的顺序排列。
步骤605,当子路径内各探索节点中的场景编号和跳转组件配置数据按照相同的顺序排列时,判定节点数量相同的两条测试路径为重复路径,并在测试路径集合中删除节点数量相同的两条测试路径中的一条测试路径。
步骤607,当子路径内各探索节点中的场景编号和跳转组件配置数据未按照相同的顺序排列时,判定节点数量相同的两条测试路径为非重复路径。
步骤609,当路径集合中不存在重复路径时,提交删除重复路径后的测试路径集合对应的图像序列至第三方。
具体地,在判断测试路径是否相同时,可以先通过测试路径的节点数量进行一重筛选,将节点数量相同的测试路径划分为一组,而后当测试路径集合内存在两条测试路径的节点数量一样时,分别截取节点数量相同的两条测试路径从测试起始场景到测试终止场景前一个场景的子路径,判断子路径内各探索节点中的场景编号和跳转组件配置数据是否按照相同的顺序排列。如果这两条子路径的探索节点内的场景编号和跳转组件配置数据都完全相同时,可以直接判断两条路径是完全相同的路径,需要去除其中一条,而如果存在不同时,说明两条路径并不完全相同,此时可以确定节点数量相同的这两条测试路径为非重复路径。通过不断地重复筛选,当路径集合中不存在重复路径时,提交删除重复路径后的测试路径集合对应的图像序列至第三方。本实施例中,通过子路径内各探索节点中的场景编号和跳转组件配置数据来对测试路径是否重复进行判断,从而提高删除重复测试路径的准确率。
此外,本申请还另外提供一种应用场景,该应用场景应用上述的测试用例生成方法。测试用例生成方法中的待测程序具体可以为一个即时通讯应用,该即时通讯应用的一个页面场景具体如图7中图左或图右所示。如图8所示,测试用例生成方法具体包括:自动探索,路径生成以及人工审核三个主要步骤。而完整的步骤可以参照图9,先通过自动探索来确定探索路径,同时在探索过程中对待测应用场景页面图像进行标注,而后通过指定起点场景与终点场景,来确定探索路径中的多条测试路径,并由第三方人工审核,依据测试路径来生成测试需求对应的测试用例。其中,自动探索过程的步骤示意图可以参照图10,开始时,先获取输入的待测程序当前页面图像,而后基于预设场景库,识别该当前页面图像对应的程序页面场景,并根据所识别出的程序页面场景来选择使用哪个跳转按钮,来控制程序页面场景进行跳转,而后判断探索的次数是否大于预设阈值,当大于时,直接输入已经探索得到的探索路径,而小于或等于时,则需要返回到获取输入图像的步骤,而此时的输入图像,则对应的是通过跳转按钮跳转后的图像。而测试路径生成过程的步骤示意图可以参照图11,其中需要先设置好测试路径的起点与终点,而后输入探索得到的探索路径,搜索得到所需的测试路径,而后通过去除其中的重复路径,得到用于生成测试用例的测试路径。如图12所示,在其中一个实施例中,可以即时通讯应用中的好友动态场景作为起点,以说说选择了图片和地址作为终点来获得测试用例。而对测试路径进行人工审核,来生成测试用例的过程,则具体可以参照图13,需要先读取所得到的测试路径,而后从场景库中提取测试路径对应的图像序列,并对图像序列进行审核,最后输出相应的测试用例。在其中一个实施例中,所得到的一个测试路径以及相应的图像序列具体可以参照图14。
如图15所示,本申请还提供一种更具体的测试用例生成方法。应该理解的是,虽然图2-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图16所示,提供了一种测试用例生成装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求获取模块1601、程序调用模块1603、场景获取模块1605、路径探索模块1607和用例生成模块1609,其中:
请求获取模块1601,用于获取测试用例生成请求。
程序调用模块1603,用于调用测试用例生成请求对应待测程序。
场景获取模块1605,用于获取待测程序对应的程序页面场景。
路径探索模块1607,用于识别程序页面场景中存在跳转关系的场景对,并根据场景对获取探索路径。
用例生成模块1609,用于根据探索路径获取测试用例。
在其中一个实施例中,路径探索模块1607具体用于:获取待测程序的当前页面图像;在预设场景库内,查找与当前页面图像相似的程序页面场景图像;根据程序页面场景图像,识别当前页面图像对应的程序页面场景;读取预设的程序页面场景对应的跳转组件配置数据;根据跳转组件配置数据,执行跳转操作,进入跳转后的页面图像,根据当前页面图像、程序页面场景对应的场景编号以及跳转组件配置数据,生成存在跳转关系的场景对对应的探索节点,并更新探索次数;将跳转后的页面图像重新作为当前页面图像,返回执行在预设场景库内,查找与当前页面图像相似的程序页面场景图像的步骤;当探索次数大于预设次数阈值时,根据探索节点获取探索路径。
在其中一个实施例中,还包括场景库构建模块,用于:获取待测程序对应的程序页面场景图像,为程序页面场景图像分配场景编号,为程序页面场景图像内的跳转组件分配配置数据。
在其中一个实施例中,路径探索模块1607具体用于:提取当前页面图像对应的ORB特征点;获取当前页面图像对应的ORB特征点,与程序页面场景图像对应的ORB特征点的汉明距离;根据汉明距离获取当前页面图像与程序页面场景图像的相似度;将当前页面图像相似度最大的程序页面场景图像,作为与当前页面图像相似的程序页面场景图像。
在其中一个实施例中,用例生成模块1609具体用于:获取测试起始场景以及测试终止场景;根据测试起始场景对应的场景编号以及测试终止场景对应的场景编号,从探索路径中搜索从测试起始场景到测试终止场景的测试路径集合;提交测试路径集合对应的图像序列至第三方,获取第三方根据图像序列反馈的测试用例。
在其中一个实施例中,用例生成模块1609还用于:删除测试路径集合内的重复路径;提交删除重复路径后的测试路径集合至第三方。
在其中一个实施例中,用例生成模块1609还用于:获取测试路径集合内各测试路径的节点数量;当测试路径集合内存在两条测试路径的节点数量一样时,分别截取节点数量相同的两条测试路径从测试起始场景到测试终止场景前一个场景的子路径,判断子路径内各探索节点中的场景编号和跳转组件配置数据是否按照相同的顺序排列;当子路径内各探索节点中的场景编号和跳转组件配置数据按照相同的顺序排列时,判定节点数量相同的两条测试路径为重复路径,并在测试路径集合中删除节点数量相同的两条测试路径中的一条测试路径;当子路径内各探索节点中的场景编号和跳转组件配置数据未按照相同的顺序排列时,判定节点数量相同的两条测试路径为非重复路径;当路径集合中不存在重复路径时,提交删除重复路径后的测试路径集合对应的图像序列至第三方。
关于测试用例生成装置的具体限定可以参见上文中对于测试用例生成方法的限定,在此不再赘述。上述测试用例生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储已认证提示信息相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试用例生成方法。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(RandomAccessMemory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandomAccessMemory,SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种测试用例生成方法,其特征在于,所述方法包括:
获取测试用例生成请求;
调用所述测试用例生成请求对应待测程序;
获取所述待测程序对应的程序页面场景;
识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
根据所述探索路径获取测试用例;
所述识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径包括:
获取所述待测程序的当前页面图像;
在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像;
根据所述程序页面场景图像,识别当前页面图像对应的程序页面场景;
读取预设的所述程序页面场景对应的跳转组件配置数据;
根据所述跳转组件配置数据,执行跳转操作,进入跳转后的页面图像,根据所述程序页面场景对应的场景编号以及所述跳转组件配置数据,生成存在跳转关系的场景对对应的探索节点,并更新探索次数;
将所述跳转后的页面图像重新作为当前页面图像,返回在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像的步骤;
当所述探索次数大于预设次数阈值时,根据所述探索节点获取探索路径。
2.根据权利要求1所述的方法,其特征在于,所述跳转组件包括按钮,所述根据所述跳转组件配置数据,执行跳转操作包括;根据所述跳转组件配置数据,模拟点击按钮以执行跳转操作。
3.根据权利要求2所述的方法,其特征在于,所述在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像之前,还包括:
获取所述待测程序对应的程序页面场景图像,为所述程序页面场景图像分配场景编号,为所述程序页面场景图像内的跳转组件分配配置数据。
4.根据权利要求2所述的方法,其特征在于,所述在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像包括:
提取所述当前页面图像对应的ORB特征点;
获取所述当前页面图像对应的ORB特征点,与程序页面场景图像对应的ORB特征点的汉明距离;
根据所述汉明距离获取所述当前页面图像与所述程序页面场景图像的相似度;
将所述当前页面图像相似度最大的程序页面场景图像,作为与所述当前页面图像相似的程序页面场景图像。
5.根据权利要求2所述的方法,其特征在于,所述根据所述探索路径获取测试用例包括:
获取测试起始场景以及测试终止场景;
根据所述测试起始场景对应的场景编号以及所述测试终止场景对应的场景编号,从所述探索路径中搜索从测试起始场景到测试终止场景的测试路径集合;
提交所述测试路径集合对应的图像序列至第三方,获取第三方根据所述图像序列反馈的测试用例。
6.根据权利要求5所述的方法,其特征在于,所述提交所述测试路径集合对应的图像序列至第三方,获取第三方根据所述图像序列反馈的测试用例之前,还包括:
删除所述测试路径集合内的重复路径;
所述提交所述测试路径集合至第三方包括:
提交删除重复路径后的测试路径集合至第三方。
7.根据权利要求6所述的方法,其特征在于,所述删除所述测试路径集合内的重复路径,提交删除重复路径后的测试路径集合对应的图像序列至第三方包括:
获取所述测试路径集合内各测试路径的节点数量;
当所述测试路径集合内存在两条测试路径的节点数量一样时,分别截取节点数量相同的两条测试路径从测试起始场景到测试终止场景前一个场景的子路径,判断所述子路径内各探索节点中的场景编号和跳转组件配置数据是否按照相同的顺序排列;
当所述子路径内各探索节点中的场景编号和跳转组件配置数据按照相同的顺序排列时,判定所述节点数量相同的两条测试路径为重复路径,并在所述测试路径集合中删除所述节点数量相同的两条测试路径中的一条测试路径;
当所述子路径内各探索节点中的场景编号和跳转组件配置数据未按照相同的顺序排列时,判定所述节点数量相同的两条测试路径为非重复路径;
当所述路径集合中不存在重复路径时,提交删除重复路径后的测试路径集合对应的图像序列至第三方。
8.一种测试用例生成装置,其特征在于,所述装置包括:
请求获取模块,用于获取测试用例生成请求;
程序调用模块,用于调用所述测试用例生成请求对应待测程序;
场景获取模块,用于获取所述待测程序对应的程序页面场景;
路径探索模块,用于识别所述程序页面场景中存在跳转关系的场景对,并根据所述场景对获取探索路径;
用例生成模块,用于根据所述探索路径获取测试用例;
所述路径探索模块具体用于:获取所述待测程序的当前页面图像;在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像;根据所述程序页面场景图像,识别当前页面图像对应的程序页面场景;读取预设的所述程序页面场景对应的跳转组件配置数据;根据所述跳转组件配置数据,执行跳转操作,进入跳转后的页面图像,根据所述程序页面场景对应的场景编号以及所述跳转组件配置数据,生成存在跳转关系的场景对对应的探索节点,并更新探索次数;将所述跳转后的页面图像重新作为当前页面图像,返回执行在预设场景库内,查找与所述当前页面图像相似的程序页面场景图像的步骤;当所述探索次数大于预设次数阈值时,根据所述探索节点获取探索路径。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
场景库构建模块,用于:获取待测程序对应的程序页面场景图像,为程序页面场景图像分配场景编号,为程序页面场景图像内的跳转组件分配配置数据。
10.根据权利要求8所述的装置,其特征在于,所述路径探索模块具体用于:提取当前页面图像对应的ORB特征点;获取当前页面图像对应的ORB特征点,与程序页面场景图像对应的ORB特征点的汉明距离;根据汉明距离获取当前页面图像与程序页面场景图像的相似度;将当前页面图像相似度最大的程序页面场景图像,作为与当前页面图像相似的程序页面场景图像。
11.根据权利要求8所述的装置,其特征在于:
所述用例生成模块,具体用于获取测试起始场景以及测试终止场景;根据测试起始场景对应的场景编号以及测试终止场景对应的场景编号,从探索路径中搜索从测试起始场景到测试终止场景的测试路径集合;提交测试路径集合对应的图像序列至第三方,获取第三方根据图像序列反馈的测试用例。
12.根据权利要求8所述的装置,其特征在于:
所述用例生成模块,还用于删除测试路径集合内的重复路径;提交删除重复路径后的测试路径集合至第三方。
13.根据权利要求8所述的装置,其特征在于:
所述用例生成模块,还用于获取测试路径集合内各测试路径的节点数量;当测试路径集合内存在两条测试路径的节点数量一样时,分别截取节点数量相同的两条测试路径从测试起始场景到测试终止场景前一个场景的子路径,判断子路径内各探索节点中的场景编号和跳转组件配置数据是否按照相同的顺序排列;当子路径内各探索节点中的场景编号和跳转组件配置数据按照相同的顺序排列时,判定节点数量相同的两条测试路径为重复路径,并在测试路径集合中删除节点数量相同的两条测试路径中的一条测试路径;当子路径内各探索节点中的场景编号和跳转组件配置数据未按照相同的顺序排列时,判定节点数量相同的两条测试路径为非重复路径;当路径集合中不存在重复路径时,提交删除重复路径后的测试路径集合对应的图像序列至第三方。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010971293.3A CN112100071B (zh) | 2020-09-16 | 2020-09-16 | 测试用例生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010971293.3A CN112100071B (zh) | 2020-09-16 | 2020-09-16 | 测试用例生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100071A CN112100071A (zh) | 2020-12-18 |
CN112100071B true CN112100071B (zh) | 2022-03-18 |
Family
ID=73759258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010971293.3A Active CN112100071B (zh) | 2020-09-16 | 2020-09-16 | 测试用例生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100071B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559363B (zh) * | 2020-12-23 | 2024-08-27 | 平安银行股份有限公司 | 基于全链路标记的测试用例生成方法、系统、设备和介质 |
CN112835804B (zh) * | 2021-02-24 | 2024-02-02 | 中国工商银行股份有限公司 | 测试案例处理方法、装置、电子设备及介质 |
CN113392013B (zh) * | 2021-06-22 | 2024-03-19 | 浙江网商银行股份有限公司 | 用例生成方法及装置 |
CN113641578A (zh) * | 2021-08-10 | 2021-11-12 | 广域铭岛数字科技有限公司 | 基于业务层面精准测试方法、系统、设备及介质 |
CN113641591B (zh) * | 2021-10-14 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 测试用例生成方法及装置、测试方法及装置 |
CN113820694B (zh) * | 2021-11-24 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种仿真测距的方法、相关装置、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608882A (zh) * | 2017-09-08 | 2018-01-19 | 天津津航计算技术研究所 | 一种软件测试用例自动生成方法 |
CN108021507A (zh) * | 2017-12-25 | 2018-05-11 | 首都师范大学 | 符号执行的并行路径搜索方法及装置 |
CN109344062A (zh) * | 2018-09-26 | 2019-02-15 | 深圳壹账通智能科技有限公司 | 页面跨域跳转测试的方法及终端设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373474B (zh) * | 2015-11-10 | 2018-07-06 | 中国建设银行股份有限公司 | 一种针对业务系统的测试方法和装置 |
CN106681927A (zh) * | 2017-01-09 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种测试用例生成方法及其装置 |
CN106951899A (zh) * | 2017-02-24 | 2017-07-14 | 李刚毅 | 基于图像识别的异常检测方法 |
KR101989802B1 (ko) * | 2017-02-28 | 2019-06-18 | 주식회사 스패로우 | 테스트 케이스를 이용하여 테스트를 수행하는 방법 및 장치 |
CN110442515B (zh) * | 2019-07-12 | 2023-07-25 | 创新先进技术有限公司 | 应用测试方法、装置、设备及可读存储介质 |
-
2020
- 2020-09-16 CN CN202010971293.3A patent/CN112100071B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608882A (zh) * | 2017-09-08 | 2018-01-19 | 天津津航计算技术研究所 | 一种软件测试用例自动生成方法 |
CN108021507A (zh) * | 2017-12-25 | 2018-05-11 | 首都师范大学 | 符号执行的并行路径搜索方法及装置 |
CN109344062A (zh) * | 2018-09-26 | 2019-02-15 | 深圳壹账通智能科技有限公司 | 页面跨域跳转测试的方法及终端设备 |
Non-Patent Citations (1)
Title |
---|
基于场景的测试用例自动生成方法;宋蕾;《计算机与数字工程》;20150520(第05期);第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112100071A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100071B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
CN108073519B (zh) | 测试用例生成方法和装置 | |
CN111340237B (zh) | 数据处理和模型运行方法、装置和计算机设备 | |
CN110231937B (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN104657140B (zh) | 代码生成方法及装置 | |
CN109816364A (zh) | 交易数据处理方法、装置、计算机设备和存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN117290236A (zh) | 软件测试方法、装置、计算机设备及计算机可读存储介质 | |
CN109299719A (zh) | 基于字符分割的弹幕校验方法、装置、终端及存储介质 | |
CN115185998A (zh) | 目标字段查找方法及装置、服务器、计算机可读存储介质 | |
US20170220336A1 (en) | System and method for automatic api candidate generation | |
CN112711531A (zh) | 用例构建方法、用例构建装置以及可读存储介质 | |
CN109298928B (zh) | 业务的处理方法及装置 | |
CN112149951B (zh) | 风险控制方法、装置、计算机设备和存储介质 | |
CN110688400A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115883172A (zh) | 异常监测方法、装置、计算机设备和存储介质 | |
CN112765041B (zh) | 游戏自动化测试方法、装置及电子设备 | |
CN116226681A (zh) | 一种文本相似性判定方法、装置、计算机设备和存储介质 | |
CN115712571A (zh) | 一种交互服务测试、装置、计算机设备及存储介质 | |
CN109379640B (zh) | 基于链表方式的弹幕校验方法、装置、终端及存储介质 | |
CN109635175B (zh) | 页面数据拼接方法、装置、可读存储介质和电子设备 | |
CN113730917A (zh) | 游戏脚本生成方法、装置、计算机设备和存储介质 | |
CN111552634A (zh) | 前端系统的测试方法、装置及存储介质 | |
KR102693969B1 (ko) | 클라우드 이벤트에 대한 매핑 정보를 생성하는 방법 및 매핑 서버 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |