CN114281668A - 异常用例生成方法、装置、电子设备以及存储介质 - Google Patents
异常用例生成方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN114281668A CN114281668A CN202111227049.7A CN202111227049A CN114281668A CN 114281668 A CN114281668 A CN 114281668A CN 202111227049 A CN202111227049 A CN 202111227049A CN 114281668 A CN114281668 A CN 114281668A
- Authority
- CN
- China
- Prior art keywords
- use case
- node
- combination
- abnormal
- directed graph
- 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
Images
Abstract
本申请公开了一种异常用例生成方法、装置、电子设备以及存储介质。该方法包括:采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;基于多个过程节点在有向图中的层级信息,得到每个过程节点组合对应的指向关系;基于指向关系构建对应的候选用例;当候选用例的执行结果满足异常断言要求时,标记候选用例为异常用例。本申请提高了生成异常用例的效率和便捷性;保证了异常用例对于逻辑异常的关注,这样更容易引导发现程序的逻辑问题。本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
Description
技术领域
本申请涉及互联网通信技术领域,尤其涉及一种异常用例生成方法、装置、电子设备以及存储介质。
背景技术
随着互联网通信技术的发展,互联网产品层出不穷,针对互联网产品的测试也成为一项重要的工作环节。相关技术中,针对互联网产品的测试包括使用测试用例中对软件进行异常测试,而所使用的测试用例常是通过工作人员借助测试模型进行参数输入而生成的。由此,相关技术中的异常用例生成方案对人工较为依赖,存在人工工作量大、异常用例生成效率低等问题。
发明内容
为了解决现有技术应用在生成异常用例时,效率低等问题,本申请提供了一种异常用例生成方法、装置、电子设备以及存储介质:
根据本申请的第一方面,提供了一种异常用例生成方法,所述方法包括:
采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
基于所述指向关系构建对应的候选用例;
当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
根据本申请的第二方面,提供了一种异常用例生成装置,所述装置包括:
组合模块:用于采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
得到模块:用于基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
候选用例构建模块:用于基于所述指向关系构建对应的候选用例;
异常用例标记模块:用于当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
根据本申请的第三方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如第一方面所述的异常用例生成方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如第一方面所述的异常用例生成方法。
根据本申请的第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如第一方面所述的异常用例生成方法。
本申请提供的一种异常用例生成方法、装置、电子设备以及存储介质,具有如下技术效果:
本申请通过采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;然后,基于多个过程节点在有向图中的层级信息,得到每个过程节点组合对应的指向关系;再者,基于指向关系构建对应的候选用例,从而标记执行结果满足异常断言要求的候选用例为异常用例。其中多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的。本申请借助为生成正常用例所构建的有向图,对其中过程节点进行组合以生成异常用例,无需额外构建画图,提高了生成异常用例的效率和便捷性。同时,指向关系的获取源于过程节点在有向图中的层级信息,保证了异常用例对于逻辑异常的关注,相较于相关技术中对于参数异常的依赖,这样更容易引导发现程序的逻辑问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种异常用例生成方法的流程示意图;
图3是本申请实施例提供的确定多个过程节点的一种流程示意图;
图4是本申请实施例提供的基于路径信息得到候选用例一种流程示意图;
图5是本申请实施例提供的用于画图建模的操作面板的示意图;
图6是本申请实施例提供的指示正常用例的有向图的示意图;
图7是本申请实施例提供的应用预设过滤规则的一种流程示意图;
图8是本申请实施例提供的一种异常用例生成装置的组成框图;
图9是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,该应用环境中可以包括客户端10和服务器端20,客户端10与服务器端20可以通过有线或无线通信方式进行直接或间接地连接。工作人员可以通过客户端10向服务器端20发送异常用例生成请求。服务器端20接收该异常用例生成请求,响应该请求借助为生成正常用例所构建的有向图,对其中过程节点进行组合以生成异常用例。需要说明的是,图1仅仅是一种示例。
客户端10可以是智能手机、电脑(如台式电脑、平板电脑、笔记本电脑)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、数字助理、智能语音交互设备(如智能音箱)、智能可穿戴设备、智能家电、车载终端等类型的实体设备,也可以是运行于实体设备中的软体,比如计算机程序。客户端所对应的操作系统可以是安卓系统(Android系统)、iOS系统(是由苹果公司开发的移动操作系统)、linux系统(一种操作系统)、Microsoft Windows系统(微软视窗操作系统)等。
服务器端20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。其中服务器可以包括有网络通信单元、处理器和存储器等等。服务器端可以为对应的客户端提供后台服务。当服务器端20包括多个服务器时,多个服务器可组成为一区块链,而服务器为区块链上的节点。
在实际应用中,所生成的异常用例可用于对相关互联网产品进行异常测试,以帮助验证、提高相关软件的健壮性。相关互联网产品可以是云技术产品、人工智能产品、智慧交通产品、辅助驾驶产品等。相关互联网产品可以是已上线产品、也可以是未上线产品。对于未上线产品而言,异常测试的结果可以比对上线的验收标准以确定其是否上线。此外,可以在全自动波测系统中,利用异常用例对相关互联网产品进行异常测试。
以下介绍本申请一种异常用例生成方法的具体实施例,图2是本申请实施例提供的一种异常用例生成方法的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
在本申请实施例中,服务器端采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合。进行节点组合的过程,可以看作从n个不同的元素中,任取m(m≤n)个元素形成一个组合的多次重复操作或者一次并发操作。用于形成一个组合的m个元素可以是从n个元素中随机抽取的。用于形成一个组合的m个元素也可以是按照预设抽取规则抽取的,比如采用预设抽取规则从由n个元素构建的序列中抽取m的元素。其中,序列可以是按照预设指标对n的元素进行降序排序得到的,预设指标可以指示过程节点在有向图中的热度,即被用于构建正常用例的节点组合的频次;抽取规则可以是优先抽取奇数序位的元素,也可以是间隔序位抽取。
多个过程节点源于为生成正常用例所构建的有向图。有向图,可以理解其中连接两节点之间的边是有指向的。不论正常用例还是异常用例,基于图论思想,用例也是基于节点和节点间的有向边得到的。节点中的起点可以指示待测试对象(比如待测试接口),起点一般是唯一点。节点中的终点可以指示期望结果,终点一般只与过程节点相连,而与起点无连接关系。节点中的过程节点可以是决策节点,它存储了决策条件或者说执行条件。执行条件用于指示若测试请求携带的参数为X时,将测试请求转发至哪个其他决策节点或者终点。节点间的有向边包括第一类有向边和第二类有向边。第一类有向边是起点和过程节点之间的,第一类有向边对应的指向关系为起点——》过程节点,一般是固定的。第一类有向边是过程节点和过程节点之间的以及过程节点和终点之间的,第二类有向边对应的指向关系是由过程节点存储的执行条件决定的。根据边值可以构建执行用例所需条件。由于“决策树”是对决策树分类器存储在计算机里的结构的描述,即一个树形结构,而树是连通且无回路的有向图。因此,也可以将这里的有向图视作决策树。上述的起点可以视作决策树中的树根,终点可以视作决策树中的树叶,过程节点可以视作决策树中的内点。
这里的有向图是为生成正常用例所构建的,基于预设策略从该有向图中确定出过程节点,即基于有向图的构建规则过滤掉其中的起点和终点以确定出过程节点,或者,基于决策树的构建规则过滤掉其中的树根和树叶以确定出作为内点的过程节点。在实际应用中,可以利用广度优先遍历算法从有向图中确定出过程节点。通过广度优先遍历,可以将一个决策树按节点类型拆分成以下类型:1)起点:特性-有且只有一个起点(一选一);2)过程节点;3)终点:特性-最终指向结果唯一,非黑即白(多选一);4)节点间相连边:用例执行的参数条件。
在一示例性的实施方式中,如图3所示,在所述采用预设组合规则对多个过程节点进行节点组合之前,所述方法还包括:
S301:获取所述有向图;其中,所述有向图包括用于构建所述多个正常用例的多个节点以及多个有向边;
S302:基于预设筛选规则从所述多个节点中确定出所述多个过程节点。
互联网产品的开发常采用模块化开发的形式,不同团队负责对应模块的开发维护。负责构建指示正常用例的有向图的可能是团队A,负责生成异常用例的可能是团队B,当然也可能是团队A。当是同一团队时,服务器端可以从具有读取权限的存储对象中获取该有向图。当不是同一团队,甚至是隶属第三方的团队时,服务器端可以通过发送有向图获取请求以获取该有向图。由此,通过有向图的获取可以建立生成异常用例的业务与上游业务的联系,降低业务的耦合性以方便维护。
结合上述有关“有向图”以及“决策树”的介绍,一个正常用例的构建需要一个起点(树根)+至少一个过程节点(内点)+一个终点(树叶)。参见图6,构建一个正常用例的节点组合可以包括:(0)+(1.1)+(3.1),其中(0)作为起点、(1.1)作为过程节点、(3.1)作为终点。
进行过程节点确定的过程,可以是基于有向图的构建规则过滤掉其中的起点和终点以确定出过程节点,即保留所有原始的过程节点;也可以是基于有向图的构建规则过滤掉其中的起点和终点以确定出候选节点,再对候选节点进行筛选以得到过程节点,即保留部分原始的过程节点。示例性的,图6中(1.1)、(1.2)、(1.3)、(2.1)、(2.2)、(2.3)、(2.4)、(2.5)都是原始的过程节点。在保留部分原始的过程节点的方式中,这些节点也是候选节点,考虑到对于逻辑异常的关注以及避免用例爆炸,可以从候选节点中筛选在有向图中的热度(即被用于构建正常用例的节点组合的频次)高的。在实际应用中,可以兼顾生成异常用例的需求以确定是否保留所有原始的过程节点、以及如何保留部分原始的过程节点,提高了生成异常用例的业务的执行灵活度。
下面将介绍如何构建指示正常用例的有向图:
1)如图5所示,可以通过工作人员在相关客户端提供的操作面板上画图建模实现。画图建模的过程包括节点编辑(开始/结束)->边条件编辑->协议字段自定义。在保存图后,支持该操作面板的服务系统将成图数据进行格式化,生成满足条件的数据格式,通过广度优先遍历算法生成正常用例,并在页面右侧展示生成的正常用例。其中“场景”表示用例最终产生的结果(期望结果);“用例x”经触发可跳转到用例执行日志;“描述”表示用例的路径描述;“结果”表示用例最终产生的实际结果:PASS-通过、FAIL-失败(浮层展示失败原因)、NOT RUN-未执行。页面左侧即为指示正常用例的有向图。
当然,若该服务系统执行本申请实施例提供的异常用例生成方案,可以基于上述有向图生成异常用例,并在页面右侧展示生成的异常用例,在页面左侧展示指示异常用例的有向图。
2)可以借助模型来实现。同时可以基于模型的策略实现自动化测试。
MBT测试(Model-based Testing,基于模型的测试)需要实现一个模型,然后制定行为和行为之间的关系以及行为和系统的关系(有限状态机)。测试系统根据被测系统的状态、之前设置的限制条件(上述关系)和策略来生成很多用例(每执行一次生成的用例会不同)。通过指定的数据格式->生成图->然后对格式的数据进行处理,生成对应的测试数据。该图即是指示正常用例的有向图。测试结果受一系列操作的影响,可以产生不确定性,更有可能发现一些想不到的很深路径下的BUG。
在一示例性的实施方式中,可以在所述采用预设组合规则对多个过程节点进行节点组合之前,获取所述预设组合规则;其中,所述预设组合规则指示以全组合的方式进行组合。相应的,以全组合的方式对所述多个过程节点进行节点组合,得到多个过程节点组合。
以全组合的方式,可以实现针对多个过程节点的充分组合,避免遗漏。参见图6,最终生成的过程节点组合为:
单节点组合:[1.1]、[1.2]、[1.3]、[2.1]...;
双节点组合:[1.1,1.2]、[1.1,1.3]、[1.1,2.1]…;
……
M(8)节点组合:[1.1,1.2,1.3,2.1,2.2,2.3,2.4,2.5]。
示例性的,若多个过程节点为节点a-c,那么所得到的过程节点组合可以包括由节点a构成的组合1、由节点b构成的组合2、由节点c构成的组合3、由节点a和节点b构成的组合4、由节点a和节点c构成的组合5、由节点b和节点c构成的组合6以及由节点a-c构成的组合7。所得到的过程节点组合的数量为
S202:基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
在本申请实施例中,服务器端基于多个过程节点在有向图中的层级信息,得到每个过程节点组合对应的指向关系。过程节点在有向图中的层级信息,反映了过程节点利用其存储的决策条件(执行条件)参与决策的先后顺序。一个过程节点参与决策的顺序越靠前,说明它越靠近起点。一个过程节点参与决策的顺序越靠后,说明它越靠近终点。示例性的,若将起点作为一层节点、终点作为L层节点,过程节点可分为二层节点、三层节点...L-1层节点。此外,结合这里提到的层级信息,前述进行节点组合的过程,可以从每层节点任意抽取一个以得到过程节点组合,该过程节点组合由二层节点、三层节点…N-1层节点构成。
过程节点在有向图中的层级信息,可以是利用广度优先遍历算法对有向图进行遍历得到的。可以是与前述步骤S201中记载的利用广度优先遍历算法从有向图中确定出过程节点同时进行的。广度优先遍历是从根节点R0开始,沿着树型结构的宽度遍历树的节点,依次探索访问R0的各个未被访问过的邻接点W1,W2,……。然后顺序探索W1的各个未被访问过的邻接点,W2的各个未被访问过的邻接点等,由近至远依次访问,如果找到第一个出现的叶节点,遍历停止。利用广度优先遍历算法,可以系统检查有向图中的所有节点,保证了确定节点类型拆分的准确性、确定过程节点对应的层次信息的准确性。
对于过程节点组合对应的指向关系,1)若是单节点组合,那么说明过程节点组合对应的指向关系为起点——》过程节点组合——》终点;2)若不是单节点组合,那么说明过程节点组合对应的指向关系不仅包括“起点——》过程节点组合——》终点”,还包括过程节点组合内部的指向关系。过程节点组合内部的指向关系包括哪个过程节点与起点相连接、哪个过程节点与终点相连接、过程节点之间怎么连接。
相较于对过程节点组合中的过程节点进行顺序排列来得到指向关系,参考过程节点在所述有向图中的层级信息所确定的指向关系,减少了指向关系的数量,从而避免了后续出现用例爆炸的问题。
在参考过程节点在所述有向图中的层级信息来确定指向关系时,可能出现过程节点组合中至少两个过程节点指示同一层级的情形,那么可以:
1)针对指示同一层级的至少两个过程节点随机选取一种连接方式即可,从而根据描述该连接方式的信息得到指向关系;
2)针对指示同一层级的至少两个过程节点按照预设方向确定一种连接方式即可,从而根据描述该连接方式的信息得到指向关系。预设方向可以从左至右,也可以是从右至左,也可以是从上至下,也可以是从下至上。
在实际应用中,针对指示同一层级的至少两个过程节点,常树形结构的有向图按照从左至右的方向确定一种连接方式。因为策略决策树模型的流向是自上而下的,加之预设方向,那么同一过程节点组合只会产生一种指向关系。该指向关系可以是直接利用广度优先遍历算法对有向图进行遍历得到的。
S203:基于所述指向关系构建对应的候选用例;
在本申请实施例中,服务器端基于指向关系构建对应的候选用例。由指向关系可以明确过程节点组合与起点、终点的具体连接关系。可以基于参考起点、参考终点和指向关系得到候选用例。参考起点可以沿用有向图中的起点,参考终点也可以沿用有向图中的终点。当有向图中的终点有至少两个时,一般选用树形结构的有向图中最左侧的终点。考虑到互联网产品中可能存在业务方向不同但实现逻辑类似甚至相同的功能模块(比如功能模块A用于电商业务场景的基于号码的支付验证,功能模块B用于车联网业务场景的基于号码的登录验证),参考起点和参考终点则可以选用相似功能模块所对应的待测试对象和期望结果。
在一示例性的实施方式中,当沿用有向图中的起点和终点时,可以在有向图中确定指示正常用例的参考起点和参考终点,从而基于参考起点、参考终点和过程节点组合得到用例节点组合。相应的,可以在所述基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系之后,基于所述指向关系得到用例节点组合对应的路径信息,从而基于所述路径信息得到所述候选用例。
在已知过程节点组合对应的指向关系的基础上,融入参考起点和参考终点后得到用例节点组合对应的路径信息,从而得到候选用例。将过程节点组合作为一个整体,将确定过程节点组合对应的指向关系的过程作为一个独立的步骤,
对于用例节点组合中常有固定的起点、终点的情形,可以提高路径信息以及用例的生成效率。在实际应用中,也可以在已知用例节点组合的前提下,直接利用广度优先遍历算法对有向图进行遍历得到对应的路径信息,从而得到候选用例。
进一步的,参见图4,对于基于路径信息得到候选用例的过程,可以通过下述步骤实现:
S401:解析所述路径信息确定对应的待测试对象、执行条件描述信息以及期望结果;
S402:基于所述执行条件描述信息生成对应的执行条件;
S403:基于所述执行条件与所述待测试对象的说明文件生成针对所述待测试对象的测试请求;
S404:基于所述测试请求、所述执行条件以及所述期望结果得到所述候选用例。
该过程可以视作解析路径得到可执行用例的过程。以描述节点1——》节点2——》节点3——》节点5的路径信息为例,解析得到由节点1所指示的待测试对象(比如待测试接口),由节点5所指示的期望结果,以及由“节点1——》节点2”、“节点2——》节点3”、“节点3——》节点5”所指示的执行条件描述信息。解析过程可以是对路径(节点1——》节点2——》节点3——》节点5)进行遍历,生成路径边“节点1——》节点2”、“节点2——》节点3”、“节点3——》节点5”的组合。在实际应用中,节点1作为起点,节点1的节点内容可以包括协议信息,比如定义待测试对象的名称的信息。基于该信息可以确定待测试对象。节点5作为终点,节点5所指示的期望结果可以作为后续步骤S204所涉及的断言内容。路径边“节点1——》节点2”、“节点2——》节点3”、“节点3——》节点5”分别指示关键字描述(关键字信息),基于这些关键字描述可以得到执行条件描述信息。
基于执行条件描述信息生成对应的执行条件的过程,可以是从预设存储对象中获取与执行条件描述信息相匹配的内容的过程。比如,从作为预测存储对象的数据库中获取与执行条件描述信息存在映射关系的内容。在实际应用中,结合上述有关路径边和关键字描述的记载,可以基于关键字描述确定关键字,再利用关键字与数据库内的内容进行映射以生成对应的执行条件。该执行条件可以是可执行方法,例如“生成A地区的ip”、“生成A地区的证件信息”。进一步的,关键字描述或者关键字可能不能提供较为直接意图表示,这样将影响生成执行条件的难度。因此,可以进行转义处理,即将自然语言转义成用例执行所需的条件参数,从而保证生成执行条件的准确性。比如,“关键字描述或者关键字”指示当前交易时间在3天内,经转义处理得到“生成日期为20210811”(前提:当前系统时间为20210814)。
基于执行条件与待测试对象的说明文件生成针对待测试对象的测试请求,该过程可以理解为输入参数赋值。具体可以是,对执行条件提供的参数项与说明文件提供的候选参数项-候选取值进行匹配。以待测试对象是待测试接口为例,测试请求的接口内容取自起点内相关的接口信息,而该接口信息常只包含接口名称。可以从作为预测存储对象的数据库中,通过接口信息查询出对应的接口说明文件(idl文件),然后将执行条件所对应的参数与idl文件内的参数信息匹配,并赋值,以得到测试请求。
由此基于测试请求、执行条件以及期望结果得到候选用例。基于有向图提供的节点以及有向边,可以对相关的节点信息、有向边信息进行沿用或者处理以使用,这样可以提高生成可执行的候选用例的效率。
在一示例性的实施方式中,在所述基于所述路径信息得到所述候选用例之前,所述方法还包括:当所述路径信息满足预设过滤规则的要求时,排除所述路径信息作为用于用例生成的源数据;其中,所述预设过滤规则所指示的过滤内容包括以下至少之一:指示所述正常用例的路径信息,与所述有向图中的有向边无关的路径信息。
在用例生成之前,过滤掉将用于生成正常用例和/或全路径无边用例的路径信息。生成正常用例与本申请实施例旨在生成异常用例相悖,生成全路径无边用例与本申请实施例关注逻辑异常不符。对相关路径信息的过滤,可以及时排查不利于异常用例生成的路径信息,从而保证后续所生成的异常用例的有效性,实现对系统异常的有效应对。
在实际应用中,可以先移除重复路径,再移除无效路径。其中重复路径可以包括与正常用例的路径相同的路径,以及上述用于预设过滤规则进行排查的路径集合中相同的路径。
对于指示正常用例的决策树(有向图),同一用例节点组合只会产生一条路径,而同一用例节点组合因其他排序所指示的路径是无效路径即无参数路径(可以对应上述“与有向图中的有向边无关的路径信息”以及“全路径无边用例”),这些是需要被过滤掉的。因为决策树(有向图)的边条件是由上至下输入的,如果出现其他排序,则无法获取到对应的边条件参数,这类的排序所指示路径即可归为无效路径。由此实现了对无效路径的过滤,对全路径无边数据的过滤,对有边数据的保留。有边数据,可以通过标准格式内容内的'edges'来判断,在'edges'内有边的即有效数据。全路径无边数据,即对应路径内的所有边在'edges'内无匹配项。可以理解,结合前述步骤S201中的画图建模生成相关格式变量,对其进行转换得到标准格式。标准格式内容是基于格式变量得到的有指示'edges'和'nodes'的。
S204:当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
在本申请实施例中,服务器端标记执行结果满足异常断言要求的候选用例为异常用例。满足异常断点要求说明与候选用例的期望结果不匹配,如果候选用例的执行结果与它的期望结果匹配,那么说明候选用例的执行没有出现异常情况。而如果候选用例的执行结果与它的期望结果不匹配,那么说明候选用例的执行出现了异常情况,这样的候选用例则是异常用例。
在一示例性的实施方式中,在所述当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例之前,所述方法还包括下述步骤:首先,触发执行所述测试请求以获取对应的测试结果;其中,所述测试结果是基于所述执行条件所确定的;然后,若所述测试结果与所述期望结果不符,判定所述候选用例的执行结果满足异常断言要求。
结合前述步骤S401-S404中的相关记载,解析路径信息得到可执行的候选用例,无需额外构造异常条件,可以直接覆用现有的条件进行测试。可以基于路径边“节点1——》节点2”、“节点2——》节点3”、“节点3——》节点5”分别指示的子执行条件依次处理测试请求。触发测试请求的发送并获取测试结果(比如接收返回的测试结果),对比测试结果与终点指示的期望结果,当测试结果与期望结果不符时,则判定候选用例通过验证(断言)。因为针对异常用例的验证,需要其测试结果与期望结果不符。测试结果与期望结果不符可以是相关数值的不一致。此外,若测试结果与所述期望结果相符,判定候选用例的执行结果不满足异常断言要求,则不标记其为异常用例。通过验证可以确定所标记的异常用例是执行有出现异常情况的候选用例,保证了生成异常用例的有效性。
此外,对于指示异常路径的用例,也可以直接判定其满足异常断言要求。异常路径,是相对正常用例的路径而言的。
参见图7,结合前述步骤S203中有关“预设过滤规则”的应用,在实际应用中,也可以先基于每个用例节点组合对应的路径信息,得到每个用例节点组合对应的用例;然后,基于每个用例节点组合对应的用例得到初始用例集合;再者,当初始用例的执行结果满足异常断言要求时,标记初始用例为候选用例;最后,利用预设过滤规则处理候选用例以得到目标异常用例。
本申请实施例提供了一种异常用例生成方案,通过对图6中的有向图,进行广度优先遍历,可以自动生成可执行的场景异常用例,并且自动选择异常断言,无需二次介入调整,参数自动生成。生成异常用例的具体过程:通过配对分成所有可能的路径组合,基于路径组合剔除重复用例、正常用例、全路径无边用例,基于剩下的路径组合得到异常用例。因为所有剩下的路径组合中的边组合都不匹配有向图中的路径组合,其结果往往也是不符合预期的。
相比基于有向图的多个节点进行全排列来生成路径组合,本申请实施例提供的异常用例生成方案能够有效解决用例爆炸的问题,同时也能保证异常用例具有一定的覆盖面。以9个节点为例,采用全排列的方式可以生成362880种路径组合。而实际应用中,采用本申请实施例提供的异常用例生成方案则可能生成24种路径组合。
由以上本申请实施例提供的技术方案可见,本申请实施例通过采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;然后,基于多个过程节点在有向图中的层级信息,得到每个过程节点组合对应的指向关系;再者,基于指向关系构建对应的候选用例,从而标记执行结果满足异常断言要求的候选用例为异常用例。其中多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的。本申请借助为生成正常用例所构建的有向图,对其中过程节点进行组合以生成异常用例,无需额外构建画图,提高了生成异常用例的效率和便捷性。同时,指向关系的获取源于过程节点在有向图中的层级信息,保证了异常用例对于逻辑异常的关注,相较于相关技术中对于参数异常的依赖,这样更容易引导发现程序的逻辑问题。
本申请实施例还提供了一种异常用例生成装置,如图8所示,该异常用例生成装置800包括:
组合模块801:用于采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
得到模块802:用于基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
候选用例构建模块803:用于基于所述指向关系构建对应的候选用例;
异常用例标记模块804:用于当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
需要说明的,所述装置实施例中的装置与方法实施例基于同样的发明构思。
本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的异常用例生成方法。
进一步地,图9示出了一种用于实现本申请实施例所提供的异常用例生成方法的电子设备的硬件结构示意图,所述电子设备可以参与构成或包含本申请实施例所提供的异常用例生成装置。如图9所示,电子设备100可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备100还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备100(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的异常用例生成方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种异常用例生成方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至电子设备100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备100的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实施例中,传输装置1006可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备100(或移动设备)的用户界面进行交互。
本申请的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种异常用例生成方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的异常用例生成方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种异常用例生成方法,其特征在于,所述方法包括:
采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
基于所述指向关系构建对应的候选用例;
当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
2.根据权利要求1所述的方法,其特征在于,在所述采用预设组合规则对多个过程节点进行节点组合之前,所述方法还包括:
获取所述有向图;其中,所述有向图包括用于构建所述多个正常用例的多个节点以及多个有向边;
基于预设筛选规则从所述多个节点中确定出所述多个过程节点。
3.根据权利要求1所述的方法,其特征在于:
在所述采用预设组合规则对多个过程节点进行节点组合之前,所述方法还包括:
获取所述预设组合规则;其中,所述预设组合规则指示以全组合的方式进行组合;
所述采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合,包括:
以全组合的方式对所述多个过程节点进行节点组合,得到多个过程节点组合。
4.根据权利要求1所述的方法,其特征在于,在所述基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系之前,所述方法还包括:
利用广度优先遍历算法对所述有向图进行遍历,得到所述多个过程节点在所述有向图中的层级信息。
5.根据权利要求1所述的方法,其特征在于:
在所述基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系之后,所述方法还包括:
基于所述指向关系得到用例节点组合对应的路径信息;其中,所述用例节点组合是基于所述过程节点组合、参考起点以及参考终点得到的,所述参考起点和所述参考终点是基于所述有向图确定的;
所述基于所述指向关系构建对应的候选用例,包括:
基于所述路径信息得到所述候选用例。
6.根据权利要求5所述的方法,其特征在于,所述基于所述路径信息得到所述候选用例,包括:
解析所述路径信息确定对应的待测试对象、执行条件描述信息以及期望结果;
基于所述执行条件描述信息生成对应的执行条件;
基于所述执行条件与所述待测试对象的说明文件生成针对所述待测试对象的测试请求;
基于所述测试请求、所述执行条件以及所述期望结果得到所述候选用例。
7.根据权利要求6所述的方法,其特征在于,在所述当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例之前,所述方法还包括:
触发执行所述测试请求以获取对应的测试结果;其中,所述测试结果是基于所述执行条件所确定的;
若所述测试结果与所述期望结果不符,判定所述候选用例的执行结果满足异常断言要求。
8.根据权利要求5所述的方法,其特征在于,在所述基于所述路径信息得到所述候选用例之前,所述方法还包括:
当所述路径信息满足预设过滤规则的要求时,排除所述路径信息作为用于用例生成的源数据;其中,所述预设过滤规则所指示的过滤内容包括以下至少之一:指示所述正常用例的路径信息,与所述有向图中的有向边无关的路径信息。
9.一种异常用例生成装置,其特征在于,所述装置包括:
组合模块:用于采用预设组合规则对多个过程节点进行节点组合,得到多个过程节点组合;其中,所述多个过程节点是基于预设策略从指示多个正常用例的有向图中确定出的;
得到模块:用于基于所述多个过程节点在所述有向图中的层级信息,得到每个所述过程节点组合对应的指向关系;
候选用例构建模块:用于基于所述指向关系构建对应的候选用例;
异常用例标记模块:用于当所述候选用例的执行结果满足异常断言要求时,标记所述候选用例为异常用例。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-8任一项所述的异常用例生成方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8任一项所述的异常用例生成方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8任一项所述的异常用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111227049.7A CN114281668A (zh) | 2021-10-21 | 2021-10-21 | 异常用例生成方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111227049.7A CN114281668A (zh) | 2021-10-21 | 2021-10-21 | 异常用例生成方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281668A true CN114281668A (zh) | 2022-04-05 |
Family
ID=80869024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111227049.7A Pending CN114281668A (zh) | 2021-10-21 | 2021-10-21 | 异常用例生成方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281668A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349188A (zh) * | 2023-12-05 | 2024-01-05 | 摩斯智联科技有限公司 | 一种基于大模型的测试用例生成方法和装置 |
-
2021
- 2021-10-21 CN CN202111227049.7A patent/CN114281668A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349188A (zh) * | 2023-12-05 | 2024-01-05 | 摩斯智联科技有限公司 | 一种基于大模型的测试用例生成方法和装置 |
CN117349188B (zh) * | 2023-12-05 | 2024-03-15 | 摩斯智联科技有限公司 | 一种基于大模型的测试用例生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079104B (zh) | 一种权限控制方法、装置、设备及存储介质 | |
CN110875920B (zh) | 一种网络威胁分析方法、装置、电子设备及存储介质 | |
CN109492380B (zh) | 一种设备认证方法、装置及区块链节点 | |
US20120096142A1 (en) | System and method for identification of business process application service groups | |
CN103106069A (zh) | 识别捆绑软件产品组件的方法和系统 | |
CN110830234B (zh) | 一种用户流量分配方法及装置 | |
CN110881050A (zh) | 安全威胁检测方法及相关产品 | |
CN109800258A (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN110532168A (zh) | 全链路接口压测方法、装置、计算机设备及存储介质 | |
CN111949531B (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN109858828B (zh) | 一种配电网定值自动整定方法、装置及配网系统 | |
CN109902251A (zh) | 基于决策树的方案选择方法、装置、终端及可读存储介质 | |
CN109815112A (zh) | 基于功能测试的数据调试方法、装置及终端设备 | |
CN114281668A (zh) | 异常用例生成方法、装置、电子设备以及存储介质 | |
CN110599278B (zh) | 聚合设备标识符的方法、装置和计算机存储介质 | |
US10310962B2 (en) | Infrastructure rule generation | |
CN110569987A (zh) | 自动化运维方法、运维设备、存储介质及装置 | |
CN113704765A (zh) | 基于人工智能的操作系统识别方法、装置及电子设备 | |
CN110837563A (zh) | 案件的裁判方法、装置和系统 | |
Yu et al. | Attack graph auto-generation for blockchains based on bigraphical reaction systems | |
CN112540820A (zh) | 一种用户界面的更新方法、装置及电子设备 | |
CN112257450A (zh) | 数据处理方法、装置、可读存储介质及设备 | |
CN109688159A (zh) | 网络隔离违规识别方法、服务器及计算机可读存储介质 | |
CN112799956B (zh) | 资产识别能力测试方法、装置及系统装置 | |
CN114547118A (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 |