CN110908896A - 一种基于决策树的测试方法及装置 - Google Patents
一种基于决策树的测试方法及装置 Download PDFInfo
- Publication number
- CN110908896A CN110908896A CN201911035613.8A CN201911035613A CN110908896A CN 110908896 A CN110908896 A CN 110908896A CN 201911035613 A CN201911035613 A CN 201911035613A CN 110908896 A CN110908896 A CN 110908896A
- Authority
- CN
- China
- Prior art keywords
- test
- path
- decision tree
- node
- test case
- 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
- 238000003066 decision tree Methods 0.000 title claims abstract description 162
- 238000010998 test method Methods 0.000 title abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 415
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000006243 chemical reaction Methods 0.000 claims description 33
- 239000002088 nanocapsule Substances 0.000 description 33
- 230000003628 erosive effect Effects 0.000 description 22
- 206010050021 Cervical friability Diseases 0.000 description 20
- 208000024891 symptom Diseases 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 208000032843 Hemorrhage Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010061218 Inflammation Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004054 inflammatory process Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
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
技术领域
本发明涉及软件技术领域,尤其涉及一种基于决策树的测试方法及装置。
背景技术
决策树是一种能帮助决策者进行序列决策分析的有效工具,它是一种学习预测模型,代表的是对象属性与对象值之间的一种映射关系,可以通过图文形式,将各级主题的关系用相互隶属和/或相关的层级表现出来。为了保证决策树能够以期望方式运行,满足设计需求,得到有效的决策分析,通常需要对决策树进行功能测试。
在现有技术中,对于决策树的功能测试通常采用人工功能测试的方式,例如,需要人工根据决策树编写测试案例,并人工利用所编写的测试案例对决策树进行测试。
由于人工编写决策树对应的测试案例的过程重复繁琐,且测试案例的场景相似度高,人工编写测试案例容易出错,因此,人工功能测试的方式导致决策树的功能测试的效率低下。故,亟需一种能够提高决策树功能测试的效率的方法。
发明内容
本发明提供一种基于决策树的测试方法及装置,以实现不需要人工编写测试案例,可以避免由于人工编写测试案例所导致的编写错误,从而提高了决策树功能测试的效率。
第一方面,本发明提供了一种基于决策树的测试方法,所述方法包括:
获取目标决策树,并根据所述目标决策树,生成测试案例;
利用所述测试案例对所述目标决策树进行测试,得到测试结果。
可选的,所述目标决策树至少包括一条路径,每条路径包括多个层级节点;所述根据所述目标决策树,生成测试案例,包括:
针对所述目标决策树中的每一条路径,获取所述路径中的全部节点;
根据所述路径中的全部节点,生成所述路径对应的测试案例。
可选的,所述根据所述路径中的全部节点,生成所述路径对应的测试案例,包括:
将所述路径中的各个节点分别进行数据格式转换,得到所述各个节点分别对应的转换数据;
根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例。
可选的,所述根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例,包括:
根据所述各个节点之间的上下层级关系,以及所述各个节点分别对应的转换数据,生成各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果;
将所述各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,得到所述路径对应的测试案例。
可选的,所述各个节点分别对应的转换数据的数据格式均为Json格式。
可选的,所述利用所述测试案例对所述目标决策树进行测试,得到测试结果,包括:
响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果。
可选的,所述测试案例包括多个测试操作步骤,其中,所述测试案例中的测试操作步骤与所述测试案例对应的路径中的节点为一一对应关系;所述响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果,包括:
响应测试指令,由根节点至叶节点的顺序,依次根据所述路径中各个节点各自对应的测试操作步骤分别对所述路径中各个节点进行测试,得到所述路径中各个节点的测试结果;
根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果。
可选的,所述根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果,包括:
若所述路径中一节点的测试结果与预期结果不一致,确定所述路径对应的测试结果为测试不通过;或者,
若所述路径中所有节点的测试结果与预期结果一致,确定所述路径对应的测试结果为测试通过。
可选的,若所述路径对应的测试结果为测试不通过,所述方法还包括:
停止对测试结果与预期结果不一致的节点的下层级节点进行测试,和/或,输出测试结果与预期结果不一致的节点。
第二方面,本发明提供了一种基于决策树的测试装置,所述装置包括:
生成模块,用于获取目标决策树,并根据所述目标决策树,生成测试案例;
测试模块,用于利用所述测试案例对所述目标决策树进行测试,得到测试结果。
可选的,所述目标决策树至少包括一条路径,每条路径包括多个层级节点;所述生成模块,具体用于:
针对所述目标决策树中的每一条路径,获取所述路径中的全部节点;
根据所述路径中的全部节点,生成所述路径对应的测试案例。
可选的,所述生成模块,还具体用于:
将所述路径中的各个节点分别进行数据格式转换,得到所述各个节点分别对应的转换数据;
根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例。
可选的,所述生成模块,还具体用于:
根据所述各个节点之间的上下层级关系,以及所述各个节点分别对应的转换数据,生成各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果;
将所述各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,得到所述路径对应的测试案例。
可选的,所述各个节点分别对应的转换数据的数据格式均为Json格式。
可选的,所述测试模块,具体用于:
响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果。
可选的,所述测试案例包括多个测试操作步骤,其中,所述测试案例中的测试操作步骤与所述测试案例对应的路径中的节点为一一对应关系;所述测试模块,还具体用于:
响应测试指令,由根节点至叶节点的顺序,依次根据所述路径中各个节点各自对应的测试操作步骤分别对所述路径中各个节点进行测试,得到所述路径中各个节点的测试结果;
根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果。
可选的,所述测试模块,还具体用于:
若所述路径中一节点的测试结果与预期结果不一致,确定所述路径对应的测试结果为测试不通过;或者,
若所述路径中所有节点的测试结果均与预期结果一致,确定所述路径对应的测试结果为测试通过。
可选的,若所述路径对应的测试结果为测试不通过,所述装置还包括:
停止模块和/或输出模块;
所述停止模块,用于停止对测试结果与预期结果不一致的节点的下层级节点进行测试;
所述输出模块,用于输出测试结果与预期结果不一致的节点。
第三方面,本发明提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本发明提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本发明可以根据目标决策树生成该目标决策树对应的测试案例,且可以利用该测试案例对该目标决策树进行测试,得到测试结果。可见,本发明可以自动根据目标决策树生成目标决策树对应的测试案例,并根据该测试案例对目标决策树进行测试,而不需要和传统方式一样,需要人工手动编写测试案例,以及对决策树进行测试。因此,与现有技术相比,本发明不需要人工编写测试案例,可以避免由于人工编写测试案例所导致的编写错误,从而提高了决策树功能测试的效率。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于决策树的测试方法的流程示意图;
图2为本发明一实施例提供的一种目标决策树的示意图;
图3为本发明一实施例提供的另一种目标决策树的示意图;
图4为本发明一实施例提供的又一种目标决策树的示意图;
图5为本发明一实施例提供的另一种基于决策树的测试方法的流程示意图;
图6为本发明一实施例提供的一种基于决策树的测试装置的结构示意图;
图7为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中,由于人工编写决策树对应的测试案例的过程重复繁琐,且测试案例的场景相似度高,人工编写测试案例容易出错,所导致的决策树的功能测试效率低下的问题。本发明提供了一种基于决策树的测试方法,在本方法中,可以根据目标决策树生成该目标决策树对应的测试案例,且可以利用该测试案例对该目标决策树进行测试,得到测试结果。这样,本发明可以实现自动根据目标决策树生成目标决策树对应的测试案例,并根据该测试案例对目标决策树进行测试,而不需要和传统方式一样,需要人工手动编写测试案例,以及对决策树进行测试。因此,与现有技术相比,本发明所提供的方法不需要人工编写测试案例,可以避免由于人工编写测试案例所导致的编写错误,从而提高了决策树功能测试的效率。
下面结合附图,详细说明本发明的各种非限制性实施方式。
参见图1,示出了本发明实施例中的一种基于决策树的测试方法。在本实施例中,所述方法例如可以包括以下步骤:
S101:获取目标决策树,并根据所述目标决策树,生成测试案例。
目标决策树可以理解为需要进行测试的决策树。其中,并不对本实施例中的目标决策树的类型进行限定,例如,目标决策树的类型可以为xmind。需要说明的是,目标决策树可以包括多个层级节点,其中,可以将层级最高的节点(即没有上一层级节点的节点)称之为根节点,可以将层级最低的节点(即没有下一层级节点的节点)称之为叶节点,而可以将根节点与叶节点之间的层级节点称之为内部节点。需要强调的是,目标决策树中可以包括一个根节点、至少一个叶节点,或者可以包括一个根结点、至少一个内部节点和至少一个叶节点;举例来说,假设目标决策树如图2所示,则该目标决策树包括一个根节点“宫颈纳囊”和一个叶结点“寿险”,再举例来说,假设目标决策树如图3所示,则该目标决策树包括一个根结点“宫颈纳囊”、一个内部节点“寿险”和一个叶节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”。
在本实施例中,获取目标决策树的方式可以有多种方式,例如,可以为用户通过输入设备(比如键盘)输入目标决策树,又例如,用户将目标决策树存储至指定路径中。
在获取到目标决策树后,可以根据该目标决策树生成该目标决策树对应的测试案例。其中,测试案例可以理解为基于目标决策树生成描述测试操作步骤并符合编写规范的文本案例。例如,假设目标决策树为图2对应的决策树,该目标决策树对应的测试案例可以包括测试操作步骤:点击节点“宫颈纳囊”,以及点击该节点“宫颈纳囊”之后所需要显示的下一层级节点“寿险”,其中,该测试案例可以为符合编写Python规则的文本案例,比如可以是Json格式的文本案例。
需要说明的是,目标决策树对应的测试案例与目标决策树中的路径一一对应,即目标决策树中的一条路径对应一个测试案例,可以理解的是,目标决策树对应的测试案例的数量与该目标决策树中的路径数量相同。其中,目标决策树至少包括一条路径,且每条路径可以包括多个层级节点,例如,目标决策树中的一条路径可以理解为由该目标决策树中的根节点、一个叶节点以及该根节点和该叶节点之间的内部节点所构成的支路。
举例来说,假设目标决策树为图4对应的决策树,该目标决策树包括五条路径,分别为第一条路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”、第二条路径“宫颈纳囊(纳氏囊肿)→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→否→是否已做宫颈相关检查?→是→请选择宫颈TCT、HPV检查结果→均正常→标体”、第三条路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→否→是否已做宫颈相关检查?→是→请选择宫颈TCT、HPV检查结果→TCT结果轻度炎症、HPV结果阴性→标体”、第四条路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→否→是否已做宫颈相关检查?→是→请选择宫颈TCT、HPV检查结果→其他结果→转人工核保”和第五条路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→否→是否已做宫颈相关检查?→否→转人工核保”;并且,该该目标决策树对应的测试案例包括五个测试案例,这五个测试案例分别与该第一条路径、该第二条路径、该第三条路径、该第四条路径和该第五条路径对应。
S102:利用所述测试案例对所述目标决策树进行测试,得到测试结果。
在生成目标决策树对应的测试案例后,由于测试案例中包括测试操作步骤以及测试操作步骤对应的预期结果;因此,可以利用测试案例对该测试案例对应的路径进行测试,得到该路径对应的得到该路径对应的测试结果。可以理解的是,目标决策树对应的测试结果包括该目标决策树中各条路径分别对应的测试结果。
具体地,可以对目标决策树的路径执行测试案例中的测试操作步骤,若执行测试操作步骤后所得到的测试结果与测试操作步骤对应的预期结果不相同,则该路径对应的测试结果为测试不通过,反之,若执行测试操作步骤后所得到的测试结果与测试操作步骤对应的预期结果相同,则该路径对应的测试结果为测试通过。
继续以图2的决策树作为目标决策树举例说明,该目标决策树对应的测试案例包括点击节点“宫颈纳囊”,以及点击节点“宫颈纳囊”的测试操作步骤所对应的预期结果:显示节点“宫颈纳囊”的下一层级节点“寿险”;若点击节点“宫颈纳囊”后所得到的测试结果为显示节点“寿险”,则该目标决策树中该路径对应的测试结果为测试通过,若点击节点“宫颈纳囊”后所得到的测试结果不为显示节点“寿险”,则该目标决策树中该路径对应的测试结果为测试不通过。
需要说明的是,在本实施例中,可以用Log日志的形式或者测试报告的形式,输出目标决策树中各条路径对应的测试结果。
由上述技术方案可以看出,本发明可以根据目标决策树生成该目标决策树对应的测试案例,且可以利用该测试案例对该目标决策树进行测试,得到测试结果。可见,本发明可以自动根据目标决策树生成目标决策树对应的测试案例,并根据该测试案例对目标决策树进行测试,而不需要和传统方式一样,需要人工手动编写测试案例,以及对决策树进行测试。因此,与现有技术相比,本发明不需要人工编写测试案例,可以避免由于人工编写测试案例所导致的编写错误,从而提高了决策树功能测试的效率。
图1所示仅为本发明所述方法的基础实施例,在其基础上进行一定的优化和拓展,还能够得到所述方法的其他可选实施例。
如图5所示,为本发明所述基于决策树的测试方法的另一个具体实施例。本实施例在图1对应实施例的基础上,对S101、S102进行进一步阐述。在本实施例中,所述方法具体包括以下步骤:
S501获取目标决策树,并针对所述目标决策树中的每一条路径,获取所述路径中的全部节点。
S502:根据所述路径中的全部节点,生成所述路径对应的测试案例。
获取目标决策树后,可以分别对该目标决策树中的每一条路径进行处理,以便得到每一条路径对应的测试案例。接下来,将以目标决策树中的任一条路径为例,对生成一条路径对应的测试案例的方式进行说明,可以理解的是,对于目标决策树中的每一条路径,都可以通过以下方式得到路径对应的测试案例。
在获取到目标决策树的路径之后,可以先获取该路径中的全部节点,以图4的决策树中的第一条路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明,在获取到该第一条路径之后,可以先获取该路径中的全部节点,即获取节点“宫颈纳囊”、节点“寿险”、节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”、节点“是”和节点“转人工核保”。
获取到该路径中的全部节点之后,可以根据所述路径中的全部节点,生成所述路径对应的测试案例。需要说明的是,由于目标决策树中每一条路径对应的数据的格式均为文本格式,而由于后续处理过程所基于的编码程序(例如java)不能直接处理文本格式的数据;因此,为了后续能够处理目标决策树中的数据,作为一种示例,可以先将该路径中的各个节点分别进行数据格式转换,得到各个节点分别对应的转换数据,以便后续可以将该转换数据编写为编程语言能够处理的数据,例如,可以将各个节点按照Json报文组装成Python程序可以使用的数据格式,即各个节点分别对应的转换数据的数据格式可以均为Json格式。这样,将转换数据编写为编程语言能够处理的数据之后,编码程序便可以对目标决策树中每一条路径对应的数据进行后续处理。
接着,再根据各个节点分别对应的转换数据,生成该路径对应的测试案例。由于该路径对应的测试案例中可以包括多个测试操作步骤,且每个测试操作步骤均对应该路径中的一个节点,即该路径中的节点与该测试案例中的测试操作步骤为一一对应关系。因此,在获取到各个节点分别对应的转换数据后,可以先根据各个节点分别对应的转换数据,生成各个节点各自分别对应的测试操作步骤,再根据各个节点各自分别对应的测试操作步骤生成该路径对应的测试案例。
具体地,在一种可能的实现方式中,根据各个节点分别对应的转换数据,生成该路径对应的测试案例的方式可以为:先将根据该路径中各个节点之间的上下层级关系,以及各个节点分别对应的转换数据,生成各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果,接着,可以将所述各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,得到所述路径对应的测试案例。
其中,节点对应的测试操作步骤可以理解为需要对该节点进行操作的步骤;而测试操作步骤对应的预期结果可以理解为对目标决策树中一节点执行该节点对应的测试操作步骤后,所应该展示的结果,例如,预期结果可以为该节点的下一层级节点。具体地,针对一条路径中的每个节点,可以先将该节点对应的转换数据生成该节点对应的测试操作步骤,并将该节点的下一层级节点作为该测试操作步骤对应的预期结果;接着,可以将各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果按照预设规则进行拼接,例如按照从根节点至叶结点的先后顺序,依次将各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,从而得到所述路径对应的测试案例。需要说明的是,由于路径中的叶结点没有下一层级节点,因此,不需要生成叶结点的测试操作步骤以及该测试操作步骤对应的预期结果。
继续以路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明。针对节点“宫颈纳囊”,将节点“宫颈纳囊”对应的转换数据生成节点“宫颈纳囊”对应的测试操作步骤,并将节点“宫颈纳囊”的下一层级节点“寿险”作为该测试操作步骤对应的预期结果,依次类推,可以分别得到节点“寿险”、“是否存在重度宫颈糜烂或有宫颈接触性出血症状”和“是”的测试操作步骤以及测试操作步骤对应的预期结果;接下来,可以将节点“宫颈纳囊”、“寿险”、“是否存在重度宫颈糜烂或有宫颈接触性出血症状”和“是”的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,从而得到路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”对应的测试案例。
需要说明的是,S101可以包括S501和S502。
S503:响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果。
在本实施例中,当用户需要利用测试案例对测试案例对应的路径进行测试时,可以先触发生成测试指令,例如,可以预先设置一个按键,当检测到用户按下该按键时生成测试指令,又例如,可以检测到用户输入的语音包含预设关键字时生成测试指令。在接收到测试指令之后,可以响应该测试指令,利用该目标决策树对应的各个测试案例分别对各个测试案例对应的路径进行测试,得到该目标决策树中各个路径分别对应的测试结果。接下来,将以目标决策树中的任一条路径为例,对得到该条路径对应的测试结果的方式进行说明,可以理解的是,对于目标决策树中的每一条路径,都可以通过以下方式得到路径对应的测试结果。
作为一种示例,可以由路径的根节点至叶节点的顺序,依次根据该路径中各个节点各自对应的测试操作步骤分别对该路径中各个节点进行测试,得到该路径中各个节点的测试结果。继续以路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明,可以由路径的根节点至叶节点的顺序(即宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保);先根据该路径中节点“宫颈纳囊”对应的测试操作步骤对该节点“宫颈纳囊”进行测试,得到该节点“宫颈纳囊”的测试结果;然后,根据该路径中节点“寿险”对应的测试操作步骤对该节点“寿险”进行测试,得到该节点“寿险”的测试结果;接着,根据该路径中节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”对应的测试操作步骤对该节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”进行测试,得到该节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”的测试结果;紧接着,根据该路径中节点“是”对应的测试操作步骤对该节点“是”进行测试,得到该节点“是”的测试结果。
得到该路径中各个节点的测试结果之后,可以根据该路径中各个节点的测试结果,确定所述路径对应的测试结果。具体地,若一路径中一节点的测试结果与预期结果不一致,确定所述路径对应的测试结果为测试不通过,继续以路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明,若该路径中节点“是”的测试结果为“标体”,而该节点“是”的预期结果为“转人工核保”,则由于节点“是”的预期结果与测试结果不一致,确定该路径对应的测试结果为测试不通过;若一路径中所有节点的测试结果均与预期结果一致,确定该路径对应的测试结果为测试通过,以路径“是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明,若该路径中节点“是否存在重度宫颈糜烂或有宫颈接触性出血症状”的测试结果和预期结果均为展示节点“是”,且该路径中节点“是”的测试结果和预期结果均为展示节点“转人工核保”,则确定该路径对应的测试结果为测试通过。
需要说明的是,S102可以包括S503。
需要强调的是,在一种实现方式中,若目标决策树中的一路径对应的测试结果为测试不通过,则在S503之后,基于决策树的测试方法还包括:
在检测到该路径中一节点的预期结果与测试结果不一致之后,停止对测试结果与预期结果不一致的节点的下层级节点进行测试,和/或,输出测试结果与预期结果不一致的节点。
以路径“宫颈纳囊→寿险→是否存在重度宫颈糜烂或有宫颈接触性出血症状→是→转人工核保”为例说明,假设节点“宫颈纳囊”的测试结果并不是预期结果“寿险”,则停止对节点“宫颈纳囊”的下层级节点“寿险”、“是否存在重度宫颈糜烂或有宫颈接触性出血症状”和“是”进行测试,和/或,输出测试结果与预期结果不一致的节点,即输出节点“宫颈纳囊”。
至此,本实施例结合具体的应用场景实现了对于基于决策树的测试的处理过程。当然应该认为,上述场景仅仅为示例性场景,并不对本发明提供的方法构成限定。本发明提供的方法可延申的应用在其他相同原理的基于决策树的测试方法处理过程当中。
如图6所示,为本发明所述基于决策树的测试装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中所述装置包括:
生成模块601,用于获取目标决策树,并根据所述目标决策树,生成测试案例;
测试模块602,用于利用所述测试案例对所述目标决策树进行测试,得到测试结果。
可选的,所述目标决策树至少包括一条路径,每条路径包括多个层级节点;所述生成模块601,具体用于:
针对所述目标决策树中的每一条路径,获取所述路径中的全部节点;
根据所述路径中的全部节点,生成所述路径对应的测试案例。
可选的,所述生成模块601,还具体用于:
将所述路径中的各个节点分别进行数据格式转换,得到所述各个节点分别对应的转换数据;
根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例。
可选的,所述生成模块601,还具体用于:
根据所述各个节点之间的上下层级关系,以及所述各个节点分别对应的转换数据,生成各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果;
将所述各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,得到所述路径对应的测试案例。
可选的,所述各个节点分别对应的转换数据的数据格式均为Json格式。
可选的,所述测试模块602,具体用于:
响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果。
可选的,所述测试案例包括多个测试操作步骤,其中,所述测试案例中的测试操作步骤与所述测试案例对应的路径中的节点为一一对应关系;所述测试模块602,还具体用于:
响应测试指令,由根节点至叶节点的顺序,依次根据所述路径中各个节点各自对应的测试操作步骤分别对所述路径中各个节点进行测试,得到所述路径中各个节点的测试结果;
根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果。
可选的,所述测试模块602,还具体用于:
若所述路径中一节点的测试结果与预期结果不一致,确定所述路径对应的测试结果为测试不通过;或者,
若所述路径中所有节点的测试结果均与预期结果一致,确定所述路径对应的测试结果为测试通过。
可选的,若所述路径对应的测试结果为测试不通过,所述装置还包括:
停止模块和/或输出模块;
所述停止模块,用于停止对测试结果与预期结果不一致的节点的下层级节点进行测试;
所述输出模块,用于输出测试结果与预期结果不一致的节点。
图7是本发明实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成基于决策树的测试装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的基于决策树的测试方法。
上述如本发明图1所示实施例提供的基于决策树的测试装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本发明任一实施例中提供的基于决策树的测试方法,并具体用于执行上述基于决策树的测试所述的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (11)
1.一种基于决策树的测试方法,其特征在于,所述方法包括:
获取目标决策树,并根据所述目标决策树,生成测试案例;
利用所述测试案例对所述目标决策树进行测试,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述目标决策树至少包括一条路径,每条路径包括多个层级节点;所述根据所述目标决策树,生成测试案例,包括:
针对所述目标决策树中的每一条路径,获取所述路径中的全部节点;
根据所述路径中的全部节点,生成所述路径对应的测试案例。
3.根据权利要求2所述的方法,其特征在于,所述根据所述路径中的全部节点,生成所述路径对应的测试案例,包括:
将所述路径中的各个节点分别进行数据格式转换,得到所述各个节点分别对应的转换数据;
根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例。
4.根据权利要求3所述的方法,其特征在于,所述根据所述各个节点分别对应的转换数据,生成所述路径对应的测试案例,包括:
根据所述各个节点之间的上下层级关系,以及所述各个节点分别对应的转换数据,生成各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果;
将所述各个节点对应的测试操作步骤以及测试操作步骤对应的预期结果进行拼接,得到所述路径对应的测试案例。
5.根据权利要求1-4中任一权项所述的方法,其特征在于,所述利用所述测试案例对所述目标决策树进行测试,得到测试结果,包括:
响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果。
6.根据权利要求5所述的方法,其特征在于,所述测试案例包括多个测试操作步骤,其中,所述测试案例中的测试操作步骤与所述测试案例对应的路径中的节点为一一对应关系;所述响应测试指令,利用所述测试案例对所述测试案例对应的路径进行测试,得到所述路径对应的测试结果,包括:
响应测试指令,由根节点至叶节点的顺序,依次根据所述路径中各个节点各自对应的测试操作步骤分别对所述路径中各个节点进行测试,得到所述路径中各个节点的测试结果;
根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述路径中各个节点的测试结果,确定所述路径对应的测试结果,包括:
若所述路径中一节点的测试结果与预期结果不一致,确定所述路径对应的测试结果为测试不通过;或者,
若所述路径中所有节点的测试结果均与预期结果一致,确定所述路径对应的测试结果为测试通过。
8.根据权利要求7所述的方法,其特征在于,若所述路径对应的测试结果为测试不通过,所述方法还包括:
停止对测试结果与预期结果不一致的节点的下层级节点进行测试,和/或,输出测试结果与预期结果不一致的节点。
9.一种基于决策树的测试装置,其特征在于,所述装置包括:
生成模块,用于获取目标决策树,并根据所述目标决策树,生成测试案例;
测试模块,用于利用所述测试案例对所述目标决策树进行测试,得到测试结果。
10.一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如权利要求1至8中任一权项所述的方法。
11.一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如权利要求1至8中任一权项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035613.8A CN110908896A (zh) | 2019-10-29 | 2019-10-29 | 一种基于决策树的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035613.8A CN110908896A (zh) | 2019-10-29 | 2019-10-29 | 一种基于决策树的测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908896A true CN110908896A (zh) | 2020-03-24 |
Family
ID=69815880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911035613.8A Pending CN110908896A (zh) | 2019-10-29 | 2019-10-29 | 一种基于决策树的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908896A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968787A (zh) * | 2022-05-27 | 2022-08-30 | 中移互联网有限公司 | 基于节点关系的测试方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491394A (zh) * | 2017-08-25 | 2017-12-19 | 中国银行股份有限公司 | 一种基于有向图识别的测试分析方法及装置 |
CN109117363A (zh) * | 2018-06-28 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN109614324A (zh) * | 2018-12-03 | 2019-04-12 | 北京云测网络科技有限公司 | 一种测试用例生成方法和装置 |
CN109960639A (zh) * | 2017-12-14 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 一种生成测试用例的方法和装置 |
-
2019
- 2019-10-29 CN CN201911035613.8A patent/CN110908896A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491394A (zh) * | 2017-08-25 | 2017-12-19 | 中国银行股份有限公司 | 一种基于有向图识别的测试分析方法及装置 |
CN109960639A (zh) * | 2017-12-14 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 一种生成测试用例的方法和装置 |
CN109117363A (zh) * | 2018-06-28 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN109614324A (zh) * | 2018-12-03 | 2019-04-12 | 北京云测网络科技有限公司 | 一种测试用例生成方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968787A (zh) * | 2022-05-27 | 2022-08-30 | 中移互联网有限公司 | 基于节点关系的测试方法、装置及电子设备 |
CN114968787B (zh) * | 2022-05-27 | 2023-09-19 | 中移互联网有限公司 | 基于节点关系的测试方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774404B2 (en) | Managing software component versions within a service oriented architecture | |
US11835987B2 (en) | Methods and apparatus for finding long methods in code | |
US20110016452A1 (en) | Method and system for identifying regression test cases for a software | |
US20130145347A1 (en) | Automatic modularization of source code | |
CN111324526B (zh) | 接口测试系统、方法和服务器 | |
CN109614324A (zh) | 一种测试用例生成方法和装置 | |
US20150286355A1 (en) | Crawling for extracting a model of a gui-based application | |
WO2020237508A1 (zh) | 一种断言验证代码绑定方法及装置 | |
US9396097B2 (en) | Methods, circuits, devices, systems and associated computer executable code for testing software code | |
US9870314B1 (en) | Update testing by build introspection | |
CN111767217A (zh) | Js单元测试案例生成方法及装置 | |
CN110069736A (zh) | 页面加载方法及设备 | |
CN113703739B (zh) | 基于omiga引擎的跨语言融合计算方法、系统及终端 | |
CN111309596A (zh) | 数据库测试方法、装置、终端设备及存储介质 | |
CN110908896A (zh) | 一种基于决策树的测试方法及装置 | |
WO2021183382A1 (en) | Graph-based method for inductive bug localization | |
US20090064092A1 (en) | Visual programming language optimization | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
CN116185826A (zh) | 一种测试方法、装置、设备及存储介质 | |
US20200019654A1 (en) | Verification algorithm engine selection | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 | |
CN112181538B (zh) | 诊断流程执行方法、装置、设备及存储介质 | |
JP6665576B2 (ja) | 支援装置、支援方法及びプログラム | |
JP2009193488A (ja) | ソフトウェアテスト項目編集支援装置およびソフトウェアテスト項目編集支援方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230222 Address after: Room 304, Unit 1, Floor 4, Building 9, West District, No. 9 Courtyard, Linglong Road, Haidian District, Beijing, 100089 Applicant after: BEIJING YIYIYUN TECHNOLOGY Co.,Ltd. Address before: 301800 220-41, customs building, energy saving and environmental protection industrial zone, Baodi District, Tianjin Applicant before: TIANJIN HAPPINESS LIFE TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200324 |