CN112559343A - 测试路径生成方法及相关设备 - Google Patents

测试路径生成方法及相关设备 Download PDF

Info

Publication number
CN112559343A
CN112559343A CN202011452919.6A CN202011452919A CN112559343A CN 112559343 A CN112559343 A CN 112559343A CN 202011452919 A CN202011452919 A CN 202011452919A CN 112559343 A CN112559343 A CN 112559343A
Authority
CN
China
Prior art keywords
data
state
tested
test
path
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
Application number
CN202011452919.6A
Other languages
English (en)
Other versions
CN112559343B (zh
Inventor
黄文昊
鲁四喜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011452919.6A priority Critical patent/CN112559343B/zh
Publication of CN112559343A publication Critical patent/CN112559343A/zh
Application granted granted Critical
Publication of CN112559343B publication Critical patent/CN112559343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

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

测试路径生成方法及相关设备
技术领域
本申请涉及软件测试应用领域,具体涉及一种测试路径生成方法及相关设备。
背景技术
在项目设计开发过程中,通常会针对项目某些(通常是功能性的)方面编写相应的测试用例,如基于实现某功能的业务流程图所包含的各测试路径,编写实现该功能的测试用例,通过执行该测试用例,实现对该项目相应功能的测试。
具体的,现有技术通常是采用如GraphWalker等基于模型的测试方法,来自动生成测试路径,进而基于这些测试路径生成所需的测试用例。但在测试路径的生成过程中,需要指定路径生成器以及结束条件,这就要求开发人员具有相关专业知识,对于生手而言,需要花费一定时间和精力进行学习,非常麻烦。
而且,基于所指定的结束条件,对业务流程图相应状态机图按边和/或顶点覆盖方式,生成测试路径的方式,无法保证所生成的测试路径的完整性,还可能会造成测试漏测的情况发生,降低测试结果可靠性和准确性。
发明内容
有鉴于此,为解决上述技术问题,本申请实施例提供如下技术方案:
一方面,本申请提出了一种测试路径生成方法,所述方法包括:
获取目标业务的待测试数据;
依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据;
按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径。
在一些实施例中,若所述待测试数据为状态流转文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
获取针对所述状态流转文件的结构化参数,其中,所述结构化参数包括所述状态流转文件中不同状态结点对应的数字化结点标识符,以及相邻状态结点之间的状态转换边对应的状态流转标识符;
按照所述结构化参数包含的所述数字化结点标识符和所述状态流转标识符,对所述状态流转文件进行结构化处理,得到包含所述状态流转文件的状态流转信息的结构化数据。
在一些实施例中,若所述待测试数据为源代码文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
识别所述源代码文件包含的枚举类型的状态结点枚举信息;
获取所述状态结点枚举信息的上下文信息;
依据所述上下文信息,提取所述源代码文件包含的调用链路;
利用所提取到的各所述调用链路,生成包含相应状态流转信息的结构化数据。
在一些实施例中,若所述待测试数据为业务流程图文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
提取所述业务流程图文件包含的关键信息,所述关键信息包括状态结点信息代码和状态转换边信息代码;
依据所述状态结点信息代码和所述状态转换边信息代码,生成包含所述业务流程图文件的状态流转信息的结构化数据。
在一些实施例中,所述按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径,包括:
获取所述结构化数据中状态转换边和状态结点各自的映射关系;
按照状态流转方向对所述结构化数据进行路径遍历,得到状态流转路径集合;
依据所述映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
在一些实施例中,所述获取所述结构化数据中状态转换边和状态结点各自的映射关系,包括:
获取所述结构化数据包含的数字化结点关系;
利用所述数字化结点关系,得到所述结构化数据中各数字化结点与结点状态信息之间的结点映射关系;
依据所述数字化结点关系,获得所述结构化数据包含的状态转换边关系;
利用所述状态转换边关系,得到所述结构化数据中各状态转换边与边状态流转信息之间的边映射关系;
所述依据所述映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径,包括:
利用所述结点状态信息和所述边状态流转信息,按照所述结点映射关系和所述边映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
在一些实施例中,所述方法还包括:
获得针对所述全量测试路径的可行性评估请求;
响应所述可行性评估请求,依据所述结构化数据,对所述全量测试路径进行分析,得到不可行测试路径;
剔除所述全量测试路径包含的所述不可行测试路径,得到待评估测试路径;
对所述待评估测试路径进行评估,得到相应的可行性评估值;
依据所述可行性评估值,对多个所述待评估测试路径进行编译,得到所述目标业务的测试用例。
又一方面,本申请还提出了一种测试路径生成装置,所述装置包括:
待测试数据获取模块,用于获取目标业务的待测试数据;
结构化数据得到模块,用于依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据;
全量测试路径得到模块,用于按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径。
又一方面,本申请还提出了一种计算机设备,所述计算机设备包括:
通信接口;
存储器,用于存储实现如上述的测试路径生成方法的程序;
处理器,用于加载并执行所述存储器存储的所述程序,以实现如上述的测试路径生成方法的各步骤。
又一方面,本申请还提出了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现如上述的测试路径生成方法的各步骤。
基于上述技术方案得知,本申请实施例提供了一种测试路径生成方法、装置、计算机设备及可读存储介质,由于不同业务的不同测试场景下的待测试数据的数据类型可能不同,如业务流程图文件、状态机图、源代码文件等,为了满足不同业务测试需求,计算机设备获取目标业务的待测试数据后,将依据其数据类型对应的数据处理规则,对待测试数据进行结构化处理,得到包含该待测试数据的状态流转信息的结构化数据,再按照深度优先搜索方式,对所得结构化数据进行路径遍历,快速且可靠地得到待测试数据包含的全量测试路径,节省了时间成本,保证所得测试路径的全面性,并使其具有一定的审查依据,使所得全量测试路径具有可评估性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种状态机图文件示意图;
图2a为测试路径生成方法的一可选实现方式;
图2b为测试路径生成方法的又一可选实现方式;
图2c为测试路径生成方法的又一可选实现方式;
图3为适用于本申请提供的测试路径生成方法和装置的分布式系统的一可选示例的结构示意图;
图4为本申请提供的测试路径生成方法的一可选示例的流程示意图;
图5为本申请提供的测试路径生成方法的又一可选示例的流程示意图;
图6为本申请提供的测试路径生成方法中,针对目标业务的状态流转文件的结构化参数示意图;
图7为本申请提供的测试路径生成方法的又一可选示例的流程示意图;
图8为本申请提供的测试路径生成方法的又一可选示例的流程示意图;
图9为本申请提供的测试路径生成装置的一可选示例的结构示意图;
图10为适用于本申请提供的测试路径生成方法和装置的计算机设备的一可选示例的硬件结构示意图。
具体实施方式
针对背景技术部分描述的内容,参照图1所示的某一业务流程图的状态机图,目前在根据状态机图生成测试路径的过程中,可以使用GraphWalker算法按边覆盖,如执行“java-jar graphwalker-cli-4.2.0.jar offline-mdemo1.graphml"random(edge_coverage(100))">out_10041.txt”这一命令,生成用来编写相应测试用例的测试路径,如图2a所示的一个测试路径的表示方式,但并不局限于此;或者是使用GraphWalker算法按顶点覆盖,如执行“java-jar graphwalker-cli-4.2.0.jar offline-m demo1.graphml"random(vertex_coverage(100))">out_10042.txt”这一命令,生成测试路径,如图2b所示的一个测试路径的表示方式,但并不局限于此。
通过对上文描述的两种测试路径生成方式的分析可知,使用常规的GraphWalker算法,无论是按边覆盖还是按顶点覆盖方式,都无法保证覆盖到所有的测试路径,若出现测试路径遗漏,就会导致相应业务的至少部分功能漏测,影响测试用例评估结果的可靠性和准确性。
对此,本申请提出使用非常规的GraphWalker算法,来生成测试路径,如图2c所示的一个测试路径的表示方式,即不设置终止条件,以使该算法不断循环探索测试路径,这种测试路径生成方法可能会生成全量测试路径,但这种方式无法可靠判断所生成的测试路径是否完整;且针对不同测试场景下的不同结构的状态机图,按照这种非常规的GraphWalker算法对其进行检索,得到全量测试路径所花费的检索时间是不确定的,这就要求测试人员(如编程人员)具有一定的经验积累,增加了对测试人员的专业度要求,也会增加时间成本内耗,降低测试效率。
针对上述技术问题,为了满足不同业务的测试需求,本申请针对不同测试场景下的不同类型的待测试数据,可以采用相应的方式,生成状态流转的结构化数据,即由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理,之后,可以利用结构化数据所具有的特点,基于深度优先搜索(DepthFirst Search,DFS)的思想,生成状态流转全路径,避免测试测漏情况的发生,提高了测试效率,且使得所生成的各测试路径是否为全量测试路径有一定的审查依据,即使所得测试路径具有可评估性,以便据此编译得到目标业务可靠的测试用例。
其中,对于上述测试路径生成过程,如对结构化数据进行路径遍历的实现过程,本申请可以结合人工智能(ArtificialIntelligence,AI)技术实现,以提高测试路径生成效率及可靠性。
人工智能技术是是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。在本申请实施例中,主要利用人工智能在软件层面的技术,如云计算、分布式存储、大数据处理技术、机器学习/深度学习等方面的算法,对不同业务的待测试数据进行处理,以得到相应业务的全量测试路径,进而保证对其进行编译得到的测试用例的完整性和可靠性,实现对该业务的全面测试,提高测试结果的可靠性和精准度,具体实现过程本申请在此不做详述。
对于上述各业务的待测试数据、所得到的全量测试路径、基于该全量测试路径得到的测试用例等数据,可以采用分布式存储方式进行存储,以便编程人员或测试人员等用户调用查看。其中,该分布式存储方式具体可以采用区块链(Blockchain)系统实现,参照图3所示的分布式系统结构示意图,该分布式系统可以由客户端、多个节点(接入网络中的任意形式的计算机设备,如服务器、用户终端等)通过网络通信的形式连接形成,但并不局限于图3所示的分布式系统结构。
对于上述分布式系统中的各节点之间,可以形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议,在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层等,本申请对各节点的功能实现过程不做详述,可视情况而定。
示例性的,对于区块链系统中的应用层,可以是根据实际业务需求而实现的特定业务,记录实现功能相关的数据,如上述待测试数据、测试路径、测试用例等,于此同时还可以携带数字签名以表示相应数据的来源,将这些数据发送至区块链系统中的其他节点,供其他节点验证数据来源等。本申请对构成区块链系统的各区块链之间的连接关系及各自的区块结构不做限制,可视情况而定。
可见,由于区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。所以,本申请实施例提出的测试路径生成方式适用于上述区块链系统,能够提高所生成的各业务的全量测试路径、测试用例的安全性及可靠性。
下面将结合本申请实施例中的附图,对本申请上文描述的测试路径生成的技术方案进行清楚、完整地描述,可以理解,下文所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。且应当理解,本申请中使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。以下术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
还有,本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
参照图4,为本申请提供的测试路径生成方法的一可选示例的流程示意图,该方法可以适用于计算机设备,该计算机设备可以为具有一定数据处理能力的终端或服务器,该终端可以是智能手机、平板电脑、个人计算机(personal computer,PC)、上网本、机器人、台式计算机等电子设备;服务器可以是独立的物理服务器,也可以是由多台物理服务器,也可以是支持云计算的云服务器等,该服务器可以通过有线网络或无线网络实现与终端的通信连接,实现两者之间的数据传输,具体实现可以依据业务测试场景确定,本申请在此不做一一详述。
基于上述描述,如图4所示,本实施例提出的测试路径生成方法可以包括:
步骤S11,获取目标业务的待测试数据;
其中,目标业务可以是需要进行软件功能测试的任一具有状态流转的业务,该状态流转是分布式事务的一种实现方式,能够描述该业务中不同对象的行为状态,以及不同对象的不同状态之间的转变关系及其对应的执行动作等信息。因此,该目标业务的待测试数据可以是包含目标业务的状态流转信息的数据,如业务流程图、状态机图或源代码文件等,本申请对该待测试数据的内容不做限制。
在本申请实际应用中,在用户需要对目标业务的某功能进行测试的情况下,可以登录终端中的相应测试客户端,获取本地存储的目标业务的待测试数据,或向服务器发起针对目标业务的测试请求,以使该服务器响应该测试请求,将获取的目标业务的待测试数据反馈至测试客户端,由测试客户端据此生成用以获得测试用例的测试路径;或者是在服务器响应该测试请求过程中,按照本申请实施例提出的测试路径生成方式,得到该目标业务的全量测试路径后反馈至测试客户端,以使用户利用这些测试路径编译得到测试用例;当然,也可以由服务器生成目标业务的测试用例后反馈至测试客户端等,本申请对步骤S11的具体实现方法不做限制。
步骤S12,依据与待测试数据的数据类别对应的数据处理规则,对待测试数据进行结构化处理,得到包含待测试数据的状态流转信息的结构化数据;
结合上文描述,待测试数据的数据类型可以包括但并不局限于业务流程图、状态机图或源代码文件等,在不同的业务测试场景下,所获取的目标业务的待测试数据的数据类型可能不同,为了满足不同业务测试需求,本申请提出了多种数据处理规则,适用于不同数据类型的待测试数据,用以将该待测试数据进行结构化处理,以得到相应的结构化数据,便于后续能够对该结构化数据进行处理。因此,在计算机设备获取目标业务的待测试数据后,可以先确定该待测试数据的数据类型,再选择与其对应的数据处理规则,从而按照所选择的数据处理规则,对获取的待测试数据进行结构化处理,得到相应的状态流转的结构化数据,具体实现过程本申请实施例在此不做详述。
由于结构化数据可以称作行数据,可以是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,可以通过关系型数据库进行存储和管理。可见,相对于直接对待测试数据进行路径提取,本申请实施例将目标业务的待测试数据转换为结构化数据进行后续处理的方式,使得路径提取更加容易,且使所得到的每一个测试路径有相应的查询依据,便于对其进行可行性评估。
步骤S13,按照深度优先搜索方式,对该结构化数据进行路径遍历,得到待测试数据包含的全量测试路径。
在本申请实施例中,对于目标业务的不同类型的待测试数据,可以采用相对应的数据处理规则,将其转换处理为包含目标业务的状态流转信息的结构化数据,使得实现步骤S13所采用的深度学习算法能够识别该结构化数据包含的状态流转信息,解决了该深度学习算法无法直接识别某些数据类型(如业务流程图)的待测试数据,以得到用以编译测试用例所需的测试路径的技术问题,且提高了测试路径生成效率及可靠性。
具体的,结合上文对本申请提出的测试路径生成方法的技术构思的相关描述,本申请将利用深度优先搜索算法(Depth First Search,DFS)的思想,生成状态流转全路径。该深度优先搜索属于图算法的一种,简要来说,就是对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次,本申请对深度优先搜索算法所具有的工作原理实现过程不做详述。
基于上述分析,在本申请实施例中,可以根据结构化数据中已数字化的状态流转的方向,依次逐条进行路径遍历,得到路径集合,再依据结构化数据中状态流转边结点映射关系,具体化该路径集合,得到用以MBT建模的测试路径,本申请对如何按照DFS思路,对所得目标业务的结构化数据的路径遍历,得到全量测试路径的实现过程不做详述。
综上所述,由于实际应用中,不同业务的不同测试场景下的待测试数据的数据类型可能不同,如业务流程图文件、状态机图、源代码文件等,为了满足不同业务测试需求,本申请实施例的计算机设备获取目标业务的待测试数据后,将依据其数据类型对应的数据处理规则,对待测试数据进行结构化处理,得到包含该待测试数据的状态流转信息的结构化数据,再通过深度优先搜索方式等深度学习算法,对所得结构化数据进行路径遍历,保证了所得待测试数据包含的全量测试路径的全面性,避免了目标业务的测试漏测的可能,进而保证了由此得到的测试用例的测试结果的可靠性及准确性,且使所得全量测试路径具有一定的审查依据,即使其具有可评估性,相对于上文描述的非常规的GraphWalker算法所实现的测试路径生成方式,极大提高了目标业务测试效率及可靠性。
参照图5,为本申请提供的测试路径生成方法的又一可选示例的流程示意图,本实施例可以是对上述实施例描述的测试路径生成方法的一可选细化实现方式,主要是对上述实施例描述的结构化数据获取过程的细化描述,但并不局限于本实施例描述的这种结构化数据获取方式,可以依据目标业务的具体测试场景确定。如图5所示,该方法可以包括:
步骤S21,获取目标业务的状态流转文件;
状态流转图是一种用于描述状态之间流转过程的需求文档,如产品的订单流、审批流等一类的需求应用,本申请对状态流转图的具体构建过程不做详述。
步骤S22,获取针对该状态流转文件的结构化参数;
继上文描述,若计算机设备能够直接得到目标业务的状态流转文件,由于该状态流转文件能够直接包含不同状态间的流转信息,可以直接对其进行结构化处理,得到包含状态流转信息的结构化数据。因此,在这种情况下,为了将目标业务的状态流转文件抽象成数字化结点,可以预先配置相关状态流转的结构化参数,即不同状态结点对应的数字化标记等,本申请对该结构化参数包含的内容及其配置实现方法不做限制。
在本申请提出的一些实施例中,可以按照后续DFS算法的入参要求,实现对目标业务的状态流转的结构化参数的配置,该配置过程可以在外部设备上完成后,发送至计算机设备,也可以由计算机设备直接识别状态机图各状态结点信息,以及不同状态结点之间的状态流转边信息,配置对应的数字化标记,得到该状态流转文件的结构化参数。
示例性的,仍以图1所示的状态机图对应的状态流转文件为例进行说明,本申请可以由不同的数字来表示不同的状态结点,参照图6所示的状态流转的结构化参数配置示意图,如0表示状态结点‘N1’的数字化标记;1表示状态结点‘start’的数字化标记;2表示状态结点‘N2’的数字化标记,依次类推,直至确定出状态机图中所有状态结点对应的数字化标记,但并不局限于本实施例描述的这种数字化标记内容及配置方式。
而对于不同状态结点之间的状态流转,可以采用相应的参数来描述该状态流转,如从0(即状态结点‘N1’)到3(即状态结点‘N4’)有一个状态流转边‘e3’,如图6所示,可以将其描述为{‘source’:0,‘target’:3,‘value’:‘e3’},依次类推,可以得到其他状态流转边的描述内容,本申请在此不做一一列举。
由此可见,本申请获取的状态流转文件的结构化参数可以包括:该状态流转文件中不同状态结点对应的数字化结点标识符,以及相邻状态结点之间的状态转换边对应的状态流转标识符等,本申请对该结构化参数的内容及其配置过程不做限制,并不局限于上文图6所示的内容,可视情况进行适应性调整,本申请不做详述。
步骤S23,利用该结构化参数包含的数字化结点标识符和状态流转标识符,得到包含状态机图的状态流转信息的结构化数据;
本申请实施例中,可以按照上述确定的如图6所示的结构化参数,对获取的状态流转文件进行处理,得到相应的结构化数据,即按照所预先定义的结构化参数对状态机图中的各结点和边进行转换,具体实现过程本申请不做详述。
步骤S24,获取该结构化数据包含的状态转换边和状态结点各自的映射关系;
步骤S25,按照状态流转方向对结构化数据进行路径遍历,得到状态流转路径集合;
步骤S26,依据上述得到的映射关系,对状态流转路径集合包含的各状态流转路径进行具体化处理,得到目标业务的全量测试路径。
基于上文对DFS构思的相关描述,将状态机图转换为结构化数据后,可以根据已数字化的状态流转的方向,依次逐条进行路径遍历,得到数字化状态流转的路径集合,之后,可以依据结构化数据中,各数字化结点和状态转换边各自所表示的目标业务的相关信息,即状态转换边和状态结点各自的映射关系,对所得路径集合中的各状态流转路径进行具体化,得到适用于目标业务的全量测试路径,即由该目标业务的相关信息描述各状态流转路径,具体实现过程本申请不做详述。
综上,在本申请实施例中,若计算机设备能够直接获取目标业务的状态流转文件,可以直接利用预先配置的结构化参数所包含的数字化结点标识符和状态流转标识符,对状态流转文件进行转换处理,得到相应的结构化数据后,获取该结构化数据包含的状态转换边与状态结点各自的映射关系,并按照状态流转方向对该结构化数据进行路径遍历,得到状态流转路径集合后,依据上述获取的映射关系,对集合中各状态流转路径进行具体化处理,得到该目标业务的全量测试路径,且使得所得测试路径的全面性具有一定的审查依据,能够据此确定所得测试路径是否为全量测试路径,避免了目标业务的测试漏测的可能,且相对于上文描述的非常规的GraphWalker算法所实现的测试路径生成方式,极大提高了目标业务测试效率及可靠性。
参照图7,为本申请提供的测试路径生成方法的又一可选示例的流程示意图,本实施例可以是对上述实施例描述的测试路径生成方法的又一可选细化实现方式,区别于上文实施例描述的直接获取目标业务的状态流转文件的测试场景,本申请实施例主要对在先未绘制目标业务的状态流转文件的情况下,如何利用目标业务的源代码文件,来得到相应的结构化数据,进而获得目标业务的全量测试路径,但并不局限于本实施例描述适用于该测试场景的实现方式。如图7所述,该方法可以包括:
步骤S31,获取目标业务的源代码文件;
其中,源代码文件可以是支持目标业务的正常运行的源代码,即针对该目标业务开发的代码。计算机设备可以从目标业务的业务服务器或业务终端等获取其源代码文件,本申请对该目标业务的源代码文件的获取方式及其包含的内容不做限制。
步骤S32,识别该源代码文件包含的枚举类型的状态结点枚举信息;
步骤S33,获取该状态结点枚举信息的上下文信息;
步骤S34,依据该上下文信息,提取源代码文件包含的调用链路;
步骤S35,利用所提取到的各调用链路,生成包含相应状态流转信息的结构化数据;
继上文描述,源代码文件支持实现目标业务,包含有目标业务运行过程中所产生的各种状态结点,以及不同状态结点之间的流转关系等信息,对于目标业务运行过程中产生的各状态结点,在编写相应的源代码时,通常会枚举定义各状态结点,因此,在获得目标业务的源代码文件,识别该源代码文件过程中,可以直接提取其包含的枚举类型的状态结点枚举信息,如各状态结点的枚举值,本申请对各状态结点的枚举定义内容不做限制。
按照上述方式,确定源代码文件包含的各状态结点枚举信息,及其在整个源代码文件中的位置后,可以利用代码扫描组件,扫描相应代码定位所使用的枚举定义的上下文,即获取各状态结点枚举信息的上下文信息,本申请对该上下文信息的获取方式及其内容不做限制,可视情况而定。
之后,计算机设备可以通过对所获取的各上下文信息进行分析,得到各状态结点的调用链路,由于该调用链路能够包含不同状态结点之间的流转关系,通过对提取到的各调用链路进行分析,可以得到包含目标业务的状态流转信息的结构化数据,后续可以直接对该结构化数据进行分析,得到用以编译目标业务的测试用例的全量测试路径,相对于直接对目标业务的源代码文件进行测试路径提取,极大提高了测试路径生成效率和可靠性。
需要说明,关于如何利用目标业务的源代码文件,生成该目标业务的状态流转的结构化数据的具体实现过程,并不局限于本实施例描述的这种实现方式。
步骤S36,获取该结构化数据包含的数字化结点关系;
步骤S37,利用该数字化结点关系,得到结构化数据中各数字化结点与结点状态信息之间的结点映射关系;
继上文对本申请技术构思的描述,本申请将利用DFS的思想,生成目标业务的全量测试路径,所以,在从业务侧获取目标业务的源代码文件,按照上述方式生成包含该目标业务的状态流转信息的结构化数据后,可以利用DFS的运算原理,根据已数字化的状态流转的方向,依次逐条进行路径遍历,生成路径集合。
具体的,计算机设备可以从结构化数据中提取数字化结点关系,每个数字化结点是对目标业务的相应时刻的业务状态,抽象而成的数据化结点进行结构化处理而得到的,因此,数字化结点关系可以表明该目标业务的不同业务状态之间的关系,为了后续得到表明目标业务的状态流转关系的测试路径,此处可以确定不同数字化结点与相应的结点状态信息(如上述相应时刻的业务状态等)之间的结点映射关系,这样,在得到数字化结点路径后,可以利用该映射关系进行具体化,得到相应结点状态路径。
需要说明,本申请对上述结点映射关系的具体表示方式及其存储方式不做限制。可以理解,在目标业务的源代码文件发生更新的情况下,可以按照上述方式更新相应的结点映射关系,保证所存储的结点映射关系与目标业务实际业务状态流转信息相匹配,具体更新实现过程不做详述。
步骤S38,依据数字化结点关系,获得结构化数据包含的状态转换边关系;
步骤S39,利用状态转换边关系,得到结构化数据中各状态转换边与边状态流转信息之间的边映射关系;
参照上文结点映射关系的获取方式,本申请实施例可以按照类似的方式,提取状态转换边关系和边映射关系。可以理解,由于每个状态转换边表示的对应的两个状态结点所表示的业务状态之间的流转关系,通过上述提取到的各状态结点关系,可以得到相应的状态转换边关系,据此可以进一步得到结构化数据中,各状态转换边与其表示的边状态流转信息之间的映射关系,记为边映射关系。
其中,上述边映射关系可以与上述结点映射关系类似,可以随着目标业务的源代码文件的更新而更新,本申请对其更新方式、表示方式及存储方式均不作限制,可视情况而定。
步骤S310,按照状态流转方向对结构化数据进行路径遍历,得到状态流转路径集合;
本申请实施例中,按照上述方式得到结构化数据包含的数字化结点关系和状态转换边关系后,可以由此生成类似树结构的结构化的状态流转图,之后,可以遍历该状态流转图(即一种有向图),得到其包含的所有状态流转路径,构成状态流转路径集合,本申请对该状态流转路径集合的具体生成方法不做详述。
其中,在遍历状态流转图的过程中,可以从多个数字化结点发起,按照状态流转方向进行深入搜索到不能深入为止,得到相应的一条状态流转路径,即该状态流转图的一个连通分量;当然,本申请也可以从某个结点v出发,再从该结点v的未被访问的邻接点出发,对状态流转图进行深度优先遍历,直至状态流转图中和该结点v有路径相通的结点被访问,若该状态流转图中尚有结点未被访问,可以从该未被访问的结点出发,重新进行深度优先遍历,直至状态流转图中所有结点均被访问过为止等,本申请对步骤S310的具体实现过程不做限制。
步骤S311,利用结点状态信息和边状态流转信息,按照结点映射关系和边映射关系,对状态流转路径集合包含的各状态流转路径进行具体化处理,得到目标业务的全量测试路径。
结合上文对结构化数据的相关描述,之间对该结构化数据进行路径遍历,所得到得到各状态流转路径中,是由不同的数字化结点和边表示,无法直观得知目标业务的业务状态流转,所以,本申请将利用各数字化结点各自所表示的结点状态信息,以及各状态转换边各自所表示的边状态流转信息,按照上述获取的结点映射关系和边映射关系,对得到的各状态流转路径进行具体化,得到目标业务的全量测试路径,用于通过基于MBT建模方式,得到该目标业务的测试用例,具体实现过程不做详述。
需要说明,关于如何按照DFS方式,对结构化数据进行路径遍历,得到目标业务的待测试数据包含的全量测试路径的实现过程,并不局限于本实施例上文相应部分描述的实现方式,本申请仅以此为示例进行说明,可以根据实际应用需求对其进行适应性调整,均属于本申请保护范围,本申请在此不做一一详述。
综上,在本申请实施例中,在没有目标业务的状态机图、业务流程图的情况下,计算机设备可以直接从业务侧获取目标的源代码文件,通过识别该源代码文件包含的状态结点枚举信息及其上下文信息,得到不同状态结点对应的调用链路,从而据此生成包含目标业务的状态流转信息的结构化数据,之后,可以利用DFS的思想,对数字化结点的状态流转进行有向路径遍历,得到状态流转路径集合,再依据该结构化数据包含的各数字化结点与结点状态信息之间的结点映射关系,以及各状态转换边与边状态流转信息之间的边映射关系,对各状态流转路径进行具体化,即可得到目标业务的全量测试路径,使得该测试路径的全面性具有一定的审查依据,且提高了目标业务的测试效率及可靠性,降低了测试成本。
本申请还提出了又一些实施例中,区别于上文实施例描述的直接获取目标业务的状态流转文件、目标业务的源代码文件的测试场景,本申请还可能会获得目标业务的业务流程图文件,但这种情况下,本申请上文提出的适用于对结构化数据处理的深度学习算法,可能无法直接识别该业务流程图文件,需要先将其转换为结构化数据,再按照如上文描述的处理方式,按照DFS方式,继续对所得结构化数据进行路径遍历,得到该业务流程图文件包含的全量测试路径,本申请在此主要对如何获取业务流程图文件的结构化数据的过程进行描述,关于后续对结构化数据进行处理过程,可以参照但并不局限于上文实施例相应部分的描述,本申请实施例在此不做详述。
具体的,计算机设备获取目标业务的业务流程图文件,如基于目标业务的源代码得到的相应的.graphml图,其通常可以是xml(Extensible Markup Language,可扩展标记语言)格式的文件,计算机设备可以通过python(计算机程序设计语言)提取其中的关键信息,即提取该业务流程图文件包含的关键信息,该关键信息可以包括但并不局限于状态结点信息代码和状态转换边信息代码等,可依据实际应用需求预先配置确定的,之后,计算机设备可以依据该状态结点信息代码和状态转换边信息代码,生成包含业务流程图文件的状态流转信息的结构化数据。
需要说明,本申请对上述状态结点信息代码和状态转换边信息代码各自包含的内容不做限制,可以依据上述功能需求,按照相应的编码要求等确定,可以理解,计算机设备执行该状态结点信息代码,可以提取上述业务流程图文件包含的各状态结点信息,执行该状态转换边信息代码,可以提取上述业务流程图文件包含的不同状态结点之间的转换边信息。
其中,业务流程图文件可以是状态机图,状态机是一种行为,说明对象在其生命周期中响应事件所经历的状态变化序列,以及对那些时间的响应。本申请实施例中,状态机可以依附于用例(如目标业务的测试用例)、操作、协作等元素上,用来描述它们的执行过程,具体可以从对象的初始状态开始,响应事件并执行某些动作,从而引起状态的转换,得到新状态,并在新状态下继续响应事件并执行动作,如此循环进行到对象的终结状态。利用该过程中的状态和转换可以构成相应的状态机图,如上述图1所示,用以对目标业务的业务对象在其生命周期中的各种状态及状态的转换,本申请对目标业务的状态机图的具体构建过程不做详述。
基于上述各细化实施例的描述内容可知,参照图8所示的流程示意图,针对不同的业务测试场景和需求,如上文列举的已知目标业务的状态流转文件或源代码文件或业务流程图文件等不同测试场景,本申请预先配置了不同的数据处理规则,对不同数据类型的待测试数据进行结构化处理,都转换为结构化数据后再执行后续步骤,具体如上文各细化实施例相应部分的描述,针对不同的数据处理规则,可以配置相应的算法调用接口,这样,确定本次获取的待测试数据的数据类型后,可以调用与该数据类型对应的算法调用接口,执行相应的数据处理规则,将待测试数据转换为结构化数据,再对其进行路径遍历,得到全量测试路径。
可见,对于不同的业务待测试数据,按照本申请提出的测试路径生成方法,都可以快速且可靠地得到全量测试路径,满足了不同业务的测试需求,实现了本申请提出的这种测试路径生成方法的多样性。
基于上文各实施例描述的测试路径生成方法,得到目标业务的全量测试路径后,可以对其各测试路径进行可行性评估,以得到用以测试该目标业务的测试用例。因此,在上述各实施例的基础上,如图9所示,该方法还可以包括:
步骤S41,获得针对全量测试路径的可行性评估请求;
在本申请实施例中,编程人员或测试人员通过计算机设备获得针对目标业务的全量测试路径后,可以编译用以测试该目标业务的测试用例,这种情况下,可以在测试终端上针对所得全量测试路径发起可行性评估请求,如选择针对该全量测试路径生成测试用例的功能按钮等,本申请对该可行性评估请求的生成方式不做限制,可视情况而定。
步骤S42,响应可行性评估请求,依据相应的结构化数据,对全量测试路径进行分析,得到不可行测试路径;
其中,结构化数据是对目标业务的待测试数据进行结构化处理得到的,具体实现过程可以参照上述实施例相应部分的描述,本实施例不做赘述。且如上述分析,本申请通过DFS方式对结构化数据进行路径遍历,使得所得测试路径具有一定审查依据,本实施例可以依据该审查依据,对相应的测试路径进行可行性评估分析,以确定该测试路径是否可行,得到不可行测试路径,具体实现过程本申请不做详述。
步骤S43,剔除全量测试路径包含的不可行测试路径,得到待评估测试路径;
在实际测试过程中,为了减少不必要的测试,占用测试时间,降低测试效率,本申请可以不用模拟执行确定的不可行的测试路径,所以,在编译测试用例前,可以先从所得到的全量测试路径中,剔除不可行测试路径。
步骤S44,对待评估测试路径进行评估,得到相应的可行性评估值;
步骤S45,依据可行性评估值,对多个待评估测试路径进行编译,得到目标业务的测试用例。
经过上述对全量测试路径的初步筛选后,可以对得到的各待评估测试路径进行评估,得到相应的可行性评估值,如可行性概率值,之后,可以按照该可行性评估值从大到小的排序结果,对多个待评估测试路径进行编译,得到目标业务的测试用例,本申请对该测试用例的具体编译实现过程不做详述。
由此可见,本申请实施例按照上述方式,能够快速且可靠得到目标业务的全量测试路径,避免对目标业务测试漏测的可能,从而保证测试结果的准确性和可靠性;且在编译该目标业务的测试用例过程中,通过可行性评估结果,剔除不可行测试路径,减少了执行不可行测试路径所占用的测试时间,进一步提高了测试效率以及测试结果的精准度。
参照图9,为本申请提出的测试路径生成装置的一可选示例的结构示意图,该装置可以适用于计算机设备,如图9所示,该装置可以包括:
待测试数据获取模块11,用于获取目标业务的待测试数据;
结构化数据得到模块12,用于依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据;
全量测试路径得到模块13,用于按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径。
在一种可能的实现方式中,若上述待测试数据为状态流转文件,上述结构化数据得到模块12可以包括:
结构化参数获取单元,用于获取针对所述状态流转文件的结构化参数;
其中,所述结构化参数包括所述状态流转文件中不同状态结点对应的数字化结点标识符,以及相邻状态结点之间的状态转换边对应的状态流转标识符;
第一结构化数据得到单元,用于按照所述结构化参数包含的所述数字化结点标识符和所述状态流转标识符,对所述状态流转文件进行结构化处理,得到包含所述状态流转文件的状态流转信息的结构化数据。
在又一种可能的实现方式中,若上述待测试数据为源代码文件,上述结构化数据得到模块12可以包括:
状态结点枚举信息识别单元,用于识别所述源代码文件包含的枚举类型的状态结点枚举信息;
上下文信息获取单元,用于获取所述状态结点枚举信息的上下文信息;
调用链路提取单元,用于依据所述上下文信息,提取所述源代码文件包含的调用链路;
第二结构化数据得到单元,用于利用所提取到的各所述调用链路,生成包含相应状态流转信息的结构化数据。
在又一种可能的实现方式中,若上述待测试数据为业务流程图文件,上述结构化数据得到模块12可以包括:
关键信息提取单元,用于提取所述业务流程图文件包含的关键信息,所述关键信息包括状态结点信息代码和状态转换边信息代码;
第三结构化数据得到单元,用于依据所述状态结点信息代码和所述状态转换边信息代码,生成包含所述业务流程图文件的状态流转信息的结构化数据。
在本申请提出的又一些实施例中,基于上述各实施例描述的测试用例生成装置,上述全量测试路径得到模块13可以包括:
映射关系获取单元,用于获取所述结构化数据中状态转换边和状态结点各自的映射关系;
可选的,映射关系获取单元可以包括:
数字化结点关系获取单元,用于获取所述结构化数据包含的数字化结点关系;
结点映射关系得到单元,用于利用所述数字化结点关系,得到所述结构化数据中各数字化结点与结点状态信息之间的结点映射关系;
状态转换边关系获得单元,用于依据所述数字化结点关系,获得所述结构化数据包含的状态转换边关系;
边映射关系得到单元,用于利用所述状态转换边关系,得到所述结构化数据中各状态转换边与边状态流转信息之间的边映射关系;
路径遍历单元,用于按照状态流转方向对所述结构化数据进行路径遍历,得到状态流转路径集合;
全量测试路径得到单元,用于依据所述映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
可选的,该全量测试路径得到单元可以包括:
全量测试路径得到子单元,用于利用所述结点状态信息和所述边状态流转信息,按照所述结点映射关系和所述边映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
在上述各实施例描述的测试用例生成装置的基础上,该装置还可以包括:
可行性评估请求获得模块,用于获得针对所述全量测试路径的可行性评估请求;
不可行测试路径得到模块,用于响应所述可行性评估请求,依据所述结构化数据,对所述全量测试路径进行分析,得到不可行测试路径;
待评估测试路径得到模块,用于剔除所述全量测试路径包含的所述不可行测试路径,得到待评估测试路径;
可行性评估值得到模块,用于对所述待评估测试路径进行评估,得到相应的可行性评估值;
测试用例得到模块,用于依据所述可行性评估值,对多个所述待评估测试路径进行编译,得到所述目标业务的测试用例。
需要说明的是,关于上述各装置实施例中的各种模块、单元等,均可以作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块,以实现相应的功能,关于各程序模块及其组合所实现的功能,以及达到的技术效果,可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
本申请还提供了一种可读存储介质,其上可以存储计算机程序,该计算机程序可以被处理器调用并加载,以实现上述实施例描述的测试路径生成方法的各个步骤。
本申请还提出了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述测试路径生成方法方面或测试路径生成装置方面的各种可选实现方式中所提供方法,具体实现过程可以参照上述相应实施例的描述,不做赘述。
参照图10,为适用于本申请实施例提供的测试路径生成方法和装置的一可选计算机设备实施例的硬件结构示意图,参照图10,该计算机设备可以包括:通信接口21、存储器22以及处理器23。
在本申请实施例中,通信接口21、存储器22、处理器23的数量可以为至少一个,且通信接口21、存储器22、处理器23可以通过通信总线完成相互间的通信;
通信接口21可以为通信模块的接口,如GSM模块、WIFI模块或其他无线/有线通信网络的通信接口,可以实现与其他设备的数据交互,还可以包括如USB接口、串/并口等接口,用于实现计算机设备内部组成部件之间的数据交互,可以根据该计算机设备的产品类型确定,本申请不做一一详述。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。在本申请中,该存储器22可以存储实现本申请实施例提供的测试路径生成方法的程序。
处理器13可能是中央处理器(Central Processing Unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。在本申请实施例中,处理器23可以调用存储器22所存储的程序可以实现本申请实施例提供的测试路径生成方法的各步骤,具体实现过程可以参照上述实施例相应部分的描述,本实施例在此不做赘述。
应该理解的是,图10所示的计算机设备的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中,计算机设备可以包括比图10所示的更多或更少的部件,或者组合某些部件,本申请在此不做一一列举。
最后,需要说明,本说明书中各个实施例采用递进或并列的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置和计算机设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的核心思想或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种测试路径生成方法,其特征在于,所述方法包括:
获取目标业务的待测试数据;
依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据;
按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径。
2.根据权利要求1所述的方法,其特征在于,若所述待测试数据为状态流转文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
获取针对所述状态流转文件的结构化参数,其中,所述结构化参数包括所述状态流转文件中不同状态结点对应的数字化结点标识符,以及相邻状态结点之间的状态转换边对应的状态流转标识符;
按照所述结构化参数包含的所述数字化结点标识符和所述状态流转标识符,对所述状态流转文件进行结构化处理,得到包含所述状态流转文件的状态流转信息的结构化数据。
3.根据权利要求1所述的方法,其特征在于,若所述待测试数据为源代码文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
识别所述源代码文件包含的枚举类型的状态结点枚举信息;
获取所述状态结点枚举信息的上下文信息;
依据所述上下文信息,提取所述源代码文件包含的调用链路;
利用所提取到的各所述调用链路,生成包含相应状态流转信息的结构化数据。
4.根据权利要求1所述的方法,其特征在于,若所述待测试数据为业务流程图文件,所述依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据,包括:
提取所述业务流程图文件包含的关键信息,所述关键信息包括状态结点信息代码和状态转换边信息代码;
依据所述状态结点信息代码和所述状态转换边信息代码,生成包含所述业务流程图文件的状态流转信息的结构化数据。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径,包括:
获取所述结构化数据中状态转换边和状态结点各自的映射关系;
按照状态流转方向对所述结构化数据进行路径遍历,得到状态流转路径集合;
依据所述映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
6.根据权利要求5所述的方法,其特征在于,所述获取所述结构化数据中状态转换边和状态结点各自的映射关系,包括:
获取所述结构化数据包含的数字化结点关系;
利用所述数字化结点关系,得到所述结构化数据中各数字化结点与结点状态信息之间的结点映射关系;
依据所述数字化结点关系,获得所述结构化数据包含的状态转换边关系;
利用所述状态转换边关系,得到所述结构化数据中各状态转换边与边状态流转信息之间的边映射关系;
所述依据所述映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径,包括:
利用所述结点状态信息和所述边状态流转信息,按照所述结点映射关系和所述边映射关系,对所述状态流转路径集合包含的各状态流转路径进行具体化处理,得到所述目标业务的全量测试路径。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获得针对所述全量测试路径的可行性评估请求;
响应所述可行性评估请求,依据所述结构化数据,对所述全量测试路径进行分析,得到不可行测试路径;
剔除所述全量测试路径包含的所述不可行测试路径,得到待评估测试路径;
对所述待评估测试路径进行评估,得到相应的可行性评估值;
依据所述可行性评估值,对多个所述待评估测试路径进行编译,得到所述目标业务的测试用例。
8.一种测试路径生成装置,其特征在于,所述装置包括:
待测试数据获取模块,用于获取目标业务的待测试数据;
结构化数据得到模块,用于依据与所述待测试数据的数据类别对应的数据处理规则,对所述待测试数据进行结构化处理,得到包含所述待测试数据的状态流转信息的结构化数据;
全量测试路径得到模块,用于按照深度优先搜索方式,对所述结构化数据进行路径遍历,得到所述待测试数据包含的全量测试路径。
9.一种计算机设备,其特征在于,所述计算机设备包括:
通信接口;
存储器,用于存储实现如权利要求1-7任意一项所述的测试路径生成方法的程序;
处理器,用于加载并执行所述存储器存储的所述程序,以实现如权利要求1-7任意一项所述的测试路径生成方法的各步骤。
10.一种可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现如权利要求1-7任意一项所述的测试路径生成方法的各步骤。
CN202011452919.6A 2020-12-11 2020-12-11 测试路径生成方法及相关设备 Active CN112559343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011452919.6A CN112559343B (zh) 2020-12-11 2020-12-11 测试路径生成方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011452919.6A CN112559343B (zh) 2020-12-11 2020-12-11 测试路径生成方法及相关设备

Publications (2)

Publication Number Publication Date
CN112559343A true CN112559343A (zh) 2021-03-26
CN112559343B CN112559343B (zh) 2022-11-15

Family

ID=75061765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011452919.6A Active CN112559343B (zh) 2020-12-11 2020-12-11 测试路径生成方法及相关设备

Country Status (1)

Country Link
CN (1) CN112559343B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535594A (zh) * 2021-09-17 2021-10-22 广州裕睿信息科技有限公司 业务场景测试用例的生成方法、装置、设备和存储介质
CN114330849A (zh) * 2021-12-17 2022-04-12 苏州浪潮智能科技有限公司 一种产品测试工作台的流转控制方法及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100005454A1 (en) * 2008-07-07 2010-01-07 Nec Laboratories America, Inc. Program verification through symbolic enumeration of control path programs
CN108459967A (zh) * 2018-03-21 2018-08-28 东南大学 基于用户接口状态流图的Web应用测试用例生成方法
CN111290950A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 程序测试中测试点获取方法、装置、存储介质和设备
CN111831573A (zh) * 2020-07-27 2020-10-27 中国工商银行股份有限公司 代码分支覆盖情况的确定方法、装置、计算机系统和介质
CN111897739A (zh) * 2020-08-21 2020-11-06 四川长虹电器股份有限公司 一种基于优化后深度优先算法的测试用例生成方法
CN111949531A (zh) * 2020-08-10 2020-11-17 腾讯科技(深圳)有限公司 区块链网络的测试方法、装置、介质及电子设备
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100005454A1 (en) * 2008-07-07 2010-01-07 Nec Laboratories America, Inc. Program verification through symbolic enumeration of control path programs
CN108459967A (zh) * 2018-03-21 2018-08-28 东南大学 基于用户接口状态流图的Web应用测试用例生成方法
CN111290950A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 程序测试中测试点获取方法、装置、存储介质和设备
CN111831573A (zh) * 2020-07-27 2020-10-27 中国工商银行股份有限公司 代码分支覆盖情况的确定方法、装置、计算机系统和介质
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN111949531A (zh) * 2020-08-10 2020-11-17 腾讯科技(深圳)有限公司 区块链网络的测试方法、装置、介质及电子设备
CN111897739A (zh) * 2020-08-21 2020-11-06 四川长虹电器股份有限公司 一种基于优化后深度优先算法的测试用例生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王秀玄: "基于UML状态图的列控中心软件测试路径生成方法", 《铁路计算机应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535594A (zh) * 2021-09-17 2021-10-22 广州裕睿信息科技有限公司 业务场景测试用例的生成方法、装置、设备和存储介质
CN113535594B (zh) * 2021-09-17 2021-12-21 广州裕睿信息科技有限公司 业务场景测试用例的生成方法、装置、设备和存储介质
CN114330849A (zh) * 2021-12-17 2022-04-12 苏州浪潮智能科技有限公司 一种产品测试工作台的流转控制方法及相关装置

Also Published As

Publication number Publication date
CN112559343B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN109542791B (zh) 一种基于容器技术的程序大规模并发评测方法
CN110427331B (zh) 基于接口测试工具自动生成性能测试脚本的方法
CN110944048B (zh) 业务逻辑配置方法及装置
CN111177176A (zh) 数据检测方法、装置及存储介质
CN108446221A (zh) 系统测试方法、装置、计算机设备和存储介质
CN105283848A (zh) 用分布式目标来进行应用跟踪
CN105283851A (zh) 用于选择跟踪目标的成本分析
CN112559343B (zh) 测试路径生成方法及相关设备
CN108459964A (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
CN112559525B (zh) 数据检查系统、方法、装置和服务器
CN109657475A (zh) 代码漏洞排查方法、装置、设备及存储介质
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN112148580A (zh) 测试方法、装置及电子设备
CN112363937A (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112363936A (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112579437A (zh) 一种程序运行过程符合性验证方法
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
CN112463596B (zh) 测试用例数据的处理方法、装置、设备以及处理设备
CN111625330B (zh) 跨线程的任务处理方法、装置、服务器及存储介质
Takeda et al. Applying change impact analysis test to migration test case extraction based on IDAU and graph analysis techniques
CN114721932A (zh) 一种数据处理方法、装置、设备及存储介质
CN116483888A (zh) 程序评估方法及装置、电子设备和计算机可读存储介质
CN115858006A (zh) 一种Software2.0中机器学习程序库版本配置的测试与评估方法
Kwon et al. Pre-trained model-based software defect prediction for edge-cloud systems
CN115705297A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40041058

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant