CN113641591A - 测试用例生成方法及装置、测试方法及装置 - Google Patents
测试用例生成方法及装置、测试方法及装置 Download PDFInfo
- Publication number
- CN113641591A CN113641591A CN202111196789.9A CN202111196789A CN113641591A CN 113641591 A CN113641591 A CN 113641591A CN 202111196789 A CN202111196789 A CN 202111196789A CN 113641591 A CN113641591 A CN 113641591A
- Authority
- CN
- China
- Prior art keywords
- test
- path
- node
- service
- target product
- 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
Images
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
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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是本申请提供的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种测试用例生成方法及装置、测试方法及装置。本发明实施例可应用于云技术、人工智能、智慧交通以及辅助驾驶等各种场景。其中,该测试用例生成方法可以使用于测试用例生成装置中;该测试方法可以适用于测试装置中。该测试用例生成装置以及测试装置可以集成在计算机设备中,该计算机设备可以是服务器也可以是终端。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,服务器可以为区块链中的节点。其中,终端可以为手机、平板电脑、笔记本电脑、智能电视、穿戴式智能设备、个人计算机(PC,Personal Computer)、智能语音交互设备、智能家电以及车载终端等设备。
请参阅图1,为本申请提供的测试用例生成的一场景示意图;如图所示,计算机设备A获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型。系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤对应的约束条件。根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;基于约束条件将测试路径扩展为多个测试场景;从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。
需要说明的是,图1所示的测试用例生成的场景示意图仅仅是一个示例,本申请实施例描述的测试用例生成场景是为了更加清楚地说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定。本领域普通技术人员可知,随着测试用例生成的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
基于上述实施场景以下分别进行详细说明。
本申请实施例将从测试用例生成装置的角度进行描述,该测试用例生成装置可以集成在计算机设备中。其中,计算机设备可以是终端也可以是服务器。其中,终端可以为手机、平板电脑、笔记本电脑、智能电视、穿戴式智能设备、个人计算机(PC,PersonalComputer)等设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。如图2所示,为本申请提供的测试用例生成方法的流程示意图,该方法包括:
步骤101,获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型。
其中,目标产品可以为任意应用程序软件产品。当程序编写人员编写完成应用程序软件后,需要对软件的各项功能进行测试,以保证软件产品的功能正常。具体地,对软件产品进行测试,需要采用测试用例进行测试。其中,测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等所形成的文档。测试用例也可以理解为为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。如下表1所示,为几个测试用例的示例表:
表1:测试用例示例表
其中,表1示出了任意一款购物应用程序中付款场景下两个具体软件功能的测试用例,并具体提供了用例分类、用例是否适合自动生成、用例名称、用例对应的需要满足的前置条件、用例的具体执行步骤以及用例对应的预期测试结果。可以理解的是,表1只是测试用例的一个示例的表现形式,测试用例也可以以文本文档等其他格式进行展示和存储。
在相关技术中,技术人员一般通过人工对软件产品的功能进行理解和梳理,并人工推导出对软件产品进行测试的测试用例。该方法效率十分低下,而且存在人为失误导致测试用例遗漏的情况,进而可能导致对软件产品的测试结果可靠性差。
为解决上述人工推导软件产品测试用例,效率低下的技术问题,本申请提供一种测试用例生成方法,可以自动生成软件产品的测试用例,提高测试用例的生成效率。下面对本申请提供的测试用例生成方法进行详细介绍。
在本申请实施例中,可以自动对待测试的目标产品的需求数据进行获取,并根据目标产品的需求数据生成目标产品对应的系统用例。其中,系统用例是基于需求数据采用统一建模语言((Unified Modeling Language,UML)建模得到的描述用户和系统交互方法的模型。该建模的过程可以包括业务建模和概念建模。其中,UML建模为一种建模语言,指用模型元素来组件整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等。
其中,目标产品的需求数据可以是以目标产品的产品需求文档(ProductRequirements Document,PRD)的形式进行表示的,也可以是以产品需求文档对应的Json格式数据进行表示。其中,Json格式指JS对象简谱(JavaScript Object Notation,Json),是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得其成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
具体地,产品需求文档对产品需求的描述,包括产品的战略和战术,其中产品的战略包括:产品定位、目标市场、目标客户、竞争对手等,产品的战术包括:产品的结构、核心业务流程、具体用例描述、功能以及内容描述等。本申请实施例中产品需求可以主要由产品的战术部分构成。
当获取到目标产品的需求数据后,可以对产品的需求数据进行UML建模,得到目标产品对应的系统用例。具体地,目标产品的系统用例可以具体包括用例执行者、业务相关的前置条件集合、后置条件集合以及多条业务路径。其中,业务路径包括基本路径以及扩展路径,基本路径可以理解为核心业务流程、扩展路径可以理解为核心业务流程的扩展流程。每个业务路径均包含了多个业务步骤,而每个业务步骤也存在与其对应的约束条件。具体地,约束条件可以包括字段列表、业务规则、非功能需求以及设计约束。在得到目标产品对应的系统用例后,可以进一步根据目标产品的系统用例自动生成目标产品对应的测试用例。
在一些实施例中,在获取到目标产品的需求数据,并根据所述需求数据生成所述目标产品对应的系统用例模型,包括:
1、获取文本文档格式的需求文档;
2、将文本文档格式的需求文档转换成结构化的需求文档并展示;
3、接收对结构化的需求文档的修改操作,根据修改操作对结构化的需求文档进行更新;
4、将更新后的结构化的需求文档转化为Json格式。
其中,在本申请实施例中,可以获取目标产品的文本文档格式的需求文档,然后将文本文档格式的需求文档进行结构化转化,得到结构化的需求文档,然后可以在网页浏览器中展示结构化的需求文档。
在网页浏览器中展示的结构化需求文档,可以为用户提供查询、新增和修改的功能。用户可以在展示结构化的需求文档的网页浏览器中进行需求查询、需求修改以及需求新增。对于新增或者修改后的需求,可以进一步进行合法性检查,当检查合格时,可以根据新增或者修改的操作对结构化的需求文档进行更新以及存储。
进一步地,对于更新后的结构化需求文档,还可以进一步输出其Json格式的文档,从而降低需求文档的解析难度。方便后续装置对需求文档进行解析以及生成系统用例模型。
步骤102,根据业务路径生成图结构。
其中,如前所述,根据目标产品的需求数据生成的目标产品对应的系统用例模型中包含了多条业务路径。其中每条业务路径对应一个业务流程,业务流程包含了业务步骤以及业务步骤之间的跳转关系,该跳转关系也可以理解为业务步骤之间的连接关系。其中,多条业务路径之间可以存在共同的业务步骤,即业务路径之间可以存在交叉。
在本申请中,由于业务路径为业务步骤和业务步骤之间的跳转关系构成,因此可以根据业务路径生成图结构。其中,图结构可以为有向图,有向图中的每个节点对应了业务路径中的业务步骤。
在一些实施例中,根据业务路径生成图结构,包括:
1、获取业务路径中的多个业务步骤以及业务步骤之间的跳转关系;
2、根据多个业务步骤以及跳转关系生成图结构。
在本申请实施例中,对于每个业务路径,无论是基本业务路径(也可以称为主业务路径)还是扩展业务路径,都包含了多个业务步骤和业务步骤之间的跳转关系。该跳转关系即为业务步骤与其他业务步骤之间的连接关系。本申请实施例中可以对所有业务路径中包含的所有业务步骤进行获取,得到业务步骤集合。其中,在业务步骤集合中,相同的业务步骤可以只保留一个。例如,当第一主业务路径中包含业务步骤B,第二主业务路径中也包含业务步骤B,扩展业务路径中也包含业务步骤B,也就是第一主业务路径、第二主业务路径以及扩展业务路径在业务步骤B处交叉。那么在对业务路径中的业务步骤进行获取得到业务步骤集合时,在业务步骤集合中只保留一个业务步骤B。同样地,对于其他相同的业务步骤,也仅保留一个。
进一步地,还可以获取每条业务路径中业务步骤之间的跳转关系,该业务步骤之间的跳转关系可以为业务步骤之间的连接关系。对于上述在多个业务路径中都存在的业务步骤,可以与多个其他业务步骤之间存在跳转关系。
在获取到业务路径中包含的多个业务步骤,得到上述业务步骤集合,以及获取到业务步骤集合中业务步骤之间的跳转关系后,可以根据业务步骤集合以及业务步骤集合中业务步骤之间的跳转关系生成图结构。
在一些实施例中,根据多个业务步骤以及跳转关系生成图结构,包括:
2.1、获取预设的第一节点和第二节点;
2.2、以第一节点为起始节点、以第二节点为结束节点、以多个业务步骤为中间节点以及以跳转关系为边构建图结构。
其中,在本申请实施例中,在构建图结构时,可以先设置一个虚拟的起始节点以及一个虚拟的终止节点。其中,对于每个业务路径,都有一个起始业务步骤C,以及一个结束业务步骤D。当有多条业务路径时,便存在多个起始业务步骤C1、C2、C3以及C4等;那么同样地也就可以存在多个结束业务步骤D1、D2、D3以及D4。然后,可以以虚拟的起始节点为起始节点、虚拟的终止节点为结束节点、以业务步骤为中间节点并以业务步骤之间的跳转关系为边构建图结构。其中,起始节点与每个起始业务步骤C1、C2、C3以及C4对应的节点相连,终止节点与每个结束业务步骤D1、D2、D3以及D4对应的节点相连。
其中,在本申请实施例中,由于业务路径存在确定的行进方向,即业务步骤的执行存在先后顺序,因此本申请中构建的图结构可以为有向图。
步骤103,根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径。
其中,在本申请实施例中,可以对根据业务路径生成的图结构进行分析,识别出图结构中的关键节点。其中,关键节点可以为代表了一条单独的测试路径的节点;或者,可以理解为关键节点为不与其他路径共用的节点;或者也可以理解为关键节点对应的业务步骤是其他业务路径中不具有的业务步骤。因此,在图结构中,可以根据节点之间的连接关系来识别出关键节点。
对每一关键节点进行路径探索,可以为寻找一条从图结构中起始节点出发,经过关键节点并到达终止节点的路径,该路径便可以构成一个对目标产品进行测试的测试路径。为了提升对目标产品进行测试的测试效率,需要进一步简化测试路径。因此,当存在多条从起始节点出发,经过关键节点并到达终止节点的路径时,从这多条路径中探索出最短路径作为关键节点对应的测试路径,这些测试路径便可以作为测试用例的骨架。
在一些实施例中,根据图结构中节点之间的连接关系识别图结构中的关键节点,包括:
1、根据图结构中节点之间的连接关系识别图结构中具有相同父节点的多个子节点;
2、识别图结构中的跳转节点;
3、确定子节点和跳转节点为关键节点。
其中,在本申请实施例中,图结构可以为有向图,也就是业务步骤的执行存在着先后顺序,进一步也就意味着节点之间也是按照有向图的跳转顺序进行跳转的。当某一节点之后连接了多个节点时,该节点可以称为父节点,父节点后面连接的多个节点便为子节点。若某个子节点后面仍然连接了多个节点时,那么在该子节点以及与其连接的后面几个节点中,该子节点可以称为父节点,与其连接的后面几个节点可以称为子节点。
如此,则可以根据图结构中节点之间的连接关系确定具有相同父节点的多个子节点为关键节点。具体地,例如节点a具有节点b、节点c以及节点d这三个子节点,而节点d也具有节点e和节点f这两个子节点,那么便可以确定节点b、节点c、节点d、节点e以及节点f都为关键节点。
进一步地,还可以对每一节点对应的业务步骤的内容进行确定,当业务步骤的内容中不包含具体的执行内容,而只是示意将业务路径跳转至另外一个业务步骤时,确定该业务步骤为跳转步骤,那么该业务步骤对应的节点也可以称为跳转节点。在本申请实施例中,可以确定上述子节点以及跳转节点均为关键节点。
在一些实施例中,业务路径包括主业务路径以及扩展业务路径,方法还包括:
A、根据主业务路径在图结构中识别出主测试路径;
对每一关键节点进行路径探索,得到确定每一关键节点对应的测试路径,包括:
B、确定第一节点至每一关键节点的最短路径,得到每一关键节点对应的第一子测试路径;
C、基于主测试路径确定每一关键节点至第二节点的最短路径,得到每一关键节点对应的第二子测试路径;
D、根据每一关键节点对应的第一子测试路径和第二子测试路径确定每一关键节点对应的测试路径。
其中,在本申请实施例中,业务路径可以分为主业务路径以及扩展业务路径。其中,主业务路径中的业务步骤为主业务步骤,扩展业务路径中包含了主业务步骤也包含了部分扩展业务步骤。在图结构中,可以根据主业务步骤以及主业务步骤之间的跳转关系确定主测试路径。
在本申请实施例中,探索每个关键节点对应的测试路径,可以先探索初始节点到关键节点之间的最短路径,得到关键节点对应的第一子测试路径;然后,基于主测试路径确定关键节点与终止节点之间的第二子测试路径;第一子测试路径和第二子测试路径便组成了关键节点对应的测试路径。其中,基于主测试路径确定关键节点与终止节点之间的第二子测试路径,可以为确定关键节点经主测试路径到达终止节点的第二子测试路径。
在一些实施例中,基于主测试路径确定每一关键节点至第二节点的最短路径,得到每一关键节点对应的第二子测试路径,包括:
C1、当关键节点与第二节点之间存在经过主测试路径的目标子测试路径时,确定目标子测试路径中的最短路径为关键节点对应的第二子测试路径;
C2、当关键节点与第二节点之间不存在经过主测试路径的目标子测试路径时,确定关键节点与第二节点之间的最短路径为关键节点对应的第二子测试路径。
在本申请实施例中,由于并非所有关键节点都存在可以经由主测试路径回到终止节点的子测试路径,因此可以先对关键节点到终止节点之间的路径进行判断,确定是否存在可以经由主测试路径回到终止节点的子测试路径;当存在可以经由主测试路径回到终止节点的子测试路径时,获取经由主测试路径回到终止节点的子测试路径中的最短路径作为第二子测试路径;当不存在经由主测试路径回到终止节点的子测试路径时,可以获取关键节点到终止节点之间的最短路径作为关键节点对应的第二子测试路径。
在一些实施例中,对每一关键节点进行路径探索,得到每一关键节点对应的测试路径之后,还包括:
a、对每一关键节点对应的测试路径组成的测试路径集合进行去重,得到目标测试路径集合;
基于约束条件将测试路径扩展为多个测试场景,包括:
b、基于约束条件将测试操作路径集合中的每一测试路径扩展为多个测试场景。
其中,在本申请实施例中,在对每一关键节点进行路径探索得到每关键节点对应的测试路径,这些测试路径组成了测试路径集合。在一些情况下,不同关键节点对应的测试路径可能相同。为了避免生成相同的测试用例,浪费计算资源,可以对测试路径集合中的测试路径进行去重,将测试路径集合中多个相同的测试路径删除至只保留一个,得到目标测试路径集合,目标测试路径集合中的每个测试路径均不相同。
然后进一步地,可以与约束跳进对目标测试路径集合中测试路径进行扩展,得到多个测试场景。
步骤104,基于约束条件将测试路径扩展为多个测试场景。
其中,如前所述,无论是主业务路径还是扩展业务路径中的业务步骤,都可能存在与其对应的约束条件。其中,约束条件的内容多以表格形式进行展示,如表2所示,为约束条件分类表的一个示例:
表2:约束条件表格类型分类表
其中,表2中示出了根据步骤类型以及约束条件的类型,可以大致将表格分为系统校验、系统处理以及系统反馈这三类。对表格进行预处理后,可以根据表头格式对表格的每行内容进行提取,提取出的内容可以用于对测试路径进行扩展,得到多个测试场景。其中,提取出的内容也可以称为系统验证规则表。
在一些实施例中,基于约束条件将测试路径扩展为多个测试场景,包括:
1、识别测试路径中的验证节点;
2、从约束条件中获取每个验证节点对应的验证规则;
3、根据验证规则将测试路径扩展为多个测试场景。
在本申请实施例中,由于目标测试路径集合中的每一测试路径只是代表着某个确定性的业务序列,这个业务序列中可能有多个业务步骤上都挂载了系统验证规则表。对于挂载了系统验证规则表的节点,我们可以称之为验证节点。因此,对于目标测试路径集合中的每一测试路径,可以先根据节点上是否挂载系统验证规则表来确定其是否为验证节点。其中,挂载了系统验证规则表的节点,便为验证节点;否则则不是验证节点。
然后,进一步从约束条件中提取出每一个验证节点对应的验证规则,即前述系统验证规则表。进而根据系统验证规则表对测试路径进行扩展,得到多个测试场景。
具体地,系统验证规则表中的每一列代表着给定某种前置条件组合,则业务操作序列就可以通过该节点。具体地,如表3所示,为一个系统验证规则表的示例:
表3:系统验证规则表
如表3所示,有三种前置条件组合,可以让业务路径经过该业务步骤“系统判定需要用户确认是否继续支付”。则基于该验证节点就可以将测试路径扩展为三个测试场景。
进一步地,当一个测试路径中存在多个验证节点时,则可以获取每个验证节点对应的系统验证规则表,然后分别确定每个系统验证规则表中的规则列,并进一步根据乘法原则确定该测试路径对应的所有测试场景。然后,遍历每一测试路径,得到目标产品对应的所有测试场景。
步骤105,从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。
其中,确定了目标产品对应的所有测试场景后,需要确定每一测试场景对应的前置条件。对于任一目标测试场景,如前所述,在验证节点对应的系统验证规则表中记载了每一验证节点对应的前置条件名称,那么便可以根据该前置条件名称从前置条件集合中获取到前置条件的详细数据。进而便可以确定目标测试场景对应的目标前置条件。进一步地,可以遍历每一测试场景,确定每一测试场景对应的目标前置条件,从而完善得到测试场景对应的测试用例,进而得到了目标产品对应的测试用例。
根据上述描述可知,本申请实施例提供的测试用例生成方法,通过获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;基于约束条件将测试路径扩展为多个测试场景;从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。以此,通过获取目标产品的需求数据,根据产品需求数据生成目标产品对应的业务路径,基于业务路径构造有向图并根据有向图中关键节点探索得到测试路径,对每一测试路径扩展得到多个测试场景并自动匹配各场景对应的前置条件,从而可以大大提高测试用例生成的效率。
本申请还提供了一种测试用例生成方法,该方法可以使用于计算机设备中,该计算机设备可以为终端也可以为服务器。如图3所示,为本申请提供的测试用例生成方法的另一流程示意图,方法具体包括:
步骤201,计算机设备获取目标产品的产品需求文档。
其中,在本申请实施例中,目标产品可以为需要进行测试的软件产品,或者软件产品中的部分功能。对软件产品进行测试,需要先确定软件产品的测试用例,在相关技术中,技术人员通过对软件产品的代码进行分析并人工推导出对软件进行测试的测试用例。该方法效率低下且容易遗漏测试用例,导致测试不完善。对此,本申请提供一种测试用例生成方法,可以自动生成目标产品的测试用例,提高目标产品测试用例的生成效率。
首先,计算机设备获取目标产品的产品需求文档,目标产品的产品需求文档可以是在预设的存储位置中下载得到的,也可以是接收其他计算机设备传输得到的。目标产品的产品需求文档可以包括产品的结构、核心业务流程、具体用例描述、功能以及内容描述等数据。
步骤202,计算机设备对产品需求文档进行结构化转化并进行展示。
其中,计算机设备获取到目标产品的产品需求文档后,采用UML建模方法对产品需求文档结构化建模及转化,并将转化得到的结构化的需求数据在计算机设备的显示界面上进行展示。
步骤203,计算机设备接收用户对展示的结构化产品需求的调整操作,并据此更新目标产品的需求数据。
其中,在本申请实施例中,由于计算机设备对目标产品的产品需求文档进行UML建模及转化并在计算机设备的显示界面上进行展示,如此便为用户提供的对产品需求文档的查询、编写、新增以及删除等调整操作的功能。当用户需要对产品进行修改或者调整时,无需重新编写调整后的产品对应的产品需求文档,而是可以直接在展示界面中对目标产品的产品需求数据进行增删改等调整,大大方便了用户对产品的更新以及对更新后的产品的测试。
当用户在显示界面中对展示的产品需求数据进行调整后,计算机设备对修改后的产品需求数据进行合法性检查。当合法性检查结果合格时,便将修改后的产品需求数据进行保存,以替换原产品需求数据,从而实现对目标产品的产品需求数据的更新。
步骤204,计算机设备根据产品的需求数据生成目标产品对应的系统用例模型。
其中,计算机设备在根据用户对产品需求数据的调整操作对目标产品的产品需求数据进行更新后,根据更新后的需求数据生成目标产品对应的系统用例模型。其中,系统用例模型包含了主业务路径、扩展业务路径,主业务路径和扩展业务路径都包含了多个业务步骤以及业务步骤之间的跳转关系。系统用例模型还包括部分业务步骤对应的补充约束,补充约束中包含了字段列表、业务规则、非功能性需求以及设计约束等数据。另外,系统用例模型还包含了前置条件集合以及后置条件集合。
步骤205,计算机设备根据系统用例模型中的业务路径生成有向图。
进一步地,计算机设备可以根据系统用例模型中的业务路径来生成有向图。其中,业务路径包含了前述主业务路径和扩展业务路径。具体地,计算机设备先获取主业务路径和扩展业务路径中包含的所有业务步骤,对获取到的业务步骤进行去重,得到业务步骤集合。然后,根据每个业务路径中包含的业务步骤之间的跳转关系,确定业务步骤集合中各业务步骤之间的连接关系。
进一步地,计算机设备以业务步骤为节点、以业务步骤之间的跳转关系为节点之间的边构建有向图模型,得到表述业务步骤之间关系的有向图。在一些实施例中,为了保证有向图的完整性,还可以为有向图添加图起始节点S以及图结束节点E。
步骤206,计算机设备根据有向图中节点之间的关联关系识别有向图中的关键节点。
其中,在本申请实施例中,识别有向图中的关键节点包括两种识别方法:1、确定有向图中每个分叉之后的多个子节点;亦即确定有向图中具有相同父节点的多个子节点,这些子节点都是关键节点。2、有向图中的跳转节点;此处跳转节点表示该节点对应的业务步骤为包含跳转到某一步骤这类描述的步骤。具体地,可以通过图算法在有向图中识别出这些关键节点。
步骤207,计算机设备对每一关键节点进行路径探索,得到每一关键节点对应的测试路径。
其中,在识别出有向图中的关键节点之后,计算机设备逐一对每个关键节点进行路径探索,确定每一关键节点对应的测试路径。
其中,在本申请实施例中,对关键节点进行路径探索包括两个部分。首先,使用最短路径图遍历算法,找到起始节点S到关键节点的最短路径,该路径为关键节点对应测试路径的前半部分。其中,在该过程中忽略跳转的边。然后,探索一条由关键节点最快回到主路径的路径,并沿着主路径到达结束节点E,得到关键节点对应的测试路径的后半部分。其中,此过程只允许往关键节点以后的主路径节点跳转。在一些情况下,若无法找到回到主路径的路径,则直接采用最短路径图遍历算法确定由关键节点到达结束节点E的最短路径,作为关键节点对应的测试路径的后半部分。
可以理解的是,关键节点对应的测试路径的前半部分和后半部分结合构成了关键节点对应的测试路径。遍历每一关键节点,得到每一关键节点对应的测试路径。然后,将这些测试路径进行去重,得到测试路径集合。
步骤208,计算机设备将每一测试路径扩展为多个测试场景,并获取每个测试场景的前置条件,得到每个测试场景对应的测试用例。
其中,对于测试路径集合中的每一测试路径,可以分析其包含的每一节点,查看其上是否挂在了系统验证规则表。若挂载了系统验证规则表,则确定其为系统验证节点。
对于每个系统验证节点,可以查看其上挂载的系统验证规则表,识别规则表中包含的规则列。其中每个规则列代表给定规则列描述的前置条件组合,则业务路径就可以通过该业务步骤。
进一步地,可以运用乘法原则确定每一测试路径对应的多个测试场景。具体地,假设一条测试路径中有n个节点上挂载了系统验证规则表,则这条测试路径对应的所有测试场景的个数为:M=a1*a2*ai...*an。其中,ai代表第i个验证节点上挂载的系统验证规则表的列数。其中n为正整数,i为不大于n的正整数。
最后再手机每个测试场景中每个规则表分别选中的规则列,将这些规则列描述的前置条件合并起来,便为该测试场景可以正常执行的前置条件。也就得到了该测试路径对应的测试用例。进一步地,遍历每一测试路径,得到每一测试路径对应的测试用例。
根据上述描述可知,本申请实施例提供的测试用例生成方法,通过获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;基于约束条件将测试路径扩展为多个测试场景;从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。以此,通过获取目标产品的需求数据,根据产品需求数据生成目标产品对应的业务路径,基于业务路径构造有向图并根据有向图中关键节点探索得到测试路径,对每一测试路径扩展得到多个测试场景并自动匹配各场景对应的前置条件,从而可以大大提高测试用例生成的效率。
为了更好地实施以上方法,本申请实施例还提供一种测试用例生成装置,该测试用例生成装置可以集成在终端或服务器中。
例如,如图4所示,为本申请实施例提供的测试用例生成装置的结构示意图,该测试用例生成装置可以包括第一获取单元301、第一生成单元302、识别单元303、扩展单元304以及第二获取单元305,如下:
第一获取单元301,用于获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;
第一生成单元302,用于根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;
识别单元303,用于根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;
扩展单元304,用于基于约束条件将测试路径扩展为多个测试场景;
第二获取单元305,用于从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。
在一些实施例中,第一生成单元,包括:
获取子单元,用于获取业务路径中的多个业务步骤以及业务步骤之间的跳转关系;
生成子单元,用于根据多个业务步骤以及跳转关系生成图结构。
在一些实施例中,生成子单元,包括:
获取模块,用于获取预设的第一节点和第二节点;
构建模块,用于以第一节点为起始节点、以第二节点为结束节点、以多个业务步骤为中间节点以及以跳转关系为边构建图结构。
在一些实施例中,构建模块,包括:
第一识别子模块,用于根据图结构中节点之间的连接关系识别图结构中具有相同父节点的多个子节点;
第二识别子模块,用于识别图结构中的跳转节点;
确定子模块,用于确定子节点和跳转节点为关键节点。
在一些实施例中,业务路径包括主业务路径以及扩展业务路径,本申请提供的测试用例生成装置还包括:
第三识别子模块,用于根据主业务路径在图结构中识别出主测试路径;
识别单元,还包括:
第一确定子单元,用于确定第一节点至每一关键节点的最短路径,得到每一关键节点对应的第一子测试路径;
第二确定子单元,用于基于主操作路径确定每一关键节点至第二节点的最短路径,得到每一关键节点对应的第二子测试路径;
第三确定子单元,用于根据每一关键节点对应的第一子测试路径和第二子测试路径确定每一关键节点对应的测试路径。
在一些实施例中,第二确定子单元,包括:
第一确定模块,用于当关键节点与第二节点之间存在经过主测试路径的目标子测试路径时,确定目标子测试路径中的最短路径为关键节点对应的第二子测试路径;
第二确定模块,用于当关键节点与第二节点之间不存在经过主测试路径的目标子测试路径时,确定关键节点与第二节点之间的最短路径为关键节点对应的第二子测试路径。
在一些实施例中,本申请提供的测试用例生成装置还包括:
去重单元,用于对每一关键节点对应的测试路径组成的测试路径集合进行去重,得到目标测试路径集合;
扩展单元,还用于:
基于约束条件将测试操作路径集合中的每一测试路径扩展为多个测试场景。
在一些实施例中,扩展单元,包括:
识别测试路径中的验证节点;
从约束条件中获取每个验证节点对应的验证规则;
根据验证规则将测试路径扩展为多个测试场景。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
根据上述描述可知,本申请实施例提供的测试用例生成装置,通过第一获取单元301获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;第一生成单元302根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;识别单元303根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;扩展单元304基于约束条件将测试路径扩展为多个测试场景;第二获取单元305从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。以此,通过获取目标产品的需求数据,根据产品需求数据生成目标产品对应的业务路径,基于业务路径构造有向图并根据有向图中关键节点探索得到测试路径,对每一测试路径扩展得到多个测试场景并自动匹配各场景对应的前置条件,从而可以大大提高测试用例生成的效率。
本申请实施例还提供一种测试方法,该测试方法可以使用于测试装置中,该测试装置可以集成在计算机设备中。其中,计算机设备可以是终端也可以是服务器。其中,测试方法包括:
获取目标产品的基础数据,基础数据中包含目标产品的需求数据;
基于需求数据采用本申请前述实施方式中提供的测试用例生成方法生成目标产品的测试用例;
采用测试用例对目标产品进行测试,得到测试结果。
其中,测试装置在对目标产品进行测试前,可以先获取目标产品的基础数据。具体地,可以获取目标产品的需求数据。然后,测试装置可以采用图2或图3实施例中提供的测试用例生成方法根据目标产品的需求数据生成目标产品的测试用例,最后再采用这些测试用例对目标产品进行测试,得到测试结果。
为了更好地实现以上测试方法,本申请实施例还提供一种测试装置,该测试装置可以集成在计算机设备中,该计算机设备可以为终端也可以为服务器。
本申请提供的测试装置包括:
第三获取单元,用于获取目标产品的基础数据,基础数据中包含目标产品的需求数据;
第二生成单元,用于基于需求数据采用本申请前述具体实施方式中提供的测试用例生成方法生成目标产品的测试用例;
测试单元,用于采用测试用例对目标产品进行测试,得到测试结果。
本申请实施例还提供一种计算机设备,该计算机设备可以为服务器,如图5所示,为本申请提供的计算机设备的结构示意图。具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理单元401、一个或一个以上存储介质的存储单元402、电源模块403和输入模块404等部件。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理单元401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储单元402内的软件程序和/或模块,以及调用存储在存储单元402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理单元401可包括一个或多个处理核心;优选的,处理单元401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理单元401中。
存储单元402可用于存储软件程序以及模块,处理单元401通过运行存储在存储单元402的软件程序以及模块,从而执行各种功能应用以及测试用例生成。存储单元402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能以及网页访问等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储单元402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储单元402还可以包括存储器控制器,以提供处理单元401对存储单元402的访问。
计算机设备还包括给各个部件供电的电源模块403,优选的,电源模块403可以通过电源管理系统与处理单元401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源模块403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理单元401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储单元402中,并由处理单元401来运行存储在存储单元402中的应用程序,从而实现各种功能,如下:
获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;基于约束条件将测试路径扩展为多个测试场景;从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。
应当说明的是,本申请实施例提供的计算机设备与上文实施例中的方法属于同一构思,以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
获取目标产品的需求数据,并根据需求数据生成目标产品对应的系统用例模型,系统用例模型包括前置条件集合、多条业务路径以及业务路径中每个业务步骤的约束条件;根据业务路径生成图结构,图结构包括至少一个业务步骤对应的节点;根据图结构中节点之间的连接关系识别图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;基于约束条件将测试路径扩展为多个测试场景;从前置条件集合中获取每一测试场景对应的目标前置条件,得到目标产品在每一测试场景下对应的测试用例。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种方法中的步骤,因此,可以实现本发明实施例所提供的任一种方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图3的各种可选实现方式中提供的方法。
以上对本发明实施例所提供的一种测试用例生成方法及装置、测试方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种测试用例生成方法,其特征在于,所述方法包括:
获取目标产品的需求数据,并根据所述需求数据生成所述目标产品对应的系统用例模型,所述系统用例模型包括前置条件集合、多条业务路径以及所述业务路径中每个业务步骤的约束条件;
根据所述业务路径生成图结构,所述图结构包括至少一个业务步骤对应的节点;
根据所述图结构中节点之间的连接关系识别所述图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;
基于所述约束条件将所述测试路径扩展为多个测试场景;
从所述前置条件集合中获取每一测试场景对应的目标前置条件,得到所述目标产品在每一测试场景下对应的测试用例。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务路径生成图结构,包括:
获取所述业务路径中的多个业务步骤以及所述业务步骤之间的跳转关系;
根据所述多个业务步骤以及所述跳转关系生成图结构。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个业务步骤以及所述跳转关系生成图结构,包括:
获取预设的第一节点和第二节点;
以所述第一节点为起始节点、以所述第二节点为结束节点、以所述多个业务步骤为中间节点以及以所述跳转关系为边构建图结构。
4.根据权利要求3所述的方法,其特征在于,所述根据所述图结构中节点之间的连接关系识别所述图结构中的关键节点,包括:
根据所述图结构中节点之间的连接关系识别所述图结构中具有相同父节点的多个子节点;
识别所述图结构中的跳转节点;
确定所述子节点和所述跳转节点为关键节点。
5.根据权利要求3所述的方法,其特征在于,所述业务路径包括主业务路径以及扩展业务路径,所述方法还包括:
根据所述主业务路径在所述图结构中识别出主测试路径;
所述对每一关键节点进行路径探索,得到确定每一关键节点对应的测试路径,包括:
确定所述第一节点至每一关键节点的最短路径,得到每一关键节点对应的第一子测试路径;
基于所述主测试路径确定每一关键节点至所述第二节点的最短路径,得到每一关键节点对应的第二子测试路径;
根据每一关键节点对应的第一子测试路径和第二子测试路径确定每一关键节点对应的测试路径。
6.根据权利要求5所述的方法,其特征在于,所述基于所述主测试路径确定每一关键节点至所述第二节点的最短路径,得到每一关键节点对应的第二子测试路径,包括:
当关键节点与所述第二节点之间存在经过所述主测试路径的目标子测试路径时,确定所述目标子测试路径中的最短路径为关键节点对应的第二子测试路径;
当关键节点与所述第二节点之间不存在经过所述主测试路径的目标子测试路径时,确定关键节点与所述第二节点之间的最短路径为关键节点对应的第二子测试路径。
7.根据权利要求1所述的方法,其特征在于,对每一关键节点进行路径探索,得到每一关键节点对应的测试路径之后,还包括:
对每一关键节点对应的测试路径组成的测试路径集合进行去重,得到目标测试路径集合;
所述基于所述约束条件将所述测试路径扩展为多个测试场景,包括:
基于所述约束条件将所述测试操作路径集合中的每一测试路径扩展为多个测试场景。
8.根据权利要求1所述的方法,其特征在于,所述基于所述约束条件将所述测试路径扩展为多个测试场景,包括:
识别所述测试路径中的验证节点;
从所述约束条件中获取每个验证节点对应的验证规则;
根据所述验证规则将所述测试路径扩展为多个测试场景。
9.一种测试方法,其特征在于,所述方法包括:
获取目标产品的基础数据,所述基础数据中包含所述目标产品的需求数据;
基于所述需求数据采用权利要求1至8中任意一项所述的测试用例生成方法生成所述目标产品的测试用例;
采用所述测试用例对所述目标产品进行测试,得到测试结果。
10.一种测试用例生成装置,其特征在于,所述装置包括:
第一获取单元,用于获取目标产品的需求数据,并根据所述需求数据生成所述目标产品对应的系统用例模型,所述系统用例模型包括前置条件集合、多条业务路径以及所述业务路径中每个业务步骤的约束条件;
第一生成单元,用于根据所述业务路径生成图结构,所述图结构包括至少一个业务步骤对应的节点;
识别单元,用于根据所述图结构中节点之间的连接关系识别所述图结构中的关键节点,并对每一关键节点进行路径探索,得到每一关键节点对应的测试路径;
扩展单元,用于基于所述约束条件将所述测试路径扩展为多个测试场景;
第二获取单元,用于从所述前置条件集合中获取每一测试场景对应的目标前置条件,得到所述目标产品在每一测试场景下对应的测试用例。
11.一种测试装置,其特征在于,所述装置包括:
第三获取单元,用于获取目标产品的基础数据,所述基础数据中包含所述目标产品的需求数据;
第二生成单元,用于基于所述需求数据采用权利要求1至8中任意一项所述的测试用例生成方法生成所述目标产品的测试用例;
测试单元,用于采用所述测试用例对所述目标产品进行测试,得到测试结果。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8中任一项所述的测试用例生成方法或权利要求9所述的测试方法中的步骤。
13.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的测试用例生成方法或权利要求9所述的测试方法中的步骤。
14.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至8中任一项所述的测试用例生成方法或权利要求9所述的测试方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196789.9A CN113641591B (zh) | 2021-10-14 | 2021-10-14 | 测试用例生成方法及装置、测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196789.9A CN113641591B (zh) | 2021-10-14 | 2021-10-14 | 测试用例生成方法及装置、测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641591A true CN113641591A (zh) | 2021-11-12 |
CN113641591B CN113641591B (zh) | 2022-06-24 |
Family
ID=78426873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111196789.9A Active CN113641591B (zh) | 2021-10-14 | 2021-10-14 | 测试用例生成方法及装置、测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641591B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422385A (zh) * | 2022-03-28 | 2022-04-29 | 阿里云计算有限公司 | 网络系统测试用例的生成方法及系统 |
WO2023130569A1 (zh) * | 2022-01-05 | 2023-07-13 | 中兴通讯股份有限公司 | 产品测试方法、装置、计算机设备及存储介质 |
CN117251384A (zh) * | 2023-11-17 | 2023-12-19 | 南京掌控网络科技有限公司 | 一种接口自动化测试用例生成方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140165043A1 (en) * | 2012-07-30 | 2014-06-12 | Infosys Limited | System and method for functional test case generation of end-to-end business process models |
CN109117363A (zh) * | 2018-06-28 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
CN112100071A (zh) * | 2020-09-16 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN112241360A (zh) * | 2019-07-19 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、设备及存储介质 |
CN113238932A (zh) * | 2021-04-30 | 2021-08-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 测试用例自动生成方法 |
-
2021
- 2021-10-14 CN CN202111196789.9A patent/CN113641591B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140165043A1 (en) * | 2012-07-30 | 2014-06-12 | Infosys Limited | System and method for functional test case generation of end-to-end business process models |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
CN109117363A (zh) * | 2018-06-28 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN112241360A (zh) * | 2019-07-19 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、设备及存储介质 |
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
CN112100071A (zh) * | 2020-09-16 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN113238932A (zh) * | 2021-04-30 | 2021-08-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 测试用例自动生成方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023130569A1 (zh) * | 2022-01-05 | 2023-07-13 | 中兴通讯股份有限公司 | 产品测试方法、装置、计算机设备及存储介质 |
CN114422385A (zh) * | 2022-03-28 | 2022-04-29 | 阿里云计算有限公司 | 网络系统测试用例的生成方法及系统 |
CN114422385B (zh) * | 2022-03-28 | 2022-07-05 | 阿里云计算有限公司 | 网络系统测试用例的生成方法及系统 |
CN117251384A (zh) * | 2023-11-17 | 2023-12-19 | 南京掌控网络科技有限公司 | 一种接口自动化测试用例生成方法及系统 |
CN117251384B (zh) * | 2023-11-17 | 2024-01-30 | 南京掌控网络科技有限公司 | 一种接口自动化测试用例生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113641591B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN113641591B (zh) | 测试用例生成方法及装置、测试方法及装置 | |
CN108279932B (zh) | 一种移动终端动态配置用户界面方法和装置 | |
CN110851167B (zh) | 容器环境更新方法、装置、设备及存储介质 | |
CN110944048B (zh) | 业务逻辑配置方法及装置 | |
US10901804B2 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
US11089000B1 (en) | Automated source code log generation | |
Baker et al. | Intention-oriented programming support for runtime adaptive autonomic cloud-based applications | |
JPWO2017033441A1 (ja) | システム構築支援システム、方法および記憶媒体 | |
CN102929646A (zh) | 应用程序生成方法及装置 | |
EP1548581A2 (en) | Methods, apparatus and programs for system development | |
KR20140121832A (ko) | 중복 소비자 트랜잭션 규칙들의 필터링 기법 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN115617331A (zh) | 业务编排方法、装置、存储介质及电子设备 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
CN113835700A (zh) | 活动上线方法、装置、电子设备及计算机可读存储介质 | |
CN115994085A (zh) | 代码覆盖率的测试处理方法、装置、设备及存储介质 | |
CN114721932B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112691382B (zh) | 资源处理方法、装置及计算机可读存储介质 | |
Nguyen | Jump Start Node. js: Get Up to Speed With Node. js in a Weekend | |
CN112181407B (zh) | 业务实现处理方法及装置、系统、电子设备和存储介质 | |
CN113506099A (zh) | 申报业务的配置系统、方法、计算机设备和存储介质 | |
US11068468B2 (en) | Extensible validation framework | |
CN111078263A (zh) | 基于Drools规则引擎的热部署方法、系统、服务器及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40054554 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |