CN113590454A - 测试方法、装置、计算机设备和存储介质 - Google Patents
测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113590454A CN113590454A CN202110149494.XA CN202110149494A CN113590454A CN 113590454 A CN113590454 A CN 113590454A CN 202110149494 A CN202110149494 A CN 202110149494A CN 113590454 A CN113590454 A CN 113590454A
- Authority
- CN
- China
- Prior art keywords
- node
- state
- test case
- nodes
- abnormal
- 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 12
- 238000010586 diagram Methods 0.000 claims abstract description 75
- 230000002159 abnormal effect Effects 0.000 claims abstract description 74
- 230000000875 corresponding Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 14
- 238000011112 process operation Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012084 conversion product Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 230000003287 optical Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; 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; 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为一个实施例中结点路径图;
图5为一个实施例中根据边属性分割测试用例的示意图;
图6为一个实施例中根据正常业务状态结点间的调用路径信息,和异常操作组件对应的调用路径信息,生成自动化测试用例并执行自动化测试用例的步骤的流程示意图;
图7为一个实施例中生成状态校验的第一自动化测试用例的流程示意图;
图8为一个实施例中正常状态节点的遍历示意图;
图9为一个实施例中异常校验的过程示意图;
图10为一个实施例中接口重入校验的过程示意图;
图11为一个实施例中测试装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。本申请涉及人工智能在测试领域的应用,基于MBT建模自动生成的测试的可执行脚本。
本申请提供的测试方法,可以应用于如图1所示的应用环境中。其中,终端102和服务器104通信,终端运行有测试应用,服务器104为待测应用的服务器,终端102的测试应用运行测试方法,生成自动化测试用例,通过调用服务器104,实现对待测应用进行测试。具体地,测试方法包括:获取根据状态机图构造的结点路径图;结点路径图包括正常业务状态结点、异常业务状态结点,结点之间的边属性;边属性包括正常业务流转操作和异常操作组件;根据结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息;根据调用路径信息,生成自动化测试用例并执行自动化测试用例。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种测试方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取根据状态机图构造的结点路径图;结点路径图包括正常业务状态结点、异常业务状态结点,结点之间的边属性;边属性包括正常业务流转操作和异常操作组件。
具体地,测试方法系统架构如图3所示,下载画流程图工具YED,解析待测应用程序的系统源代码,识别代码逻辑,通过YED生成状态机图。状态机图记载了状态间的转移关系。
根据状态机图构建结点路径图,结点路径图作为基于模型的测试的建模图。MBT中文名称为基于模型的测试,基于模型的测试属于软件测试领域的一种测试方法。MBT步骤如下:首先由被测系统(SUT,system under test)的一些(通常是功能)方面描述,构建出被测系统的模型。再根据模型或模型中的一部分部分生成测试用例。进而进行软件测试。
具体地,将状态机图转换为有向图,得到结点路径图。其中,一个实施例的结点路径图如图4所示,包括状态结点,一个顶点称为状态结点,通常表示为一个框表示我们想要检查的预期状态。在任何实现代码/测试中,可以通过断言或者数据校验改结果。
边,即连接两个状态的箭头,表示从一个状态结点到另一个状态结点的方法。这是为了达到下一个状态需要做的任何动作。它可以选择一些菜单选项,单击按钮等测试动作。其中,从一个状态结点到另一个状态结点的方法,就是一个边可以有多个边属性,即一个状态结点到另一个状态结点的方法可以有多个,如可以为正常业务流转操作。
为实现测试的全面性,人工可对结点路径图进行操作,将其中的部分状态结点设置为异常业务状态结点,并部分边属性添加通常异常组件作为异常操作组件。
其中,正常业务流转操作是正常业务处理流程,如一个购买付款流程。异常操作组件是执行异常用例的类型,为实现容错,可以将异常测试通用检查点,封装成为公共组件,即异常操作组件。
如图4所示,“v_”标识正常业务状态结点;“vE_”标识异常业务状态结点;对于有多个边属性的边,使用&符合标识该表的边属性,如边属性“e_exception”通用异常组件,
步骤204,根据结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息。
具体地,使用路径生成算法,根据结点路径图生成到各状态结点的测试路径。每个边属性表示从一个状态结点到另一个状态结点的方法,一个边属性对应一个测试路径,即从一个状态结点,调用一个方法到另一个状态结点。根据边属性,可以得到业务场景覆盖用例、通用系统异常用例、业务异常用例和主流程用例。其中,业务场景覆盖用例对应正常业务流转操作的边属性,通用系统异常用例、业务异常用例对应异常操作组件的边属性。
具体地,针对结点路径图,对有多个边属性的两个结点,根据边属性,划分边属性对应的状态结点间的路径,得到各边属性对应的调用路径信息;根据具有单一边属性的两个结点,根据边属性得到状态结点间的路径,得到调用路径信息。
在结点路径图中各状态结点的边属性,若一条边有多个边属性,表明从前一个状态结点,可调用多种方法,可得到下一个状态结果。其中,边属性使用符号“&”标识。对于有多个边属性的两个结点,根据“&”标识划分边属性对应的状态结点间的路径,得到各边属性对应的调用路径信息。如图5所示的状态A和状态B调用了四个方法,各方法之间使用“&”标识。通过根据“&”符号,将该状态A至状态A的路径划分为四个调用路径,每个调用路径分别调用不同的方法实现。
对于具有单一边属性的两个结点,较为简单,根据边属性得到状态结点间的路径,得到调用路径信息。
步骤206,根据调用路径信息,生成自动化测试用例并执行自动化测试用例。
具体地,调用路径信息中包括了状态结点间执行正常业务状态流转操作的路径信息以及状态结点间异常操作组件,因此,根据调用路径信息生成的自动化测试用例了业务场景和异常场景,即测试内容不光覆盖了业务场景,还包括了异常场景。
上述的测试方法,获取根据状态机图构造的结点路径图,根据结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息,结点路径图中包括正常业务状态结点、异常状态业务结点、边属性包括正常业务流转操作和异常操作组件,根据调用路径信息,生成自动化测试用例并执行自动化测试用例,由于结点路径图中包括了正常业务流程操作和异常操作组件,使得自动化测试用例能够涵盖了业务场景测试和异常场景测试,使得测试更加全面。
具体地,如图6所示,根据正常业务状态结点间的调用路径信息,和异常操作组件对应的调用路径信息,生成自动化测试用例并执行自动化测试用例,包括:
S602,根据调用路径信息,获取全场景用例的入参数据和期望值。
具体地,根据边属性为正常业务流转操作的调用路径信息,得到全场景用例的入参数据和期望值。入参数据的作用一方面可以作为自动化测试的入参数据来源。期望值是自动化用例的期望执行结果,根据实际执行结果可以得到应用程序的测试结果。
S604,根据结点路径图中正常业务状态结点的链路中的边属性,构建是否调用边属性对应的操作方法得到单对结点跨状态链路图,并根据单对结点跨状态链路图生成状态校验的第一自动化测试用例。
结点路径图包括状态节点以及连接两个状态节点的边。边,即连接两个状态的箭头,边可以具有多个边属性,每个边属性表示从一个状态结点到另一个状态结点的方法,即每个边属性对应一种操作方法。例如,业务流转的方法、异常用例的方法等。
具体地,对于结点路径图中的任意两个业务状态结点来说,根据结点链路图的路径方向,可以得到的链路有多条。如图4的V_状态结点2至V状态结点3,可包括三条链路,第一条链路为:V状态结点2->VE_状态结点8->VE_状态结点9->VE_状态结点10->V_状态结点3。第二条链路为:V状态结点2->VE_状态结点11->VE_状态结点12->VE_状态结点13->VE_状态结点14->V_状态结点3。第三条链路为V状态结点2->V_状态结点3。其中,两个状态结点的状态流程执行对应的边属性的操作方法。
而对于每一条正常业务状态结点的链路,通过构建是否调用边属性对应的操作方法,能够模拟调用其中一个或多个,不调用其中一个或多个边属性对应的方法所对应的业务场景,能够便利跨状态流转测试具有多个层次,使得测试更加充分。其中,构建的方法为枚举,即,针对每一条链路有N个操作方法,枚举调用其中N-1个操作方法(不调用其中一个操作方法)的情况,枚举调用其中的N-2个操作方法(不调用其中2个操作方法)的情况、……、枚举其中的不调用N-1个操作方法(调用其中1个操作方法)的情况,得到每种枚举情况对应的单对结点跨状态链路图。
具体地,如图7所示,包括以下步骤:
第一步,根据结点路径图,获取正常业务状态结点。
具体地,从结点路径图中抽取所有的正常业务状态结点,即图四中标识为V的状态结点。
第二步,对正常业务状态结点排序,得到排序后的正常业务状态结点。
对正常业务状态结点根据结点名称排序,使得生成的结点具备顺序性,以便后续生成跨状态检验的收尾结点。例如,结点路径图中的正常业务状态结点包括(结点二、结点七、结点八,结点一),根据结点名称顺序排序为(结点一、结点二、结点七、七点八)
第三步,遍历排序后的正常业务状态结点,将任一个正常业务状态结点作为开始结点,将排序在开始结点后的正常业务状态结点作为结束结点,根据结点路径图,查询从开始结点至结束结点的路径,得到结点链路图。
遍历的顺序为正常业务状态结点的排序,按序将一个正常业务状态结点作为开始结点,排序在其后的正常业务状态结点作为结束结点,再回到结点路径图中,查询开始结点至结束结点的图径,得到多个结点链路图。
假设A、B和C三个结点均是正常业务状态结点,排序后的顺序为A、B和C,如图8所示,则先将A作为开始结点,B和C可分别作为结束结点,得到A->B,A->C两条结点链路图,再将B作为开始结点,C作为结束结点,得到B->C的结束链路图,最终得到A->B,A->C,B->C等3条结点链路图。
第四步,根据结点链路图中的边存在性,构造单对结点跨状态链路图的多个路径。
其中,根据结点链路图,从开始结点至结束结点,中间可能经过了其它的多个结点,通过各结点的边属性,即依次执行调用的方法实现从开始结束至结束结点的状态跳转。
边存在性,即是否调用边所对应的方法,一个结点链路图中边的数量对应待测链路的数量。通过对一个结点链路图中所有的边是否存在进行模拟,能够模拟出是否调用对应方法的单对结点跨状态链路图。
具体地,先得出待测链路总数N,依次生成存在1个0和N-1个1、2个0和N-2个1、……、i个0和N-i个1、……、N-1个0和1个1的组合。例如,一条链路所包括的四个方法,分别为方法1、方法2、方法3和方法4。对两结点之间的边数进行数字化建模,即把边抽象成独立物体,若该边不调用则用0表示,若该边调用则用1所示,生成的单对结点跨状态链路图,可以为:
四个方法中调用三个方法对应的情况:[(1,0,1,1),(1,1,0,1),(0,1,1,1),(1,1,1,0)];
四个方法中调用两个方法对应的情况:[(1,1,0,0),(0,1,0,1),(1,0,0,1),(0,1,1,0)]及[(1,0,1,0),(0,0,1,1)];
四个方法中调用一个方法对应的情况:[(0,0,0,1),(1,0,0,0),(0,1,0,0),(0,0,1,0)]。
也就是说,通过构建是否调用边属性对应的操作方法,能够构建14个业务场景,能够便利跨状态流转测试具有多个层次,使得测试更加充分。
第五步,根据单对结点跨状态链路图的各路径中各边的操作方法,生成第一自动化测试用例。
具体地,单对结点跨状态链路图的各个路径,将边具体含义带入还原,生成业务调用关系链路,进而生成对应的自动化用例,用于跨状态链路测试。
S606,根据入参数据分别执行第一自动化测试用例,得到第一执行结果。
具体地,将相应的入参数据带入,执行第一自动化测试用例,得到跨状态链路测试的第一执行结果。
S608,根据第一执行结果和期望值,得到第一测试结果。
具体地,调用路径信息获取入参数据可作为跨状态检验的自动化用例的入参数据来源,期望值可作为跨状态检验的自动化用例执行结果预期值比较的标准值。二者进行比较,即可得到跨状态链路测试的第一测试结果。例如,若二者相同,则表明测试通过。
本实施例中,通过构建是否调用边属性对应的操作方法,能够构建多个个业务场景,能够便利跨状态流转测试具有多个层次,使得测试更加充分。
在另一个实施例中,根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例,还包括:根据所述调用路径信息,获取异常校验的期望值,生成第二自动化测试用例;构建异常环境,在构建的异常环境中执行所述第二自动化测试用例,得到第二执行结果;根据所述第二执行结果和异常校验的所述期望值,得到第二测试结果。
具体地,对系统异常进行校验。系统异常,使用环境异常构造工具,如Pumba构造环境异常,跑场景用例,环境异常类型有:1)网络延迟2)网络丢包3)限制网络延迟传输速度4)网络包重复5)网络包损坏。
具体的异常校验过程如图9所示,
首先,根据第一部分链路数据获取得到异常校验结果的预期值。
其次,使用环境异常构造工具,如Pumba构造环境异常,在异常的系统中执行场景用例。具体地,调用环境异常工具,建造异常环境,得到异常系统,在所述异常系统中执行所述第二自动化测试用例,得到第二执行结果。
最后,检验单元从待测系统中获取执行结果与预期值进行比较,一致则判断场景用例不受所设置环境异常影响。即将第二执行结果和预期值进行比较,一致则判断场景用例不受所设置环境异常影响。
在另一个实施例中,所述边属性还包括入口函数;根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例,还包括:根据所述入口函数生成第三自动化测试用例;在另一台相似环境的服务器执行所述第三自动化测试用例,得到第三执行结果;在原服务器执行所述第三自动化测试用例,得到第四执行结果;若所述第三执行结果和所述第四执行结果满足接口幂等性,则确定接口支持重入。
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。对于业务中需要考虑幂等性的地方一般都是接口的重复请求,重复请求是指同一个请求因为某些原因被多次提交。针对这个情况,如图10所示,接口重入,保证接口幂等性。实现主要通过一下几个步骤:
1)拉取主干代码,根据需中断的接口函数名获取在源码的位置,借助运行时调试工具,比如gdb,对其位置进行打断点。具体地,根据待测入口函数确定代码在源码的位置;调用调试工具,对所述位置进行打断点,得到第三自动化测试用例。
2)将请求参数在另一台相似环境的服务器重放请求,成功后,继续执行原服务器语句,观察检验结果,若满足接口幂等性,则说明该接口支持重入。也就是说,在另一台相似环境的服务器执行所述第三自动化测试用例,在原服务器执行所述第三自动化测试用例,若二者的执行结果满足接口幂等性,即第二次的请求不会对第一次请求的结果产生重复,则确定接口支持重入。
本实施例中,还对接口是否重入进行测试,提升测试全面性。
如图3所示,针对MBT建模得到的结点路径图,通过对待测系统执行链路校验,状态校验和异常校验,根据实际校验结果和期望值,可得到测试结果。汇总测试结果,发给项目相关人员。测试涵盖了链路校验,状态校验和异常校验。本申请的方法可应用于任何有状态机流转产品进行异常测试。保证测试完备性,使得全链路自动化用例在预期值存在的情况下,正确执行。提前暴露业务系统在常见网络问题情况的表现情况,释放后期未知风险。相对于现有的探索性测试的方式,能够结合预期结果对测试进行检测。
应该理解的是,虽然上述的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述的中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种测试装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:结点路径图获取模块1102、调用路径获取模块1104和测试模块1106,其中:
结点路径图获取模块1102,用于获取根据状态机图构造的结点路径图;所述结点路径图包括正常业务状态结点、异常业务状态结点,结点之间的边属性;所述边属性包括正常业务流转操作和异常操作组件。
调用路径获取模块1104,用于根据所述结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息。
测试模块1106,用于根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例。
上述测试装置,获取根据状态机图构造的结点路径图,根据结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息,结点路径图中包括正常业务状态结点、异常状态业务结点、边属性包括正常业务流转操作和异常操作组件,根据调用路径信息,生成自动化测试用例并执行自动化测试用例,由于结点路径图中包括了正常业务流程操作和异常操作组件,使得自动化测试用例能够涵盖了业务场景测试和异常场景测试,使得测试更加全面。
在另一个实施例中,测试模块,包括:
参数获取模块,用于根据所述调用路径信息,获取全场景用例的入参数据和期望值;
用例生成模块,用于根据所述结点路径图中正常业务状态结点的链路中的边属性,构建是否调用边属性对应的操作方法得到单对结点跨状态链路图,并根据所述单对结点跨状态链路图生成状态校验的第一自动化测试用例;
执行模块,用于根据所述入参数据分别执行所述第一自动化测试用例,得到第一执行结果;
测试结果获取模块,用于根据所述第一执行结果和所述期望值,得到第一测试结果。
在另一个实施例中,用例生成模块,包括:
提取模块,用于根据所述结点路径图,获取正常业务状态结点;
排序模块,用于对所述正常业务状态结点排序,得到排序后的正常业务状态结点;
遍历模块,用于遍历所述排序后的正常业务状态结点,将任一个正常业务状态结点作为开始结点,将排序在开始结点后的正常业务状态结点作为结束结点,根据所述结点路径图,查询从开始结点至结束结点的路径,得到结点链路图;
构建模块,用于根据所述结点链路图中的边存在性,构造单对结点跨状态链路图的多个路径;
第一测试用例生成模块,用于根据所述单对结点跨状态链路图的各路径中各边的操作方法,生成第一自动化测试用例。
在另一个实施例中,测试模块还包括:
第二用例生成模块,用于根据所述调用路径信息,获取异常校验的期望值,生成第二自动化测试用例;
环境构建模块,用于构建异常环境,在构建的异常环境中执行所述第二自动化测试用例,得到第二执行结果;
测试结果获取模块,用于根据所述第二执行结果和异常校验的所述期望值,得到第二测试结果。
其中,环境构建模块,用于调用环境异常工具,建造异常环境,得到异常系统;在所述异常系统中执行所述第二自动化测试用例,得到第二执行结果。
在另一个实施例中,所述边属性还包括入口函数,测试模块,还包括:
第三用例生成模块,用于根据所述入口函数生成第三自动化测试用例;
重入测试模块,用于在另一台相似环境的服务器执行所述第三自动化测试用例,得到第三执行结果;在原服务器执行所述第三自动化测试用例,得到第四执行结果;若所述第三执行结果和所述第四执行结果满足接口幂等性,则确定接口支持重入。其中,第三用例生成模块,用于根据待测入口函数确定代码在源码的位置;调用调试工具,对所述位置进行打断点,得到第三自动化测试用例。
关于测试装置的具体限定可以参见上文中对于测试方法的限定,在此不再赘述。上述测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种测试方法,包括
获取根据状态机图构造的结点路径图;所述结点路径图包括正常业务状态结点、异常业务状态结点,结点之间的边属性;所述边属性包括正常业务流转操作和异常操作组件;
根据所述结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息;
根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例。
2.根据权利要求1所述的方法,其特征在于,所述根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例,包括:
根据所述调用路径信息,获取全场景用例的入参数据和期望值;
根据所述结点路径图中正常业务状态结点的链路中的边属性,构建是否调用边属性对应的操作方法得到单对结点跨状态链路图,并根据所述单对结点跨状态链路图生成状态校验的第一自动化测试用例;
根据所述入参数据分别执行所述第一自动化测试用例,得到第一执行结果;
根据所述第一执行结果和所述期望值,得到第一测试结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述结点路径图中正常业务状态结点的链路中的边属性,构建是否调用边属性对应的操作方法得到单对结点跨状态链路图,并根据所述单对结点跨状态链路图生成状态校验的第一自动化测试用例,包括:
根据所述结点路径图,获取正常业务状态结点;
对所述正常业务状态结点排序,得到排序后的正常业务状态结点;
遍历所述排序后的正常业务状态结点,将任一个正常业务状态结点作为开始结点,将排序在所述开始结点后的正常业务状态结点作为结束结点,根据所述结点路径图,查询从所述开始结点至所述结束结点的路径,得到结点链路图;
根据所述结点链路图中的边存在性,构造单对结点跨状态链路图的多个路径;
根据所述单对结点跨状态链路图的各路径中各边的操作方法,生成第一自动化测试用例。
4.根据权利要求1所述的方法,其特征在于,所述根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例,还包括:
根据所述调用路径信息,获取异常校验的期望值,生成第二自动化测试用例;
构建异常环境,在构建的异常环境中执行所述第二自动化测试用例,得到第二执行结果;
根据所述第二执行结果和异常校验的所述期望值,得到第二测试结果。
5.根据权利要求4所述的方法,其特征在于,所述构建异常环境,在构建的异常环境中执行所述第二自动化测试用例,得到第二执行结果,包括:
调用环境异常工具,建造异常环境,得到异常系统;
在所述异常系统中执行所述第二自动化测试用例,得到第二执行结果。
6.根据权要求1所述的方法,其特征在于,所述边属性还包括入口函数;所述根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例,还包括:
根据所述入口函数生成第三自动化测试用例;
在另一台相似环境的服务器执行所述第三自动化测试用例,得到第三执行结果;
在原服务器执行所述第三自动化测试用例,得到第四执行结果;
若所述第三执行结果和所述第四执行结果满足接口幂等性,则确定接口支持重入。
7.根据权利要求6所述的方法,其特征在于,所述根据所述入口函数生成第三自动化测试用例,包括:
根据待测入口函数确定代码在源码的位置;
调用调试工具,对所述位置进行打断点,得到第三自动化测试用例。
8.一种测试装置,其特征在于,所述装置包括:
结点路径图获取模块,用于获取根据状态机图构造的结点路径图;所述结点路径图包括正常业务状态结点、异常业务状态结点,结点之间的边属性;所述边属性包括正常业务流转操作和异常操作组件;
调用路径获取模块,用于根据所述结点路径图中各状态结点间的边属性得到状态结点间的调用路径信息;
测试模块,用于根据所述调用路径信息,生成自动化测试用例并执行所述自动化测试用例。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110149494.XA CN113590454A (zh) | 2021-02-03 | 2021-02-03 | 测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110149494.XA CN113590454A (zh) | 2021-02-03 | 2021-02-03 | 测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590454A true CN113590454A (zh) | 2021-11-02 |
Family
ID=78238046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110149494.XA Pending CN113590454A (zh) | 2021-02-03 | 2021-02-03 | 测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590454A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428748A (zh) * | 2022-03-30 | 2022-05-03 | 北京数腾软件科技有限公司 | 一种用于真实业务场景的模拟测试方法及系统 |
-
2021
- 2021-02-03 CN CN202110149494.XA patent/CN113590454A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428748A (zh) * | 2022-03-30 | 2022-05-03 | 北京数腾软件科技有限公司 | 一种用于真实业务场景的模拟测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296443B2 (en) | Automatically predicting faults that caused software failures using a Markov logic network | |
Amalfitano et al. | A gui crawling-based technique for android mobile application testing | |
Lai | A survey of communication protocol testing | |
Amalfitano et al. | A general framework for comparing automatic testing techniques of Android mobile apps | |
Memon | Automatically repairing event sequence-based GUI test suites for regression testing | |
US20190340512A1 (en) | Analytics for an automated application testing platform | |
Almeida et al. | Testing tools for Android context-aware applications: a systematic mapping | |
Salihoglu et al. | Graft: A debugging tool for apache giraph | |
US10509719B2 (en) | Automatic regression identification | |
US10365995B2 (en) | Composing future application tests including test action data | |
US10310962B2 (en) | Infrastructure rule generation | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
US11119899B2 (en) | Determining potential test actions | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN111190813B (zh) | 基于自动化测试的安卓应用网络行为信息提取系统及方法 | |
Micskei et al. | Robustness testing techniques for high availability middleware solutions | |
Motan et al. | Android App Testing: A Model for Generating Automated Lifecycle Tests | |
CN114416210B (zh) | 一种决策流仿真方法、装置、介质和设备 | |
US20220206773A1 (en) | Systems and methods for building and deploying machine learning applications | |
CN111651346B (zh) | 前端组件的测试方法、装置、存储介质及计算机设备 | |
CN109800155B (zh) | 一种基于Probe的QTE联锁应用软件测试方法及装置 | |
Priya et al. | GUI Test Script Repair in Regression Testing | |
Nasiri et al. | A case study for a novel framework for cloud testing | |
US20210405980A1 (en) | Long method autofix engine | |
Sundbaum | Automated Verification of Load Test Results in a Continuous Delivery Deployment Pipeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |