一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试用例生成方法、装置、存储介质和电子设备与流程

2021-11-26 21:43:00 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种测试用例生成方法、装置、存储介质和电子设备。


背景技术:

2.测试用例是指对一项特定的软件产品进行测试任务的描述,可以体现测试方案、方法、技术和策略,并且测试用例是结构化的文本描述,其包括一个完整测试任务所需要的所有必要信息。采用测试用例可以对软件产品进行测试,核实软件产品是否满足预期需求。
3.测试用例的质量好坏影响对软件产品进行测试的性能,采用质量较差的测试用例进行测试会产生漏侧,甚至程序崩溃现象,而对测试用例中存在的问题进行排查极难实现并且成本极高,因此,目前测试人员在编写需求描述文档后,通常人工排查需求描述文档中是否存在语言描述错误或问题,再根据排查问题后的需求描述文档生成测试用例。
4.但是采用人工的方法进行排查费时费力,并且当需求描述文档的内容较多或存在的语言描述问题较多时,通常无法检查出存在的所有问题,而且检查的效率较低。当根据存在问题的需求描述文档生成测试用例时,生成的测试用例质量一般较差,甚至无法正确生成测试用例。


技术实现要素:

5.为解决相关技术中存在的技术问题,本技术实施例提供一种测试用例生成方法、装置、存储介质和电子设备,可以提高生成的测试用例的质量。
6.为达到上述目的,本技术实施例的技术方案是这样实现的:
7.第一方面,本技术实施例提供了一种测试用例生成方法,所述方法包括:
8.获取预设的需求描述文档;所述需求描述文档中至少包括待测试业务的各个业务步骤以及所述各个业务步骤之间的逻辑关系;
9.根据所述需求描述文档构建相应的有向信息图;其中,所述有向信息图中的每个图节点表征一个业务步骤,每两个图节点之间的方向表征相应的两个业务步骤之间的逻辑顺序;
10.基于所述有向信息图中每两个图节点之间的方向遍历各个图节点,分别对所述各个图节点在所述需求描述文档中关联的自然语言信息进行合法性检查,若检查结果为检查通过,则根据所述需求描述文档生成测试用例。
11.第二方面,本技术实施例还提供了一种测试用例生成装置,所述装置包括:
12.文档获取单元,用于获取预设的需求描述文档;所述需求描述文档中至少包括待测试业务的各个业务步骤以及所述各个业务步骤之间的逻辑关系;
13.有向图构建单元,用于根据所述需求描述文档构建相应的有向信息图;其中,所述有向信息图中的每个图节点表征一个业务步骤,每两个图节点之间的方向表征相应的两个业务步骤之间的逻辑顺序;
14.合法性检查单元,用于基于所述有向信息图中每两个图节点之间的方向遍历各个图节点,分别对所述各个图节点在所述需求描述文档中关联的自然语言信息进行合法性检查;
15.测试用例生成单元,用于若检查结果为检查通过,则根据所述需求描述文档生成测试用例。
16.在一种可选的实施例中,所述合法性检查单元,还用于:
17.若检查结果为检查未通过,则基于未通过检查的图节点关联的自然语言信息,输出错误提示信息;
18.响应于基于所述错误提示信息修改后的需求描述文档生成测试用例的请求,对修改后的需求描述文档中的自然语言信息进行合法性检查。
19.在一种可选的实施例中,所述业务步骤包括基础步骤和扩展步骤;所述有向图构建单元,具体用于:
20.将所述基础步骤和所述扩展步骤均作为图节点,并根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,得到有向关系图;
21.根据所述需求描述文档,在所述有向关系图中为各个图节点添加关联的自然语言信息,得到所述需求描述文档对应的有向信息图。
22.在一种可选的实施例中,所述自然语言信息包括节点描述信息和业务规则信息;所述有向图构建单元,还用于:
23.根据各个业务步骤的描述信息,为对应的图节点添加关联的节点描述信息;
24.根据所述需求描述文档中的业务规则为所述有向关系图中的图节点添加关联的业务规则信息。
25.在一种可选的实施例中,所述合法性检查单元,具体用于:
26.采用深度优先搜索方法或广度优先搜索方法,基于所述有向信息图中每两个图节点之间的方向遍历各个图节点;
27.分别对所述各个图节点关联的自然语言信息的描述方式进行合法性检查;若存在未通过检查的图节点,则确定所述检测结果为检查未通过,若不存在未通过检查的图节点,则确定所述检测结果为检查通过。
28.在一种可选的实施例中,所述合法性检查单元,还用于:
29.针对所述各个图节点,分别执行如下操作:
30.将所述各个图节点中的一个图节点关联的自然语言信息与预设的非法描述信息规则进行匹配;所述非法描述信息规则包括以下至少一种:半角标点符号、每行自然语言信息行首的空格符、每行自然语言信息行末的空格符、单行自然语言信息行末的换行符;
31.若匹配成功,则确定所述一个图节点未通过检查。
32.在一种可选的实施例中,所述自然语言信息包括节点描述信息;所述合法性检查单元,还用于:将所述一个图节点关联的节点描述信息与所述非法描述信息规则进行匹配;或者,
33.所述自然语言信息包括业务规则信息;所述合法性检查单元,还用于:基于所述一个图节点的业务规则信息建立所述一个图节点对应的引用树;所述引用树中的每个叶子节点对应所述一个图节点的业务规则信息中的一个业务规则;遍历所述一个图节点对应的引
用树中的各个叶子节点,分别将所述各个叶子节点对应的业务规则与所述非法描述信息规则进行匹配。
34.在一种可选的实施例中,所述自然语言信息包括业务规则信息;所述合法性检查单元,还用于:
35.分别基于各个图节点关联的业务规则信息建立各个图节点对应的引用树;每个引用树中的各个叶子节点分别对应于相应图节点的业务规则信息中的一个业务规则;所述引用树包括多个叶子节点;所述业务规则信息包括业务规则描述信息和业务规则类型;
36.遍历各个图节点对应的引用树中的各个叶子节点,针对各个叶子节点,分别执行如下操作:
37.将所述各个叶子节点中的一个叶子节点的业务规则描述信息与业务规则类型进行匹配;所述业务规则描述信息和所述业务规则类型包含在所述一个叶子节点对应的业务规则中;
38.若匹配失败,则确定所述一个叶子节点对应的图节点未通过检查。
39.在一种可选的实施例中,所述测试用例生成单元,具体用于:
40.提取所述需求描述文档的语料信息,并根据所述语料信息确定所述需求描述文档对应的语料特征;
41.根据所述语料特征和所述需求描述文档,生成测试用例。
42.第三方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的测试用例生成方法。
43.第四方面,本技术实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面的测试用例生成方法。
44.本技术实施例提供的测试用例生成方法、装置、存储介质和电子设备,在根据需求描述文档生成测试用例之前,先根据获取的需求描述文档中的各个业务步骤和各个业务步骤之间的逻辑关系构建相应的有向信息图,遍历有向信息图中的各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查。在通过合法性检查之后,再根据需求描述文档生成测试用例。与相关技术相比,可以提高对需求描述文档中关联的自然语言信息进行合法性检查的效率,以及保证需求描述文档的正确性,从而可以根据正确的需求描述文档生成测试用例,提高生成的测试用例的质量。
附图说明
45.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术实施例提供的一种测试用例生成方法的应用场景图;
47.图2为本技术实施例提供的一种测试用例生成方法的流程示意图;
48.图3为本技术实施例提供的一种测试用例生成方法的结构示意图;
49.图4为本技术实施例提供的另一种测试用例生成方法的流程示意图;
50.图5为本技术实施例提供的一种需求管理系统的结构示意图;
51.图6为本技术实施例提供的一种需求管理系统的页面示意图;
52.图7为本技术实施例提供的另一种需求管理系统的页面示意图;
53.图8为本技术实施例提供的另一种需求管理系统的页面示意图;
54.图9为本技术实施例提供的另一种需求管理系统的页面示意图;
55.图10为本技术实施例提供的一种需求管理系统的时序示意图;
56.图11为本技术实施例提供的一种需求描述文档的页面示意图;
57.图12为本技术实施例提供的一种测试用例的页面示意图;
58.图13为本技术实施例提供的另一种测试用例生成方法的流程示意图;
59.图14为本技术实施例提供的一种需求描述文档的示意图;
60.图15为本技术实施例提供的另一种需求描述文档的示意图;
61.图16为本技术实施例提供的一种有向关系图的示意图;
62.图17为本技术实施例提供的一种有向信息图的示意图;
63.图18为本技术实施例提供的一种测试用例生成装置的结构框图;
64.图19为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
65.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
66.需要说明的是,本技术的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
67.以下对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
68.(1)统一建模语言(unified modeling language,uml)建模:一种建模语言,指用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等。
69.(2)基于模型的测试(model

based testing,mbt):属于软件测试领域的一种测试方法,并且按照这种测试方法,可以完全或部分的利用模型自动产生测试用例。
70.(3)有向信息图:属于图论概念,是由顶点集和连接有序顶点对的有向边集组成的图,即从一条边的其中一个顶点指向另一个顶点。
71.(4)有向信息图遍历:也属于图论概念,指从有向信息图中的某一个顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问一次且仅访问一次。常用的有向信息图遍历方法有深度优先搜索(depth first search,dfs)方法和广度优先搜索(breadth first search,bfs)方法。
72.下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例
性”所说明的任何实施例不必解释为优于或好于其它实施例。
73.文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
74.本技术实施例涉及人工智能(artificial intelligence,ai)和机器学习技术,基于人工智能中的计算机视觉(computer vision,cv)技术、语音处理技术(speech technology)和机器学习(machine learning,ml)而设计。
75.人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、语音处理技术、以及机器学习/深度学习等几大方向。
76.随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、图像检索、视频监控、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
77.机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。本技术实施例利用基于机器学习或深度学习的模型,根据需求描述文档自动产生测试用例。
78.为更好地理解本技术实施例提供的技术方案,下面对本技术实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
79.本技术实施例提供的测试用例生成方法,可以应用于图1所示的应用场景中。参见图1所示,该应用场景中包括多个终端设备11和服务器12。终端设备11与服务器12之间可以通过有线连接方式或无线连接方式进行连接并传输数据。例如,终端设备11与服务器12可以通过数据线连接或者通过有线网络连接;终端设备11与服务器12也可以通过射频模块、wifi模块或者无线网络连接。
80.其中,终端设备11可以是计算机、笔记本、掌上电脑(personal digital assistant,pda)、平板电脑等。服务器12可以是一台服务器或由若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台,也可以是个人计算机、大中型计算机或计算机集群等。根据实现需要,本技术实施例中的应用场景中可以具有任意数目的终端设备和服务器。本技术对此不做特殊限定。本技术实施例提供的测试用例生成方法可以由服务器12执行,也可以由终端设备11和服务器12协作执行。
81.例如,某个应用程序开发机构设置有一台服务器12,用于生成测试用例。在该开发机构内部的各个实验室均设置有终端设备11。用户10可以通过自己实验室的终端设备11将编写的需求描述文档传输至服务器12,服务器12在接收到需求描述文档后,可以根据该需求描述文档构建相应的有向信息图,并对有向信息图中的各个图节点在需求描述文档中关联的自然语言信息进行合法性检查,当确定需求描述文档中关联的自然语言信息合法后,可以根据该需求描述文档生成测试用例。
82.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
83.图2示出了本技术实施例提供的一种测试用例生成方法的流程图,该方法可以由图1中的服务器12执行,也可以由终端设备11或其它电子设备执行。示例性地,下文以用于生成测试用例的计算机作为执行主体,说明本技术实施例的测试用例生成方法的具体实现过程。如图2所示,该测试用例生成方法包括如下步骤:
84.步骤s201,获取预设的需求描述文档。
85.该需求描述文档中至少包括待测试业务的各个业务步骤以及各个业务步骤之间的逻辑关系。
86.步骤s202,根据需求描述文档构建相应的有向信息图。
87.其中,有向信息图中的每个图节点表征一个业务步骤,每两个图节点之间的方向表征相应的两个业务步骤之间的逻辑顺序。业务步骤可以包括有基础步骤和扩展步骤,可以将基础步骤和扩展步骤均作为图节点,并根据每两个业务步骤之间的逻辑关系先确定出对应的两个图节点之间的方向,得到有向关系图,再根据需求描述文档,在有向关系图中为各个图节点添加关联的自然语言信息。由于自然语言信息中包括有节点描述信息和业务规则信息,因此可以先根据需求描述文档中的各个业务步骤的描述信息,为有向关系图中对应的图节点添加关联的节点描述信息,然后根据需求描述文档中各个业务步骤的业务规则为有向关系图中对应的图节点添加关联的业务规则信息,进而可以得到需求描述文档对应的有向信息图。
88.步骤s203,基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查。
89.可以采用深度优先搜索(depth first search,dfs)方法或广度优先搜索(breadth first search,bfs)方法,基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点关联的自然语言信息的描述方式进行合法性检查。如果存在未通过检查的图节点,可以确定检测结果为检查未通过,如果不存在未通过检查的图节点,可以确定检测结果为检查通过。
90.在一种实施例中,针对有向信息图中的各个图节点,可以分别执行如下操作:将各个图节点中的一个图节点关联的自然语言信息与预设的非法描述信息规则进行匹配,如果匹配成功,则可以确定该图节点未通过检查。非法描述信息规则可以包括以下至少一种:半
角标点符号、每行自然语言信息行首的空格符、每行自然语言信息行末的空格符、单行自然语言信息行末的换行符。本技术可以不限于根据以上四种非法描述信息规则对自然语言信息进行合法性检查。
91.当对自然语言信息中包括的节点描述信息进行合法性检查时,可以将各个图节点关联的节点描述信息与非法描述信息规则进行匹配,如果匹配成功,可以确定该图节点未通过检查。当对自然语言信息中包括的业务规则信息进行合法性检查时,对于各个图节点,可以分别执行如下操作:基于一个图节点的业务规则信息建立该图节点对应的引用树,并且引用树中的每个叶子节点对应该图节点的业务规则信息中的一个业务规则,遍历该图节点对应的引用树中的各个叶子节点,分别将各个叶子节点对应的业务规则与非法描述信息规则进行匹配,如果匹配成功,则可以确定该图节点未通过检查。
92.在另一种实施例中,在对自然语言信息中包括的业务规则信息进行合法性检查时,可以分别基于各个图节点关联的业务规则信息建立各个图节点对应的引用树,每个引用树中的各个叶子节点分别对应于相应图节点的业务规则信息中的一个业务规则,每个引用树可以包括多个叶子节点。并且,业务规则信息可以包括业务规则描述信息和业务规则类型,遍历各个图节点对应的引用树中的各个叶子节点,针对各个叶子节点,分别执行如下操作:将各个叶子节点中的一个叶子节点的业务规则描述信息与业务规则类型进行匹配,并且业务规则描述信息和业务规则类型包含在该叶子节点对应的业务规则中,如果匹配失败,则可以确定该叶子节点对应的图节点未通过检查。
93.本技术不限于根据上述实施例中提供的合法性检查规则对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查,可以根据实际的业务检查需求自行配置不同的合法性检查规则。
94.步骤s204,若检查结果为检查通过,则根据需求描述文档生成测试用例。
95.当检查结果为检查通过,即对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查,不存在未通过检查的图节点时,可以根据该需求描述文档生成测试用例。
96.在一种实施例中,可以提取需求描述文档中的语料信息,并根据语料信息确定需求描述文档对应的语料特征,进而根据语料特征和通过合法性检查的需求描述文档,可以生成测试用例。具体地,可以提取出需求描述文档中的语料信息,并对该语料信息进行特征化及分类,得到需求描述文档中的语料分类信息和冲突语料信息,利用语料分类信息和冲突语料信息可以指导通过合法性检查的需求描述文档生成测试用例。
97.在另一种实施例中,当检查结果为检查未通过,即对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查,存在未通过检查的图节点时,可以基于未通过检查的图节点关联的自然语言信息,输出错误提示信息,并响应于基于错误提示信息修改后的需求描述文档生成测试用例的请求,对修改后的需求描述文档中的自然语言信息再次进行合法性检查。
98.在一些实施例中,也可以不根据需求描述文档构建相应的有向信息图,而是直接扫描需求描述文档,对需求描述文档中的自然语言信息进行合法性检查,当没有扫描出需求描述文档中存在不合法的自然语言信息时,可以直接根据该需求描述文档生成测试用例,当扫描出需求描述文档中存在不合法的自然语言信息时,可以输出错误提示信息。采用扫描的方式进行合法性检查的优点是速度更快,但存在的缺点是可能会丢失一些需求描述
文档的上下文信息,并且也不利于检查需求描述文档中除自然语言信息外的其他问题。因此,在追求检查速度的场景下可以采用扫描的方式进行合法性检查。
99.本技术实施例提供的测试用例生成方法,在根据需求描述文档生成测试用例之前,先根据获取的需求描述文档中的各个业务步骤和各个业务步骤之间的逻辑关系构建相应的有向信息图,遍历有向信息图中的各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查。在通过合法性检查之后,再根据需求描述文档生成测试用例。与相关技术相比,可以提高对需求描述文档中关联的自然语言信息进行合法性检查的效率,以及保证需求描述文档的正确性,从而可以根据正确的需求描述文档生成测试用例,提高生成的测试用例的质量。
100.在一些实施例中,可以按照基于模型的测试(model

based testing,mbt)来指导测试用例的生成,即可以根据图3中的需求管理系统、合法性检查系统、特征库系统和测试用例自动生成系统来完成测试用例的生成过程。其中需求管理系统可以得到用于生成测试用例的需求描述文档。合法性检查系统用于根据需求描述文档构建相应的有向信息图,并基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查,得到合法的需求描述文档。特征库系统用于提取需求描述文档的语料信息,并根据语料信息确定出需求描述文档对应的语料特征。测试用例自动生成系统用于根据语料特征和合法的需求描述文档生成测试用例。
101.具体地,图4示出了本技术提出的测试用例生成方法的详细实现过程,如图4所示,可以包括如下步骤:
102.步骤s401,获取预设的需求描述文档。
103.可以通过需求管理系统得到需求描述文档,并且该需求描述文档中至少包括待测试业务的各个业务步骤以及所述各个业务步骤之间的逻辑关系。
104.在得到需求描述文档之前,用户可以先根据对软件产品进行测试的测试需求编写出docx格式的需求文档,然后将该需求文档输入到需求管理系统中,需求管理系统可以根据需求管理系统格式对该需求文档进行管理。用户也可以根据对软件产品进行测试的测试需求以及需求管理系统格式,在需求管理系统中编写出需求文档。
105.可以根据统一建模语言(unified modeling language,uml)建模方法构建出需求管理系统格式,或称为业务需求信息格式,如图5所示。由图5可以看出,业务需求信息可以包括业务步骤路径和全局需求信息,具体的,业务步骤路径可以包括业务的执行流程步骤路径信息。在实际应用中,一个业务往往在开发时就设定后续希望大部分用户走的流程步骤,但是实际上不可能控制用户的行为,用户有自己的选择,另外,业务系统本身也可能出现异常或校验。因此,业务步骤路径可以包括基础路径和扩展路径。其中,基础路径可以包括业务的主要流程步骤,也称为基础步骤,一般是业务开发时设定的大多数用户使用的流程步骤。扩展路径可以包括主要流程步骤以外的流程步骤,也称为扩展步骤。一般的,基础路径和扩展路径可以包括根据全局需求信息中业务约束条件所关联的步骤。业务约束条件也可称为业务规则。
106.全局需求信息可以包括目标业务执行过程中除业务步骤路径以外所需的数据,具体的,所述全局需求数据可以至少包括下述之一:业务约束条件、前置条件、后置条件、执行者、涉众利益。其中,所述业务约束条件可以包括目标业务的约束向条件信息,具体的,业务
约束条件至少可以包括下述之一:业务规则、字段列表、设计约束、非功能需求。业务规则可以包括业务参数规则和业务处理规则,参数校验规则是指在目标业务实现过程中涉及到参数信息时所需的规则,业务处理规则可以是指相关业务处理过程所需遵循的规则。字段列表可以是指目标业务实现过程中需要进行输入或输出的限定字段,如成功付款用例中,用户输入的订单金额即为字段列表。设计约束可以是指在研发过程中为产品设计的各种界面形式,如对产品进行某操作后,应该显示的界面是怎样的。非功能需求可以是只优惠或开发者对产品的其他需求,如质量需求等。前置条件可以包括目标业务执行的前提条件。后置条件可以包括目标业务执行后的所需满足条件。执行者可以包括目标业务的使用者,例如用户,执行者可以包括主执行者和辅助执行者,例如用银行卡进行支付的业务中,用户是主执行者,银行支付系统是辅助执行者。涉众利益可以包括目标业务执行过程中受益信息。
107.需要说明的是,本技术实施例中,全局需求信息并不仅限于上述业务约束条件、前置条件、后置条件、执行者、涉众利益中的至少一种,在实际应用中,还可以根据业务需求,包括更多的数据。
108.需求管理系统可以根据上述需求管理系统格式配置需求信息采集页面,如图6和图7所示。其中,图6所示为需求管理系统中的需求文档的路径步骤页,图7所示为需求管理系统中的需求文档的业务规则页。用户可以通过图6及图7所示的页面输入需求信息,需求管理系统根据用户输入的需求信息生成需求描述文档。此外,在需求管理系统中,还可以对需求文档进行修改,修改页面可以如图8所示。例如,用户将需求文档输入需求管理系统后,可以通过图8所示的页面对需求文档中的需求信息进行修改,需求管理系统根据用户修改后的需求文档生成需求描述文档。用户也可以向需求管理系统中提交新增的需求文档,该新增需求文档页面可以如图9所示。
109.需求管理系统是一个典型的管理信息系统,需求管理系统的完整信息管理周期可以如图10所示。在图10中,当用户需要在需求管理系统中新增需求文档时,可以先在需求管理系统中触发alt(切换)按键,切换至新增需求,然后将需求文档上传到需求管理系统中,需求管理系统可以解析并处理该需求文档,以及将需求文档中的新语料上报至特征库系统,需求管理系统在解析并处理该需求文档后,还可以将该需求文档进一步转换成结构化的需求文档,从而完成在需求管理系统中新增需求文档。当用户需要在需求管理系统中查询需求文档时,可以先在需求管理系统中触发alt按键,由新增需求切换至查询需求,需求管理系统在接收到该查询需求后,可以处理对应的查询请求,并向用户返回待查询的数据,用户就可以在需求管理系统中浏览返回的待查询数据。当用户需要在需求管理系统中修改需求文档时,可以先在需求管理系统中触发alt按键,由查询需求切换至修改需求,需求管理系统在接收到该修改需求后,可以处理对应的修改请求,并且在用户修改完需求文档后,可以将修改后的需求文档中的新语料上报至特征库系统,以及接收该修改后的需求文档,从而完成在需求管理系统中修改需求文档。
110.在需求管理系统中得到需求文档后,需求管理系统可以进一步将该需求文档转换成json格式的半结构化自然语言描述需求文档,可以如图11所示。该json格式的半结构化自然语言描述需求文档即为所需要的需求描述文档。
111.步骤s402,将需求描述文档中的业务步骤作为图节点,并根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,得到有向关系图。
112.在通过需求管理系统得到需求描述文档后,可以将该需求描述文档输入到合法性检查系统中。合法性检查系统可以根据该需求描述文档构建出相应的有向信息图。有向信息图构建的名词概念表可以如表1所示:
113.表1
[0114][0115][0116]
由于需求描述文档中的业务步骤可以包括基础步骤和扩展步骤,则可以将需求描述文档中的基础步骤和扩展步骤作为图节点,根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,得到有向关系图。例如,图6中的“1.用户提交付款信息,请求付款”可以为基础步骤,则可以将该基础步骤1作为图节点1,“1a.用户取消付款”可以为扩展步骤,则可以将该扩展步骤1a作为图节点1a,当业务步骤“1.用户提交付款信息,请求付款”的下一业务步骤为“1a.用户取消付款”时,图节点1与图节点1a之间有一条有向边,并且由图节点1指向图节点1a。
[0117]
并且该有向关系图从虚拟起始图节点s开始,到虚拟结束图节点e结束,虚拟起始图节点s和虚拟结束图节点e的出现只是为了保证有向关系图的完整性,并无实质意义。
[0118]
步骤s403,根据需求描述文档,在有向关系图中为各个图节点添加关联的自然语言信息,得到需求描述文档对应的有向信息图。
[0119]
自然语言信息可以包括节点描述信息和业务规则信息,则可以根据各个业务步骤的描述信息,为对应的图节点添加关联的节点描述信息,根据需求描述文档中业务步骤的业务规则为有向关系图中对应的图节点添加关联的业务规则信息,进而可以得到需求描述文档对应的有向信息图。例如,业务步骤1的描述信息为“用户提交付款信息,请求付款”,则对应的图节点1的节点描述信息也为“用户提交付款信息,请求付款”,当需求描述文档中业务步骤1的业务规则为如图7所示的业务规则时,则图节点1关联的业务规则信息即为图7中所示的业务规则。最后根据有向关系图以及有向关系图中的各个图节点关联的节点描述信息和业务规则信息,可以得到需求描述文档对应的有向信息图。
[0120]
业务规则通常以表格的形式进行展示,并且具体的业务规则类型可以如表2所示:
[0121]
表2
[0122][0123][0124]
步骤s404,基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查。
[0125]
合法性检查系统在根据需求描述文档构建出相应的有向信息图后,可以采用dfs
方法或bfs方法,基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点关联的自然语言信息的描述方式进行合法性检查。如果存在未通过检查的图节点,可以确定检测结果为检查未通过,如果不存在未通过检查的图节点,可以确定检测结果为检查通过。
[0126]
在一种实施例中,在对各个图节点关联的自然语言信息的描述方式进行合法性检查时,可以对各个图节点关联的节点描述信息进行合法性检查。针对各个图节点,分别执行如下操作:将各个图节点中的一个图节点关联的节点描述信息与非法描述信息规则进行匹配,若匹配成功,则确定该图节点未通过检查。并且,该非法描述信息规则可以包括以下至少一种:半角标点符号、每行自然语言信息行首的空格符、每行自然语言信息行末的空格符、单行自然语言信息行末的换行符。例如,对各个图节点关联的节点描述信息中的标点符号进行合法性检查,可以将各个图节点关联的节点描述信息与半角标点符号进行匹配,从而当某个图节点关联的节点描述信息中出现了半角标点符号时,可以认为该图节点所关联的自然语言信息不合法,该图节点未通过检查。
[0127]
在另一种实施例中,可以对各个图节点关联的业务规则信息进行合法性检查,并且,该业务规则信息包括业务规则名、业务规则描述信息和业务规则处理方式。针对各个图节点,分别执行如下操作:基于各个图节点中的一个图节点的业务规则信息建立一个图节点对应的引用树,该引用树中的每个叶子节点对应一个图节点的业务规则信息中的一个业务规则,遍历一个图节点对应的引用树中的各个叶子节点,分别将各个叶子节点对应的业务规则与非法描述信息规则进行匹配,若匹配成功,则确定该叶子节点对应的图节点未通过检查。
[0128]
在另一种实施例中,可以对各个图节点关联的业务规则信息所包括的业务规则类型进行合法性检查。可以分别基于各个图节点关联的业务规则信息建立各个图节点对应的引用树,每个引用树中的各个叶子节点分别对应于相应图节点的业务规则信息中的一个业务规则,并且引用树包括有多个叶子节点。遍历各个图节点对应的引用树中的各个叶子节点,针对各个叶子节点,分别执行如下操作:将各个叶子节点中的一个叶子节点的业务规则描述信息与业务规则类型进行匹配,业务规则描述信息和业务规则类型可以包含在一个叶子节点对应的业务规则中,若匹配失败,则确定该叶子节点对应的图节点未通过检查。例如,可以先通过枚举参数来标记各种业务规则类型,则可以得到表2中的各种业务规则类型对应的类型标记,即系统校验归纳判断类规则的类型标记为1,校验报错类规则的类型标记为2,校验提示类规则的类型标记为3,校验后用户选择类规则的类型标记为4,系统处理归纳判断类规则的类型标记为5,选择类规则的类型标记为6,记录类规则的类型标记为7,计算类规则的类型标记为8,系统反馈归纳判断类规则的类型标记为9,展示反馈类规则的类型标记为10。若图节点1中包括的叶子节点1的业务规则类型的类型标记为1,而图节点1中包括的叶子节点1的业务规则描述信息对应的业务规则类型应该为系统处理归纳判断类规则,将图节点1中包括的叶子节点1的业务规则类型的类型标记与业务规则描述信息进行匹配,可以确定图节点1中包括的叶子节点1的业务规则类型与业务规则描述信息不匹配,可以认为图节点1所关联的自然语言信息不合法,该图节点未通过检查。
[0129]
步骤s405,确定检查结果是否为检查通过;如果否,执行步骤s406;如果是,执行步骤s407。
[0130]
合法性检查系统可以在对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查后,可以确定出检查结果,如果存在未通过检查的图节点,可以确定检测结果为检查未通过,如果不存在未通过检查的图节点,可以确定检测结果为检查通过。
[0131]
步骤s406,基于未通过检查的图节点关联的自然语言信息,输出错误提示信息。
[0132]
当检查结果为检查未通过时,合法性检查系统可以基于未通过检查的图节点关联的自然语言信息,输出错误提示信息。并且,响应于基于错误提示信息修改后的需求描述文档生成测试用例的请求,可以对修改后的需求描述文档中的自然语言信息进行合法性检查。
[0133]
步骤s407,根据需求描述文档生成测试用例。
[0134]
当检查结果为检查通过时,合法性检查系统可以输出合法的需求描述文档。特征库系统可以提取出需求描述文档的语料信息,并根据语料信息确定出需求描述文档对应的语料特征。测试用例自动生成系统可以根据合法的需求描述文档和语料特征生成测试用例。生成的测试用例可以如图12所示,该测试用例以表格的形式进行展示,每一行为一条测试用例,并且表格的表头分别为:测试用例类型、自动化、测试用例名称、前置条件、测试用例步骤和预期结果。
[0135]
在另一些实施例中,也可以在需求管理系统将结构化的需求文档转换成需求描述文档之前,采用合法性检查系统先对需求文档进行合法性检查,当需求文档通过合法性检查后,再通过需求管理系统将通过合法性检查的需求文档转换成需求描述文档,测试用例自动生成系统最后根据该需求描述文档和特征库系统提取得到的语料特征生成测试用例。
[0136]
参阅图13所示,下面采用一个具体的应用场景,对以上实施例做出进一步详细说明:
[0137]
假设一个需求描述文档的业务步骤可以如图14所示,由图14可知该需求描述文档中包括有基础步骤1、基础步骤2、基础步骤3、基础步骤4和扩展步骤2a以及扩展步骤2b共6个业务步骤。该需求描述文档中只有业务步骤1具有业务规则,并且业务步骤1的业务规则可以如图15所示。
[0138]
步骤s1301,将需求描述文档中的6个业务步骤均作为图节点,并根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,得到有向关系图。
[0139]
可以将需求文档中包括的4个基础步骤和2个扩展步骤共6个业务步骤均作为图节点,则可以得到对应的6个图节点,并根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,构建一个有向关系图。得到的有向关系图可以如图16所示,在图16中,图节点s为虚拟起始图节点,图节点e为虚拟结束图节点。
[0140]
步骤s1302,根据各个业务步骤的描述信息,为对应的图节点添加关联的节点描述信息。
[0141]
根据需求描述文档中包括的6个业务步骤中各个业务步骤所具有的描述信息,可以为有向关系图中对应的图节点添加关联的节点描述信息。例如,可以根据基础步骤1的描述信息“用户提交付款信息,请求付款”,为图节点1添加关联的节点描述信息“用户提交付款信息,请求付款”。
[0142]
步骤s1303,根据各个业务步骤中所具有的业务规则,为对应的图节点添加关联的业务规则信息。
[0143]
根据需求描述文档中包括的6个业务步骤中各个业务步骤所具有的业务规则,可以为有向关系图中对应的图节点添加关联的业务规则信息。例如,可以根据基础步骤1所具有的如图15所示的业务规则,为图节点1添加关联的业务规则信息。
[0144]
步骤s1304,根据各个图节点关联的节点描述信息和业务规则信息,得到需求描述文档对应的有向信息图。
[0145]
根据有向关系图中各个图节点关联的节点描述信息和业务规则信息,可以得到需求描述文档对应的有向信息图,该有向信息图可以如图17所示。
[0146]
步骤s1305,基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查。
[0147]
可以采用dfs方法或bfs方法,基于有向信息图中每两个图节点之间的方向遍历6个图节点中的各个图节点,分别对各个图节点关联的自然语言信息的描述方式进行合法性检查。如果存在未通过检查的图节点,可以确定检测结果为检查未通过,如果不存在未通过检查的图节点,可以确定检测结果为检查通过。
[0148]
可以对6个图节点关联的节点描述信息进行合法性检查,即将6个图节点中每个图节点关联的节点描述信息分别与非法描述信息规则进行匹配,若匹配成功,则确定该图节点未通过检查。例如,对图17中的图节点1关联的节点描述信息“用户提交付款信息,请求付款”进行合法性检查,如果“用户提交付款信息,请求付款”中的“,”为半角符号,将该节点描述信息与半角符号“,”进行匹配的匹配结果是匹配成功,则可以确定图节点1未通过检查。
[0149]
也可以对6个图节点关联的业务规则信息中的字符信息进行合法性检查,由于6个图节点中只有图节点1关联有业务规则信息,因此只需要对图节点1关联的业务规则信息进行合法性检查。而如果图节点1关联的业务规则信息为多个时,则需要先对图节点1的业务规则信息建立对应的引用树,该引用树中的每个叶子节点对应一个图节点的业务规则信息中的一个业务规则,在对图节点1关联的多个业务规则信息进行合法性检查时,需要遍历图节点1对应的引用树中的各个叶子节点,分别将各个叶子节点对应的业务规则与非法描述信息规则进行匹配,如果其中至少有一个叶子节点对应的业务规则与非法描述信息规则匹配成功,则可以确定图节点1未通过检查。
[0150]
还可以对图节点1关联的业务规则信息所包括的业务规则类型进行合法性检查。可以先基于图节点1关联的业务规则信息建立图节点1对应的引用树,每个引用树中的各个叶子节点分别对应于图节点1的业务规则信息中的一个业务规则,并且引用树可以包括有多个叶子节点。接着可以遍历图节点1对应的引用树中的各个叶子节点,针对各个叶子节点,分别执行如下操作:将各个叶子节点中的一个叶子节点的业务规则描述信息与业务规则类型进行匹配,业务规则描述信息和业务规则类型可以包含在一个叶子节点对应的业务规则中,如果其中至少有一个叶子节点对应的业务规则描述信息与业务规则类型匹配失败,则可以确定图节点1未通过检查。
[0151]
步骤s1306,若检查结果为检查通过,则根据需求描述文档生成测试用例。
[0152]
当检查结果为检查通过时,可以根据通过合法性检查的需求描述文档生成测试用例。当检查结果为检查未通过时,可以基于未通过检查的图节点关联的自然语言信息,输出错误提示信息,并响应于基于错误提示信息修改后的需求描述文档生成测试用例的请求,对修改后的需求描述文档中的自然语言信息进行合法性检查。
[0153]
与图2所示的测试用例生成方法基于同一发明构思,本技术实施例中还提供了一种测试用例生成装置,该测试用例生成装置可以布设在服务器或终端设备中。由于该装置是本技术测试用例生成方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
[0154]
图18示出了本技术实施例提供的一种测试用例生成装置的结构示意图,如图18所示,该测试用例生成装置包括文档获取单元1801、有向图构建单元1802、合法性检查单元1803和测试用例生成单元1804。
[0155]
其中,文档获取单元1801,用于获取预设的需求描述文档;需求描述文档中至少包括待测试业务的各个业务步骤以及各个业务步骤之间的逻辑关系;
[0156]
有向图构建单元1802,用于根据需求描述文档构建相应的有向信息图;其中,有向信息图中的每个图节点表征一个业务步骤,每两个图节点之间的方向表征相应的两个业务步骤之间的逻辑顺序;
[0157]
合法性检查单元1803,用于基于有向信息图中每两个图节点之间的方向遍历各个图节点,分别对各个图节点在需求描述文档中关联的自然语言信息进行合法性检查;
[0158]
测试用例生成单元1804,用于若检查结果为检查通过,则根据需求描述文档生成测试用例。
[0159]
在一种可选的实施例中,合法性检查单元1803,还用于:
[0160]
若检查结果为检查未通过,则基于未通过检查的图节点关联的自然语言信息,输出错误提示信息;
[0161]
响应于基于错误提示信息修改后的需求描述文档生成测试用例的请求,对修改后的需求描述文档中的自然语言信息进行合法性检查。
[0162]
在一种可选的实施例中,业务步骤包括基础步骤和扩展步骤;有向图构建单元1802,具体用于:
[0163]
将基础步骤和扩展步骤均作为图节点,并根据每两个业务步骤之间的逻辑关系确定对应的两个图节点之间的方向,得到有向关系图;
[0164]
根据需求描述文档,在有向关系图中为各个图节点添加关联的自然语言信息,得到需求描述文档对应的有向信息图。
[0165]
在一种可选的实施例中,自然语言信息包括节点描述信息和业务规则信息;有向图构建单元1802,还用于:
[0166]
根据各个业务步骤的描述信息,为对应的图节点添加关联的节点描述信息;
[0167]
根据需求描述文档中的业务规则为有向关系图中的图节点添加关联的业务规则信息。
[0168]
在一种可选的实施例中,合法性检查单元1803,具体用于:
[0169]
采用深度优先搜索方法或广度优先搜索方法,基于有向信息图中每两个图节点之间的方向遍历各个图节点;
[0170]
分别对各个图节点关联的自然语言信息的描述方式进行合法性检查;若存在未通过检查的图节点,则确定检测结果为检查未通过,若不存在未通过检查的图节点,则确定检测结果为检查通过。
[0171]
在一种可选的实施例中,合法性检查单元1803,还用于:
[0172]
针对各个图节点,分别执行如下操作:
[0173]
将各个图节点中的一个图节点关联的自然语言信息与预设的非法描述信息规则进行匹配;非法描述信息规则包括以下至少一种:半角标点符号、每行自然语言信息行首的空格符、每行自然语言信息行末的空格符、单行自然语言信息行末的换行符;
[0174]
若匹配成功,则确定一个图节点未通过检查。
[0175]
在一种可选的实施例中,自然语言信息包括节点描述信息;合法性检查单元1803,还用于:将一个图节点关联的节点描述信息与非法描述信息规则进行匹配;或者,
[0176]
自然语言信息包括业务规则信息;合法性检查单元1803,还用于:基于一个图节点的业务规则信息建立一个图节点对应的引用树;引用树中的每个叶子节点对应一个图节点的业务规则信息中的一个业务规则;遍历一个图节点对应的引用树中的各个叶子节点,分别将各个叶子节点对应的业务规则与非法描述信息规则进行匹配。
[0177]
在一种可选的实施例中,自然语言信息包括业务规则信息;合法性检查单元1803,还用于:
[0178]
分别基于各个图节点关联的业务规则信息建立各个图节点对应的引用树;每个引用树中的各个叶子节点分别对应于相应图节点的业务规则信息中的一个业务规则;引用树包括多个叶子节点;业务规则信息包括业务规则描述信息和业务规则类型;
[0179]
遍历各个图节点对应的引用树中的各个叶子节点,针对各个叶子节点,分别执行如下操作:
[0180]
将各个叶子节点中的一个叶子节点的业务规则描述信息与业务规则类型进行匹配;业务规则描述信息和业务规则类型包含在一个叶子节点对应的业务规则中;
[0181]
若匹配失败,则确定一个叶子节点对应的图节点未通过检查。
[0182]
在一种可选的实施例中,测试用例生成单元1804,具体用于:
[0183]
提取需求描述文档的语料信息,并根据语料信息确定需求描述文档对应的语料特征;
[0184]
根据语料特征和需求描述文档,生成测试用例。
[0185]
与上述方法实施例和装置实施例基于同一发明构思,本技术实施例中还提供了一种电子设备。该电子设备可以是服务器,如图1所示的服务器100。在该实施例中,电子设备的结构可以如图19所示,包括存储器1901,通讯模块1903以及一个或多个处理器1902。
[0186]
存储器1901,用于存储处理器1902执行的计算机程序。存储器1901可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
[0187]
存储器1901可以是易失性存储器(volatile memory),例如随机存取存储器(random

access memory,ram);存储器1901也可以是非易失性存储器(non

volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid

state drive,ssd)、或者存储器1901是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1901可以是上述存储器的组合。
[0188]
处理器1902,可以包括一个或多个中央处理单元(central processing unit,cpu)或者为数字处理单元等等。处理器1902,用于调用存储器1901中存储的计算机程序时
实现上述测试用例生成方法。
[0189]
通讯模块1903用于与终端设备和其他电子设备进行通信。如果电子设备为服务器,则服务器可以通过通讯模块1903接收终端设备发送的需求描述文档。
[0190]
本技术实施例中不限定上述存储器1901、通讯模块1903和处理器1902之间的具体连接介质。本公开实施例在图19中以存储器1901和处理器1902之间通过总线1904连接,总线1904在图19中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1904可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0191]
在另一种实施例中,电子设备也可以是平板电脑、台式机、笔记本电脑等。
[0192]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的测试用例生成方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0193]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献