CN107665170A - 一种流程测试方法及装置 - Google Patents
一种流程测试方法及装置 Download PDFInfo
- Publication number
- CN107665170A CN107665170A CN201610621005.5A CN201610621005A CN107665170A CN 107665170 A CN107665170 A CN 107665170A CN 201610621005 A CN201610621005 A CN 201610621005A CN 107665170 A CN107665170 A CN 107665170A
- Authority
- CN
- China
- Prior art keywords
- flow
- directed edge
- nodes
- flow nodes
- flow chart
- 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.)
- Granted
Links
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
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~图11e为本发明实施例中提出的流程节点设置示意图;
图12为本发明实施例提出的流程测试装置结构组成示意图。
具体实施方式
针对通常情况下,进行针对软件数据包进行流程测试时,如果仍旧采用人工的方式实现,则工作量比较大、容易遗漏,影响流程测试的覆盖率和效率的问题,本发明实施例提出的一种技术方案,针对待进行流程测试的软件数据包,按照流程属性创建软件数据包对应的流程图,并按照创建的流程图对软件数据包进行流程测试,从而实现在获得软件数据包的流程属性之后,自动建立软件数据包对应的流程,并按照创建的流程自动进行测试,从而解决采用人工的方式实现,则工作量比较大、容易遗漏,影响流程测试的覆盖率和效率的问题。
在本发明实施例提出的流程测试方法技术方案中,该测试方法可以基于浏览器(Web)实现,该种实现方式不需要进行插件安装,节省存储空间。也可以基于业务应用客户端实现。该种实现方式需要安装该客户端,运行速度比较快。
下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
本发明实施例提出一种流程测试方法,如图1所示,其具体处理流程如下述:
步骤11,针对待进行流程测试软件数据包,确定该软件数据包的流程属性。
其中,软件数据包的流程属性可以包含流程节点之间的执行顺序、流程节点之间的有向边连接等。
在本发明实施例提出的技术方案中,有向边表示流程节点与其连接的下一个流程节点之间的连接关系。
步骤12,创建该软件数据包对应的流程图。
在本发明实施例提出的技术方案中,在按照流程属性创建该软件数据包对应的流程图时,约束只能有一个开始流程节点,和至少一个结束流程节点。
具体实施中,按照流程属性创建该软件数据包对应的流程的具体实施方式如下述:
步骤一:针对待测的软件数据包,可以根据该软件数据包对应的实际业务创建流程图。
按照流程属性创建流程,添加各类流程节点。在创建流程图时,可以将图的存储格式设置为XML,界面为通过JavaScript实现,服务端采用Web轻量级框架Spring/SpringMVC/MyBatis实现。
基于Web方式实现时,如果业务流程发生变化,可以通过展示的用户界面直接对流程图进行直观的维护,测试逻辑包含在流程图中,维护流程图也同时修改了测试过程,相对于纯脚本的流程测试方式可以较好地降低维护工作量。
其次,在创建流程时,可以基于Web方式向测试人员提供编辑界面,测试人员在该编辑界面中可以对流程节点实现下述编辑:
a)按住流程节点可以拖动。
b)鼠标在流程节点上悬停,出现流程节点中心位置以及描述内容。
c)鼠标点选流程节点后,按键盘上下左右键可微调流程节点的位置。
d)双击流程节点可以弹出该流程节点的属性界面。
e)鼠标点选流程节点后,点Del键可删除当前流程节点。
f)右键按住某流程节点拖动到另外流程节点松开,实现流程节点之间的连线功能。
g)双击判断流程节点后的连线,弹出判断结果编辑界面。
h)鼠标点选连线后,点Del键可删除当前连线。
i)按住Ctrl键同时滚动鼠标滚轮,可放大缩小当前界面。
举一例进行详细阐述,假设当前待进行测试的软件数据包实现的流程为页面登录功能,如图2所示,测试人员根据流程属性,在界面中做出流程图。
在本发明实施例提出的技术方案中,对于基于超文本传输协议(Hypertexttransfer protocol,HTTP)交互的流程也可通过本发明的代理程序录制客户端与服务端的交互过程报文,导入流程编辑界面,对录制的流程进行进一步强化,如合并、拷贝流程、拷贝流程节点等。
在本发明实施例提出的技术方案中,具体实施时,可以采用面向对象的编程思想,前端采用Javascript语言对流程图进行渲染,后端采用Java语言解析并存储,在模型类中分为流程节点(Node)和线(Line),相应操作类为FlowHelper,画图类为DrawHelper,监听操作事件为FlowListener类。
步骤二:编辑每个流程节点。
在上述步骤二中,首先针对每一流程节点,确定流程节点的节点属性。节点属性是指流程节点在由流程节点构成的流程图中所包含的变量数据。节点属性可以包含流程变量、当前步骤前置变量以及当前步骤后置变量。
其中流程变量中包含软件数据包对应的流程分支中的全局变量数据,当前步骤是遍历过程中执行的当前流程节点,当前步骤前置变量中包含当前步骤中使用的局部变量数据,当前步骤后置变量中包含执行当前步骤中的后一步骤的数据,当前步骤是执行当前流程节点的步骤。
在上述步骤二中,其次,针对流程节点设置符合流程测试过程中的设定协议的请求消息。
再次,将流程节点、流程变量、当前步骤前置变量、当前步骤后置变量和请求消息对应存储。
下面以一具体实例进行详细阐述编辑每个流程节点的节点属性具体实施方式。
1)获取初始化脚本、清理脚本。
其中,初始化脚本是用于设置步骤初始化状态的脚本,清理脚本是步骤执行后清理环境的脚本。可以由测试人员导入,也可以是在预先存储在脚本数据库中获取。
2)设置流程变量、当前步骤前置变量和当前步骤后置变量。
在设置上述各变量的同时也设置了获取变量的类型、获取动态值的方法,支持从数据库、文件、HTTP响应、数据字典、数据驱动文件、其它变量等数据来源获取动态值。
3)设置HTTP请求的路径(URL)、头(Header)、内容(Body)信息,在这些信息中可以用占位符(如${dictionary})引用流程变量、当前步骤前置变量以及数据驱动文件及数据字典中的数据,在执行流程测试时这些占位符将被变量的实际值所替换,解决步骤间的数据依赖和数据共享。设置断言信息,断言中可以使用占位符引用流程变量、当前步骤前置变量、当前步骤后置变量以及数据驱动文件及数据字典中的数据。
4)将流程节点对应的Java对象序列化成XML信息存储至数据库中,在使用时再反序列化成Java对象,方便程序使用。
5)采用Velocity脚本引擎用于初始化脚本、清理脚本、URL、Header、Body、流程变量、当前步骤前置变量、当前步骤后置变量、断言中的表达式处理以及自定义Java类调用,支持变量逻辑运算,算术运算,判断赋值以及调用Java代码等功能。
其中,Velocity是一种Java模版引擎技术,允许使用简单而强大的模板语言来引用定义在Java代码中的对象。
步骤三:对每个流程节点进行调试。
对流程节点的节点属性编辑完毕后,可以对流程节点进行调试,即遍历出从流程开始节点到被调试的流程节点间的所有流程分支。具体地,可以由测试人员选择进行调试,顺序执行流程分支中的每一个流程节点,并根据调试日志判断流程分支是否可以正常执行、流程节点中的脚本是否正确、是否符合预期的业务逻辑。
通过上述操作,对流程节点的节点属性设置完成。
步骤四:针对完成节点属性设置的流程节点,创建流程图。
首先,按照流程属性,确定软件数据包对应的流程节点。
流程节点包含一个开始流程节点、和至少一个结束流程节点。
其中开始流程节点是没有其它流程分支流入的节点,结束流程节点是没有其它流程分支流出的节点。
其次,从开始流程节点起始,结束流程节点为止,遍历确定出的各流程节点,形成软件数据包对应的包含符合设定规则的至少一条流程分支的流程图。
具体实施中,从开始流程节点的有向边开始,按照递归方法,对各流程节点的有向边进行遍历,直到得到软件数据包对应的包含符合设定规则的至少一条流程分支的流程图。
其中,有向边表示流程节点与其连接的下一个流程节点之间的连接关系。
优选地,从开始流程节点的有向边开始,对当前遍历到的流程节点的有向边进行遍历,将当前遍历到的有向边作为当前操作有向边,判断当前操作有向边连接的下一流程节点是否为结束流程节点,若是,则开始流程节点至当前流程节点之间的路径作为一条流程分支,其中径包含开始流程节点至结束流程节点之间遍历到的所有流程节点及其有向边,将确定出的流程分支加入到用于存储路程分支的流程分支结果列表中,将当前操作有向边的遍历次数减1,判断当前遍历到的流程节点是否还有未遍历到的有向边,如果有,则返回以当前遍历到的流程节点的有向边作为当前操作有向边的步骤,如果没有,则回溯到当前遍历到的流程节点的上一级流程节点,判断上一级流程节点是否还有未遍历到的有向边,如果有,则将上一级流程节点作为当前遍历到的流程节点,返回所述对当前遍历到的流程节点的有向边进行遍历的步骤。
在判断出当前操作有向边连接的下一流程节点不是结束流程节点时,将遍历到的各流程节点之间的路径作为一条待确定的流程分支缓存,并获取当前操作有向边连接的下一流程节点的有向边中访问次数最少的有向边,将访问次数最少的有向边加入到待确定的流程分支中;并将访问次数最少的有向边的访问次数加一,以及将访问次数最少的有向边的连接的流程节点作为当前操作的流程节点,继续进行遍历处理。
步骤13,按照创建的流程图对软件数据包进行流程测试。
可选地,在上述步骤13之前,在创建流程图之后,还可以通过检查当前流程是否符合设定规则,比如开始流程节点只能有一个,且开始流程节点不能存在流入的有向边,又如结束流程节点不能存在流出的有向边,其他中间的流程节点必须有至少一条有向边等等,若符合设定规则,则将当前流程分解成各流程分支,将包含被调试节点的分支截取从起始流程节点至被调试节点的流程分支部分作为供选择调试的流程分支,例如针对图2所示的流程图,调试界面可以参见图3所示。
调试创建软件数据包对应的流程图时,仍然采用递归调用方式遍历每个流程节点,以及流程节点和流程节点之间的路径,对每个流程分支进行调试,在本步骤中,调试的方法与确定流程分支的遍历方法相同,不再赘述。
具体实施中,以开始流程节点起始,对流程图中的每个流程节点和有向边进行遍历。
下面以一具体实例进行详细阐述,在本发明实施例提出的流程测试方法中,按照流程属性创建软件数据包对应的流程,首先初始化一个流程分支清单(List),该流程分支清单包含用来保存流程图中的各流程分支,其次再初始化一个第一哈希表(HashMap_Line)用来存储路径访问次数,同时将流程中各路径初始化写入第一Hash表中的键值(key),其访问次数为值(value),默认赋值0,然后再初始化第二哈希表(HashMap_Node),用来存储各流程节点被访问的次数,其key为流程图中的流程节点,value为流程节点的访问次数,初始化一个路径集合用于存储由多条边组成的一条流程分支,当路径集合中出现一条完整流程分支时,需要将此流程分支添加到流程分支清单中。从开始流程节点起始,向和该开始流程节点相邻的流程节点往相邻节点搜索,如图4所示,其具体处理流程如下述:
步骤41,获得起始流程节点,指针指向起始流程节点。
步骤42,从HashMap_Line中找出该起始流程节点的后续路径中访问次数最小的有向边,若出现多条最小值相同的有向边,则选择第一条有向边。
步骤43,判断访问次数最小的有向边的访问次数是否超出第一设定值,如果超出第一设定值,则执行步骤58。如果未超出第一设定值,则执行步骤44。
步骤44,该访问次数最少的有向边的访问次数+1。
步骤45,下一流程节点的访问次数+1。
步骤46,将该访问次数最少的有向边缓存在路径集合中。
步骤47,继续执行到下一流程节点。
具体实施中,指针指向该起始节点的下一流程节点。
步骤48,判断该下一流程节点是否为结束流程节点,如果是则执行步骤49。否则返回执行步骤42。
步骤49,将路径集合加入流程分支List中。
步骤50,该结束流程节点的访问次数–1。
步骤51,移除路径集合中最后一条有向边。
步骤52,回退到上一流程节点。
具体实施中,指针指向上一流程节点。
步骤53,判断该上一流程节点后继有向边中是否存在访问次数为0的有向边,如果是则执行步骤44,如果否则执行步骤54。
步骤54,判断是否为起始流程节点,如果是则结束处理,如果否则执行步骤55。
步骤55,该流程节点访问次数–1。
步骤56,判断该流程节点访问次数是否为0,如果不是则执步骤51,如果是则执行步骤57。
步骤57,清除缓存中该流程节点所有后继有向边的访问次数,执行步骤51。
步骤58,输出错误并结束处理。
可以较好地解决流程错误导致的死循环的情况。
在调试完成后,还可以将调试结果存储,具体实施中,可以将调试结果存储在调试日志中,后续测试人员可以通过调用调试日志查看该次调试所产生的结果,同时也可以查看本次调试所经的分支路径,例如,图2所示的流程图,调试结果的查看可参见如图5所示。
具体地,以图2所示的流程图为例,进一步详细阐述本发明实施例提出的流程测试方法,图2所示的流程中,以系统登录并出现欢迎页的流程,其中,根据待测的软件数据包的流程属性。进行各节点设置,设置信息如图6~图11e所示,流程建立完成后,该流程执行时,先将该流程分解为三个流程分支:
流程分支一:依次为开始流程节点、系统登录节点、是否登录成功节点、不成功节点、结束流程节点。
流程分支二:依次为开始流程节点、系统登录节点、是否登录成功节点、成功节点、欢迎页节点、结束流程节点。
流程分支三:依次为开始流程节点、系统登录节点、是否登录成功节点、未设置条件节点、忽略的节点以及结束流程节点。
然后逐次执行这3个流程分支:
流程分支一:当执行系统登录节点时,获取登录用户名和密码并拼装成http请求的body,然后发送请求,对其返回响应码进行判断,并将判断结果放入流程变量loginResult中,之后执行断言,若断言不通过,则记录BUG,再其后的判断节点对loginResult的值进行判断,如果为false则记录日志并结束,如果为true则直接退出。
流程分支二:当执行系统登录节点时,获取登录用户名和密码并拼装成http请求的body,然后发送请求,对其返回响应码进行判断,并将判断结果放入流程变量loginResult中,之后执行断言,若断言不通过,则记录BUG,再其后的判断节点对loginResult的值进行判断,如果为true则显示欢迎页,如果为false则直接退出。
流程分支三:当执行系统登录节点时,获取登录用户名和密码并拼装成http请求的body,然后发送请求,对其返回响应码进行判断,并将判断结果放入流程变量loginResult中,之后执行断言,若断言不通过,则记录BUG,再其后的判断节点对loginResult的值进行判断,
在上述流程分支三中,仅为了演示当某路径不执行时,显示为设定颜色,提醒测试人员检查用例的覆盖面。
相应地,本发明实施例还提出一种流程测试装置,如图12所示,包括:
确定模块121,用于确定待进行流程测试的软件数据包的流程属性。
处理模块122,用于按照所述流程属性创建所述软件数据包对应的流程图。
执行模块123,用于按照创建的流程图对所述软件数据包进行流程测试。
具体地,上述处理模块122,具体用不按照流程属性,确定所述软件数据包对应的流程节点,所述流程节点包含一个开始流程节点、和至少一个结束流程节点,其中所述开始流程节点是没有其它流程分支流入的节点,所述结束流程节点是没有其它流程分支流出的节点;从开始流程节点起始,结束流程节点为止,遍历确定出的各流程节点,形成所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图。
具体地,上述处理模块122,具体用于从开始流程节点的有向边开始,按照递归方法,对各流程节点的有向边进行遍历,直到得到所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图;其中,所述有向边表示流程节点与其连接的下一个流程节点之间的连接关系。
具体地,上述处理模块122,具体用于从开始流程节点的有向边开始,对当前遍历到的流程节点的有向边进行遍历,将当前遍历到的有向边作为当前操作有向边,判断当前操作有向边连接的下一流程节点是否为结束流程节点,若是,则所述开始流程节点至所述当前流程节点之间的路径作为一条流程分支,其中所述路径包含开始流程节点至结束流程节点之间遍历到的所有流程节点及其有向边;将确定出的流程分支加入到用于存储路程分支的流程分支结果列表中;将当前操作有向边的遍历次数减1;判断当前遍历到的流程节点是否还有未遍历到的有向边,如果有,则返回以当前遍历到的流程节点的有向边作为当前操作有向边的步骤;如果没有,则回溯到当前遍历到的流程节点的上一级流程节点,判断上一级流程节点是否还有未遍历到的有向边,如果有,则将上一级流程节点作为当前遍历到的流程节点,返回所述对当前遍历到的流程节点的有向边进行遍历的步骤。
可选地,上述处理模块122,还用于在判断出当前操作有向边连接的下一流程节点不是结束流程节点时,将遍历到的各流程节点之间的路径作为一条待确定的流程分支缓存,并获取当前操作有向边连接的下一流程节点的有向边中访问次数最少的有向边;将所述访问次数最少的有向边加入到待确定的流程分支中;并将所述访问次数最少的有向边的访问次数加一;以及将所述访问次数最少的有向边的连接的流程节点作为当前操作的流程节点,继续进行遍历处理。
在本发明实施例上述提出的装置中,各模块的结构组成可以分开进行设置,也可以设置在同一个设备中,其中各模块的实现原理请参见上述方法实施例中的详细阐述,不再赘述。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种流程测试方法,其特征在于,包括:
确定待进行流程测试的软件数据包的流程属性;
按照所述流程属性创建所述软件数据包对应的流程图;
按照创建的流程图对所述软件数据包进行流程测试。
2.如权利要求1所述的方法,其特征在于,按照所述流程属性创建所述软件数据包对应的流程图,包括:
按照流程属性,确定所述软件数据包对应的流程节点,所述流程节点包含一个开始流程节点、和至少一个结束流程节点,其中所述开始流程节点是没有其它流程分支流入的节点,所述结束流程节点是没有其它流程分支流出的节点;
从开始流程节点起始,结束流程节点为止,遍历确定出的各流程节点,形成所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图。
3.如权利要求2所述的方法,其特征在于,从开始流程节点起始,结束流程节点为止,遍历确定出的各流程节点,形成所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图,包括:
从开始流程节点的有向边开始,按照递归方法,对各流程节点的有向边进行遍历,直到得到所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图;
其中,所述有向边表示流程节点与其连接的下一个流程节点之间的连接关系。
4.如权利要求3所述的方法,其特征在于,从开始流程节点的有向边开始,按照递归方法,对各流程节点的有向边进行遍历,直到得到所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图,包括:
从开始流程节点的有向边开始,对当前遍历到的流程节点的有向边进行遍历,将当前遍历到的有向边作为当前操作有向边,判断当前操作有向边连接的下一流程节点是否为结束流程节点,若是,则所述开始流程节点至所述当前流程节点之间的路径作为一条流程分支,其中所述路径包含开始流程节点至结束流程节点之间遍历到的所有流程节点及其有向边;
将确定出的流程分支加入到用于存储路程分支的流程分支结果列表中;
将当前操作有向边的遍历次数减1;
判断当前遍历到的流程节点是否还有未遍历到的有向边,如果有,则返回以当前遍历到的流程节点的有向边作为当前操作有向边的步骤;
如果没有,则回溯到当前遍历到的流程节点的上一级流程节点,判断上一级流程节点是否还有未遍历到的有向边,如果有,则将上一级流程节点作为当前遍历到的流程节点,返回所述对当前遍历到的流程节点的有向边进行遍历的步骤。
5.如权利要求4所述的方法,其特征在于,还包括:
在判断出当前操作有向边连接的下一流程节点不是结束流程节点时,将遍历到的各流程节点之间的路径作为一条待确定的流程分支缓存,并获取当前操作有向边连接的下一流程节点的有向边中访问次数最少的有向边;
将所述访问次数最少的有向边加入到待确定的流程分支中;并
将所述访问次数最少的有向边的访问次数加一;以及
将所述访问次数最少的有向边的连接的流程节点作为当前操作的流程节点,继续进行遍历处理。
6.一种流程测试装置,其特征在于,包括:
确定模块,用于确定待进行流程测试的软件数据包的流程属性;
处理模块,用于按照所述流程属性创建所述软件数据包对应的流程图;
执行模块,用于按照创建的流程图对所述软件数据包进行流程测试。
7.如权利要求6所述的装置,其特征在于,所述处理模块,具体用不按照流程属性,确定所述软件数据包对应的流程节点,所述流程节点包含一个开始流程节点、和至少一个结束流程节点,其中所述开始流程节点是没有其它流程分支流入的节点,所述结束流程节点是没有其它流程分支流出的节点;从开始流程节点起始,结束流程节点为止,遍历确定出的各流程节点,形成所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图。
8.如权利要求7所述的装置,其特征在于,所述处理模块,具体用于从开始流程节点的有向边开始,按照递归方法,对各流程节点的有向边进行遍历,直到得到所述软件数据包对应的包含符合设定规则的至少一条流程分支的流程图;其中,所述有向边表示流程节点与其连接的下一个流程节点之间的连接关系。
9.如权利要求8所述的装置,其特征在于,所述处理模块,具体用于从开始流程节点的有向边开始,对当前遍历到的流程节点的有向边进行遍历,将当前遍历到的有向边作为当前操作有向边,判断当前操作有向边连接的下一流程节点是否为结束流程节点,若是,则所述开始流程节点至所述当前流程节点之间的路径作为一条流程分支,其中所述路径包含开始流程节点至结束流程节点之间遍历到的所有流程节点及其有向边;将确定出的流程分支加入到用于存储路程分支的流程分支结果列表中;将当前操作有向边的遍历次数减1;判断当前遍历到的流程节点是否还有未遍历到的有向边,如果有,则返回以当前遍历到的流程节点的有向边作为当前操作有向边的步骤;如果没有,则回溯到当前遍历到的流程节点的上一级流程节点,判断上一级流程节点是否还有未遍历到的有向边,如果有,则将上一级流程节点作为当前遍历到的流程节点,返回所述对当前遍历到的流程节点的有向边进行遍历的步骤。
10.如权利要求9所述的装置,其特征在于,所述处理模块,还用于在判断出当前操作有向边连接的下一流程节点不是结束流程节点时,将遍历到的各流程节点之间的路径作为一条待确定的流程分支缓存,并获取当前操作有向边连接的下一流程节点的有向边中访问次数最少的有向边;将所述访问次数最少的有向边加入到待确定的流程分支中;并将所述访问次数最少的有向边的访问次数加一;以及将所述访问次数最少的有向边的连接的流程节点作为当前操作的流程节点,继续进行遍历处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610621005.5A CN107665170B (zh) | 2016-07-29 | 2016-07-29 | 一种流程测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610621005.5A CN107665170B (zh) | 2016-07-29 | 2016-07-29 | 一种流程测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107665170A true CN107665170A (zh) | 2018-02-06 |
CN107665170B CN107665170B (zh) | 2020-12-15 |
Family
ID=61122093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610621005.5A Active CN107665170B (zh) | 2016-07-29 | 2016-07-29 | 一种流程测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665170B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002980A (zh) * | 2018-07-10 | 2018-12-14 | 广州极天信息技术股份有限公司 | 一种场景化的知识检验方法及装置 |
CN109684212A (zh) * | 2018-12-19 | 2019-04-26 | 浙江诺诺网络科技有限公司 | 一种可视化逻辑测试方法、装置、设备及可读存储介质 |
CN111414170A (zh) * | 2020-03-05 | 2020-07-14 | 莱诺斯科技(北京)股份有限公司 | 一种可视化编排测试过程的装置及方法 |
CN111464383A (zh) * | 2020-03-30 | 2020-07-28 | 中国建设银行股份有限公司 | 基于生产环境的系统容量测试方法及装置 |
CN111460779A (zh) * | 2020-03-31 | 2020-07-28 | 杭州趣链科技有限公司 | 一种基于Activiti的流程表单数据渲染和存取方法 |
CN114880219A (zh) * | 2022-04-29 | 2022-08-09 | 北京达佳互联信息技术有限公司 | 测试节点配置方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150879A1 (en) * | 2005-12-27 | 2007-06-28 | International Business Machines Corporation | Error Detection on the Stack |
CN102331966A (zh) * | 2011-01-10 | 2012-01-25 | 中国矿业大学 | 面向路径的软件测试数据进化生成系统 |
CN102915242A (zh) * | 2012-09-26 | 2013-02-06 | 北京广利核系统工程有限公司 | 一种利用图形化操作实现代码编程的方法 |
CN103235759A (zh) * | 2013-05-15 | 2013-08-07 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法和装置 |
CN104484162A (zh) * | 2014-10-31 | 2015-04-01 | 国云科技股份有限公司 | 一种软件测试用例设计编写方法 |
-
2016
- 2016-07-29 CN CN201610621005.5A patent/CN107665170B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150879A1 (en) * | 2005-12-27 | 2007-06-28 | International Business Machines Corporation | Error Detection on the Stack |
CN102331966A (zh) * | 2011-01-10 | 2012-01-25 | 中国矿业大学 | 面向路径的软件测试数据进化生成系统 |
CN102915242A (zh) * | 2012-09-26 | 2013-02-06 | 北京广利核系统工程有限公司 | 一种利用图形化操作实现代码编程的方法 |
CN103235759A (zh) * | 2013-05-15 | 2013-08-07 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法和装置 |
CN104484162A (zh) * | 2014-10-31 | 2015-04-01 | 国云科技股份有限公司 | 一种软件测试用例设计编写方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002980A (zh) * | 2018-07-10 | 2018-12-14 | 广州极天信息技术股份有限公司 | 一种场景化的知识检验方法及装置 |
CN109002980B (zh) * | 2018-07-10 | 2021-09-03 | 广州极天信息技术股份有限公司 | 一种场景化的知识检验方法及装置 |
CN109684212A (zh) * | 2018-12-19 | 2019-04-26 | 浙江诺诺网络科技有限公司 | 一种可视化逻辑测试方法、装置、设备及可读存储介质 |
CN111414170A (zh) * | 2020-03-05 | 2020-07-14 | 莱诺斯科技(北京)股份有限公司 | 一种可视化编排测试过程的装置及方法 |
CN111464383A (zh) * | 2020-03-30 | 2020-07-28 | 中国建设银行股份有限公司 | 基于生产环境的系统容量测试方法及装置 |
CN111460779A (zh) * | 2020-03-31 | 2020-07-28 | 杭州趣链科技有限公司 | 一种基于Activiti的流程表单数据渲染和存取方法 |
CN111460779B (zh) * | 2020-03-31 | 2024-03-15 | 杭州趣链科技有限公司 | 一种基于Activiti的流程表单数据渲染和存取方法 |
CN114880219A (zh) * | 2022-04-29 | 2022-08-09 | 北京达佳互联信息技术有限公司 | 测试节点配置方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107665170B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665170A (zh) | 一种流程测试方法及装置 | |
US11651033B2 (en) | Insights into performance of a bot system | |
US10042844B2 (en) | Expert conversation builder | |
CN110659091B (zh) | 会话代理对话流用户界面 | |
CN109871326A (zh) | 一种脚本录制的方法和装置 | |
CN108509339A (zh) | 基于浏览器和思维导图的测试用例生成方法、装置及设备 | |
CN106657192B (zh) | 一种用于呈现服务调用信息的方法与设备 | |
CN106897204A (zh) | 业务流程的自动监测方法和系统 | |
CN107451062B (zh) | 一种用户界面遍历测试方法、装置、服务器、存储介质 | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
US11681511B2 (en) | Systems and methods for building and deploying machine learning applications | |
CN113672674A (zh) | 一种自动编排业务流的方法、电子装置和存储介质 | |
WO2024046027A1 (zh) | 服务链路的生成方法及装置、电子设备、存储介质 | |
van Eck | Alignment-based process model repair and its application to the Evolutionary Tree Miner | |
CN110399284A (zh) | 一种测试用例编写与执行方法及装置 | |
CN111767739A (zh) | 一种基于pptl3的微信群在线监控方法及系统 | |
CN110413518A (zh) | 控件对象库的生成方法及生成装置和计算机可读存储介质 | |
Scherr et al. | Establishing Continuous App Improvement by Considering Heterogenous Data Sources. | |
Salmerón et al. | Integrating model checking and simulation for protocol optimization | |
US8510149B1 (en) | Method of constructing causality network graphs and visual inference presentations for business rule applications | |
Li et al. | Hybrid model with multi-level code representation for multi-label code smell detection (077) | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
Deyab et al. | Orchestration framework for automated Ajax-based web application testing | |
Puentes | PEGASUS: Powerful, Expressive, Graphical Analyzer for the Single-Use Server | |
CN114968687B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200507 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 102200, No. 18, No., Changsheng Road, Changping District science and Technology Park, Beijing, China. 1-5 Applicant before: AUTONAVI SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |