CN114490404A - 一种测试用例确定方法、装置、电子设备及存储介质 - Google Patents

一种测试用例确定方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114490404A
CN114490404A CN202210124049.2A CN202210124049A CN114490404A CN 114490404 A CN114490404 A CN 114490404A CN 202210124049 A CN202210124049 A CN 202210124049A CN 114490404 A CN114490404 A CN 114490404A
Authority
CN
China
Prior art keywords
test case
data
spanning tree
tree model
matched
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
Application number
CN202210124049.2A
Other languages
English (en)
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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202210124049.2A priority Critical patent/CN114490404A/zh
Publication of CN114490404A publication Critical patent/CN114490404A/zh
Pending legal-status Critical Current

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
    • 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

一种测试用例确定方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及回归测试技术领域,尤其涉及一种测试用例确定方法、装置、电子设备及存储介质。
背景技术
软件测试伴随着软件而生,Bill Hetzel在《软件测试完全指南》一书中指出,“测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。”1983年IEEE提出的软件工程术语中给软件测试下的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。”软件测试的目的是为了检验软件系统是否满足需求,与整个开发流程融合成一体。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重。对与一个软件开发项目来说,项目的测试组在实施测试过程中会维护和管理不同版本软件的测试用例库,在需要进行回归测试的时候,就可以根据回归测试的策略从相应的用例库中选取合适的自动或手动测试用例组成回归测试集合来进行回归测试。回归测试需要时间以及人力来计划实施。为了在给定时间和人力的范围内尽可能高效地进行回归测试,需要尽可能准确地选择回归测试案例集合。在能完全覆盖要测试功能模块的前提下,测试案例集越小,耗费的人力和时间成本越少。
目前,可以主要通过如下三种方式选择回归测试案例集合。第一种方式为:通过分解测试需求,对回归测试用例与分解后的测试需求点之间的相关程度进行优先级排序构建二元关系矩阵模型,测试用例与需求点的关联程度用覆盖度来表示,采用贪婪策略筛选覆盖需求最多的最小测试用例集合。第二种方式为:基于代码覆盖率对回归测试用例进行缩减,此方法依据测试代码覆盖率和测试时间成本构造适应度函数,采用遗传算法实现回归测试用例的缩减。第三种方式为:通过GCC编译器的内置插件获取代码覆盖率,同时考虑代码覆盖率和时间开销的优化指标,使用MOEA/D(多目标进化算法)进行回归测试案例集的约简优化。
然而,第一种方式需要人为分解测试需求之后,再人为判断用例与分解需求点的关联关系,存在筛选的测试用例准确性不够的问题,而且人工筛选成本较高。第二种方式与第三种方式虽然同时考虑了测试代码覆盖率和执行成本,但是第二种方式与第三种方式仍属于对测试用例的人为选择,也没有针对测试需求进行具有针对性的分析,无法给出既满足测试需求又保证完全覆盖测试用例的约简方式。就现有的回归测试的测试用例的几种选择策略而言,无论选择哪一种策略,在测试用例选择的时候都是人为选择,而基于人为经验的选择难免会给回归测试用例的范围决策带来误差,而且当所选测试用例覆盖情况存在大量重复或冗余时,测试用例执行的人力和时间成本会大大增加,还可能会存在有覆盖不全或者执行成本过高的情况。
发明内容
本发明实施例提供一种测试用例确定方法、装置、电子设备及存储介质,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
第一方面,本发明实施例提供了一种测试用例确定方法,包括:
获取测试用例关联数据;其中,测试用例关联数据包括历史测试用例、待测试数据以及用例权重;
根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型;
确定初始生成树模型与待匹配生成树模型的交集测试用例数据;
根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
第二方面,本发明实施例还提供了一种测试用例确定装置,包括:
数据获取模块,用于获取测试用例关联数据;其中,测试用例关联数据包括历史测试用例、待测试数据以及用例权重;
树模型生成模块,用于根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型;
第一数据确定模块,用于确定初始生成树模型与待匹配生成树模型的交集测试用例数据;
第二数据确定模块,用于根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的测试用例确定方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的测试用例确定方法。
本实施例的技术方案,通过获取包括历史测试用例、待测试数据以及用例权重的测试用例关联数据,进而根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型,以确定初始生成树模型与待匹配生成树模型的交集测试用例数据,从而根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。在本方案中将历史测试用例以及待测试数据均转化成树模型,可以直观的建立测试需求与历史测试用例的关联关系,便于模型化的历史测试用例与待测试数据的展示与存储。而确定的交集测试用例数据能够准确反映全覆盖待匹配生成树模型所需的测试用例的特征,因此根据交集测试用例数据以及反映历史测试时用例执行成本的用例权重确定目标测试用例,可以在保证测试需求全覆盖的前提下,筛选出测试成本最低的测试用例,避免出现测试用例选择出现冗余的情况,从而提升回归测试的执行效率,解决了现有技术中人为选择测试用例存在的人工成本高、选择误差大、覆盖不理想以及执行成本高问题,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
附图说明
图1是本发明实施例一提供的一种测试用例确定方法的流程图;
图2是本发明实施例二提供的一种测试用例确定方法的流程图;
图3是本发明实施例二提供的一种森林结构的初始生成树模型的示意图;
图4是本发明实施例二提供的一种标识有待匹配生成树模型的初始生成树模型;
图5是本发明实施例二提供的一种测试用例确定方法的简单逻辑图;
图6是本发明实施例二提供的一种最小覆盖生成树的示意图;
图7是本发明实施例二提供的一种历史测试用例1与待匹配生成树模型的交集全局节点示意图;
图8是本发明实施例二提供的一种历史测试用例2与待匹配生成树模型的交集全局节点示意图;
图9是本发明实施例二提供的一种历史测试用例3与待匹配生成树模型的交集全局节点示意图;
图10是本发明实施例三提供的一种测试用例确定装置的示意图;
图11为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种测试用例确定方法的流程图,本实施例可适用于自动精准的选择回归测试用例的情况,该方法可以由测试用例确定装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备,也可以是服务器设备等。本发明实施例并不对执行测试用例确定方法的电子设备的类型进行限定。相应的,如图1所示,该方法包括如下操作:
S110、获取测试用例关联数据。
其中,测试用例关联数据可以是与符合测试需求的测试用例关联的数据,用于确定满足测试需求的测试用例。测试用例关联数据可以包括历史测试用例、待测试数据以及用例权重。历史测试用例可以是历史执行的回归测试中使用过的测试用例。待测试数据可以是符合测试需求的,用于进行回归测试的数据。示例性的,待测试数据可以包括待测功能代码和/或变更代码等。待测功能代码可以是系统的原有功能模块的测试代码。变更代码可以是系统中新增模块的测试代码,或者是某功能模块功能更新后的测试代码。用例权重可以是根据历史测试用例的历史测试情况预设的权重数值。
在本发明实施例中,可以实时获取测试用例关联数据或通过对离线数据的解析得到测试用例关联数据,以根据测试用例关联数据确定完全覆盖测试需求且测试成本最小的测试用例集合。可选的,可以根据历史执行过的回归测试确定历史测试用例,根据历史测试用例的历史测试情况确定与历史测试用例匹配的用例权重,根据当前的回归测试需求确定待测试数据。
示例性的,如果历史测试用例1在执行历史回归测试时的执行成本高于历史测试用例2在执行历史回归测试时的执行成本时,可以为历史测试用例1设置比历史测试用例2高的用例权重。
S120、根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型。
其中,初始生成树模型可以是根据历史测试用例确定的树结构。待匹配生成树模型可以是根据待测试数据确定的树结构。
在本发明实施例中,可以对测试用例关联数据解析确定历史测试用例以及待测试数据,进而在相同的树结构生成规则下,根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型。
可选的,可以由一个历史测试用例生成一个初始生成树模型,也可以通过多个历史测试用例生成一个初始生成树模型,还可以通过多个历史测试用例生成多个初始生成树模型。当通过多个历史测试用例生成多个初始生成树模型时,多个初始生成树模型可以构成一个森林结构,该森林结构中的各初始生成树模型所匹配的测试系统可以不同。本发明实施例不对历史测试用例的数量以及生成的初始生成树模型的数量进行限定。
S130、确定初始生成树模型与待匹配生成树模型的交集测试用例数据。
其中,交集测试用例数据可以是表征根据初始生成树模型与待匹配生成树模型的交集确定的至少一个历史测试用例的关联数据。示例性的,交集测试用例数据可以包括初始生成树模型与待匹配生成树模型存在交集的各历史测试用例的名称、初始生成树模型与待匹配生成树模型存在交集的各历史测试用例与待匹配生成树模型重合节点以及初始生成树模型与待匹配生成树模型存在交集的各测试用例的叶子节点等。
在本发明实施例中,可以将初始生成树模型与待匹配生成树模型进行匹配处理,确定初始生成树模型与待匹配生成树模型的交集,进而根据初始生成树模型与待匹配生成树模型的交集确定交集测试用例数据。
S140、根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
其中,目标测试用例可以是满足测试需求的测试用例,也即目标测试用例为能够完全覆盖待测试数据的测试用例集合。
在本发明实施例中,可以首先确定与交集测试用例数据匹配的历史测试用例,进而确定与交集测试用例数据匹配的历史测试用例的用例权重,从而基于预设的算法对交集测试用例数据以及与交集测试用例数据匹配的用例权重进行数据处理,得到目标测试用例。可选的,预设的算法可以包括多目标优化算法以及NP-Hard近似求解算法等,只要是能够筛选出完全覆盖待测试数据并保证执行代价最小的目标测试用例即可,本发明实施例对预设的算法不作限定。
本发明实施例能够对历史测试用例以及待测试数据进行统一建模,通过交集测试用例数据反映每个历史测试时用例与待测试数据的代码覆盖情况,并利用例权重反映测试用例的执行成本,智能地为测试人员决策出需要进行回归测试的成本最小的测试案例集合。
本实施例的技术方案,通过获取包括历史测试用例、待测试数据以及用例权重的测试用例关联数据,进而根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型,以确定初始生成树模型与待匹配生成树模型的交集测试用例数据,从而根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。在本方案中将历史测试用例以及待测试数据均转化成树模型,可以直观的建立测试需求与历史测试用例的关联关系,便于模型化的历史测试用例与待测试数据的展示与存储。而确定的交集测试用例数据能够准确反映全覆盖待匹配生成树模型所需的测试用例的特征,因此根据交集测试用例数据以及反映历史测试时用例执行成本的用例权重确定目标测试用例,可以在保证测试需求全覆盖的前提下,筛选出测试成本最低的测试用例,避免出现测试用例选择出现冗余的情况,从而提升回归测试的执行效率,解决了现有技术中人为选择测试用例存在的人工成本高、选择误差大、覆盖不理想以及执行成本高问题,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
实施例二
图2是本发明实施例二提供的一种测试用例确定方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型的具体的可选的实施方式。相应的,如图2所示,该方法包括如下操作:
S210、获取测试用例关联数据。
在本发明的一个可选实施例中,获取测试用例关联数据,可以包括:获取历史测试用例的历史执行数据;根据历史执行数据确定历史测试用例的执行时间数据以及执行复杂度数据;根据执行时间数据以及执行复杂度数据确定用例权重。
其中,历史执行数据可以是反映历史测试用例的历史测试情况的数据。执行时间数据可以用于表征历史测试用例在历史测试时的耗时程度。执行复杂度数据可以用于表征历史测试用例在历史测试时的测试复杂度。
在本发明实施例中,可以首先获取历史测试用例在多次历史测试时的历史执行数据,进而对历史执行数据进行解析,确定历史测试用例在多次历史测试时的执行时间以及运行复杂度,进而根据历史测试用例在多次历史测试时的执行时间确定执行时间数据,并根据历史测试用例在多次历史测试时的运行复杂度确定执行复杂度数据。示例性的,可以将多次历史测试时的执行时间的均值或者多次历史测试时的最长执行时间作为历史测试用例的执行时间数据,将多次历史测试时的运行复杂度的均值或者多次历史测试时的最大运行复杂度作为历史测试用例的执行复杂度数据。在得到历史测试用例的执行时间数据以及执行复杂度数据之后,可以根据执行时间数据以及执行复杂度数据为历史测试用例配置用例权重。
可选的,在历史回归测试阶段执行时,可以记录每个测试用例的执行时间以及运行复杂度,再结合每个测试用例执行所需前置条件的准备时间或者准备复杂度为每个测试用例赋予权重。
S220、根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型。
在本发明的一个可选实施例中,S220具体可以包括:
S221、通过代码覆盖检测技术获取历史测试用例的代码覆盖报告。
其中,代码覆盖检测技术可以用于检测源代码被测试的比例和程度。代码覆盖报告可以是代码覆盖测试的测试结果。
在本发明实施例中,可以在测试环境部署待测应用或系统时,可以基于代码覆盖检测技术检测历史测试用例在历史回归测试时的代码覆盖情况,生成代码覆盖报告。示例性的,可以利用代码覆盖检测工具(如Jacoco或Cobertura等)插桩,这样执行每个测试用例时,可以直接获取测试用例的代码覆盖报告。
S222、根据生成树映射规则以及代码覆盖报告生成初始生成树模型。
其中,生成树映射规则可以是生成所需树结构的规则,用于生成初始生成树模型以及待匹配生成树模型。
在本发明实施例中,可以根据树结构的构造需求确定生成树映射规则,进而根据生成树映射规则对代码覆盖报告进行映射处理,生成初始生成树模型。由于代码覆盖报告中包括构建初始生成树模型所需要的信息,可以根据生成树映射规则自动化地构建代初始生成树模型。其中,每个历史测试用例的树结构带有对应的用例权重。
示例性的,可以根据生成树映射规则可以提取代码覆盖报告中的系统名、包名、类名、方法名以及分支等关键信息,从而将代码覆盖报告转换为树形结构,得到初始生成树模型。本发明实施例对生成树映射规则提取的具体数据内容不做限定。
在本发明的一个可选实施例中,在根据生成树映射规则以及代码覆盖报告生成初始生成树模型之前,可以包括:获取生成树层级间关系数据以及同层节点排序数据;根据生成树层级间关系数据以及同层节点排序数据生成生成树映射规则。
其中,树层级间关系数据可以是表征树结构中不同层次节点排序规则的数据。同层节点排序数据可以是表征树结构中同一层次的节点的排序规则的数据。
在本发明实施例中,可以根据树结构的数据搜索效率确定生成树层级间关系数据以及同层节点排序数据,进而根据生成树层级间关系数据以及同层节点排序数据确定所需树结构的节点排布规则,从而根据节点排布规则以及节点间隔确定生成树映射规则。
示例性的,由于初始生成树模型与待匹配生成树模型的生成原理相同,以初始生成树模型的树结构为例进行说明,初始生成树模型可以包括多个层次,根节点可以是系统名,第二层节点是根节点中系统名下包括的项目代码的包名,第三层节点是每个项目代码的包名匹配的类名,第四层是每个类中包括的方法名、第五层是每个方法名匹配的分支名加代码行号。需要注意的是,森林结构中各初始生成树模型的所有子节点从左到右是有一定顺序的,按照首字母和/或数字顺序排列,字母在数字之前,如果首字母相同则根据第二个字母排列,依次类推,最终生成的森林结构的初始生成树模型可以参见图3。可以理解的是,图3中的汉字还可以转换成拼音后按照字母来排序。
S223、根据生成树映射规则以及待测试数据生成待匹配生成树模型。
在本发明实施例中,可以根据生成树映射规则对待测试数据进行映射处理,生成待匹配生成树模型。
示例性的,可以根据生成树映射规则提取待测功能代码或者变更代码(针对某几次变更以及修改问题的补丁代码通过代码管理工具如git或者CVS等的功能直接拿到相应的变更代码集合)提取变更代码或待测功能代码中的系统名、包名、类名、方法名以及分支等关键信息,从而将变更代码或待测功能代码自动转换为树形结构,得到待匹配生成树模型。假设生成的待匹配生成树模型仅与图3中的初始生成树模型1具有交集,将待匹配生成树模型的各节点用虚线进行表示在图3中的初始生成树模型进行标识,具体可参见图4。
S230、确定初始生成树模型与待匹配生成树模型的交集测试用例数据。
在本发明的一个可选实施例中,确定初始生成树模型与待匹配生成树模型的交集测试用例数据,可以包括:确定当前待匹配生成树模型的目标叶子节点;将初始生成树模型与目标叶子节点进行匹配,确定与当前待匹配生成树模型匹配的交集测试用例数据。
其中,目标叶子节点可以是当前待匹配生成树模型的全部叶子节点。
在本发明实施例中,可以对当前待匹配生成树模型进行解析确定当前匹配生成树模型的全部叶子节点,进而将得到的全部叶子节点作为目标叶子节点。从而将初始生成树模型的叶子节点与当前待匹配生成树模型的目标叶子节点进行匹配。如果初始生成树模型的叶子节点与目标叶子节点有交集,则根据交集确定与当前待匹配生成树模型匹配的交集测试用例数据。如果初始生成树模型的叶子节点与目标叶子节点无交集,则不生成交集测试用例数据。
S240、根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
在本发明的一个可选实施例中,根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例,可以包括:根据交集测试用例数据确定与当前待匹配生成树模型匹配的交集节点数量;根据与当前待匹配生成树模型匹配的交集节点数量以及用例权重确定局部覆盖测试用例;将当前待匹配生成树模型中的局部覆盖测试用例剔除,并返回执行确定当前待匹配生成树模型的目标叶子节点的操作,直至当前待匹配生成树模型的目标叶子节点为空。
其中,交集节点数量可以是初始生成树模型与待匹配生成树模型存在交集的各历史测试用例分别与当前待匹配生成树模型重合节点的数量。例如,初始生成树模型与待匹配生成树模型存在交集的历史测试用例为历史测试用例1以及历史测试用例2,历史测试用例1与当前待匹配生成树模型的重合节点的数量为2,历史测试用例2与当前待匹配生成树模型的重合节点的数量为3,则与当前待匹配生成树模型匹配的历史测试用例1的交集节点数量为2,与当前待匹配生成树模型匹配的历史测试用例2的交集节点数量为3。局部覆盖测试用例可以是根据与当前待匹配生成树模型匹配的交集节点数量以及用例权重确定的,覆盖当前待匹配生成树模型的历史测试用例。
在本发明实施例中,可以根据交集测试用例数据确定初始生成树模型与当前待匹配生成树模型存在交集的各测试用例分别与当前待匹配生成树模型的重合节点,进而统计上述各测试用例中重合节点与当前待匹配生成树模型匹配的交集节点数量,进一步确定与交集节点匹配的测试用例的用例权重,进而根据上述各测试用例的交集节点数量以及与交集节点匹配的测试用例的用例权重,从与交集节点匹配的至少一个测试用例中确定局部覆盖测试用例。在得到局部覆盖测试用例之后,将当前待匹配生成树模型中的局部覆盖测试用例进行剔除,得到更新后的当前待匹配生成树模型,并根据更新后的当前待匹配生成树模型确定新的局部覆盖测试用例(局部覆盖测试用例的确定方法在本部分已进行了说明,在此不再赘述),当更新的前待匹配生成树模型剔除新的局部覆盖测试用例之后,待匹配生成树模型的目标叶子节点为空则可以停止,如果待匹配生成树模型的目标叶子节点不为空则返回执行确定当前待匹配生成树模型的目标叶子节点的操作,直至待匹配生成树模型的目标叶子节点为空。
在一个具体的例子中,假设初始生成树模型与当前待匹配生成树模型存在交集的测试用例为测试用例1、测试用例2以及测试用例3,在得到初始生成树模型与当前待匹配生成树模型存在交集的各测试用例后,进一步分别确定测试用例1、测试用例2以及测试用例3与当前待匹配生成树模型重合节点的数量,也即分别确定测试用例1、测试用例2以及测试用例3与当前待匹配生成树模型的交集节点数量,进而确定测试用例1的用例权重a,测试用例2的用例权重b以及测试用例3的用例权重c,以进一步根据测试用例1与当前待匹配生成树模型的交集节点数量、用例权重a、测试用例2与当前待匹配生成树模型的交集节点数量、用例权重b、测试用例3与当前待匹配生成树模型的交集节点数量以及用例权重c,从测试用例1、测试用例2以及测试用例3中选择一个测试用例作为局部覆盖测试用例。
在本发明的一个可选实施例中,交集节点数量可以包括交集叶子节点数量以及交集全局节点数量,根据与当前待匹配生成树模型匹配的交集节点数量以及用例权重确定局部覆盖测试用例,可以包括:根据与当前待匹配生成树模型匹配的交集叶子节点数量以及用例权重计算第一权重密度数据;当与至少两个历史测试用例的第一权重密度数据相同的情况下,根据与当前待匹配生成树模型匹配的交集全局节点数量以及用例权重计算第二权重密度数据;根据第二权重密度数据确定局部覆盖测试用例。
其中,交集叶子节点数量可以是初始生成树模型与当前待匹配生成树模型存在交集的各历史测试用例分别与当前待匹配生成树模型重合的叶子节点的数量。交集全局节点数量可以是初始生成树模型与当前待匹配生成树模型存在交集的各历史测试用例分别与当前待匹配生成树模型重合的全部节点的数量。第一权重密度数据可以是根据与当前待匹配生成树模型匹配的交集叶子节点数量以及用例权重确定的数据,用于确定局部覆盖测试用例。第二权重密度数据可以是根据与当前待匹配生成树模型匹配的交集全局节点数量以及用例权重确定的数据,用于确定局部覆盖测试用例。
在本发明实施例中,可以根据交集测试用例数据确定初始生成树模型与当前待匹配生成树模型存在交集的各历史测试用例分别与当前待匹配生成树模型重合的叶子节点的数量,也即确定初始生成树模型中与当前待匹配生成树模型存在交集的各历史测试用例的交集叶子节点数量,进而计算各历史测试用例的交集叶子节点数量与相应历史测试用例的用例权重的比值,或者各历史测试用例的用例权重与相应交集叶子节点数量的比值,得到初始生成树模型中与当前待匹配生成树模型存在交集的各历史测试用例的第一权重密度数据。在得到各历史测试用例的第一权重密度数据之后,可以将各历史测试用例的第一权重密度数据进行比较,如果至少两个历史测试用例的第一权重密度数据相同,则需要进一步根据交集测试用例数据确定初始生成树模型与当前待匹配生成树模型存在交集的各历史测试用例分别与当前待匹配生成树模型重合的全部节点的数量,也即确定初始生成树模型中与当前待匹配生成树模型存在交集的各历史测试用例的交集全局节点数量,进而计算各历史测试用例的交集全局节点数量与相应历史测试用例的用例权重的比值,或者各历史测试用例的用例权重与相应交集全局节点数量的比值,得到初始生成树模型中与当前待匹配生成树模型存在交集的各历史测试用例的第二权重密度数据,进而比较各历史测试用例的第二权重密度数据,确定各历史测试用例的用例权重与相应交集全局节点数量的最小比值将与最小比值匹配的历史测试用例作为局部覆盖测试用例,或者确定各历史测试用例的交集全局节点数量与相应历史测试用例的用例权重的比值,将与最大比值匹配的历史测试用例作为局部覆盖测试用例。
如果任意两个历史测试用例的第一权重密度数据不相同,则确定各历史测试用例的用例权重与相应交集叶子节点数量的最小比值,将与最小比值对应的历史测试时用例作为局部覆盖测试用例,或者确定各历史测试用例的交集叶子节点数量与相应历史测试用例的用例权重的最大比值,将与最大比值对应的历史测试时用例作为局部覆盖测试用例。
在一个具体的例子中,可以通过集合覆盖来对目标测试用例的确定逻辑进行说明,给定目标集合g,以及待选集合空间S{s1,s2...,sn},n为集合元素的个数,只要在S上选出来的子集
Figure BDA0003499653380000131
认为C能覆盖g。假设待选集合空间S中的每个元素都带有权重分别是w(s1),w(s2)...w(sn),需要在S上选出的能覆盖g的所有集合中找到一个集合C{s1,s2...,sx}使得C中所有元素的权重值之和
Figure BDA0003499653380000132
最小,si∈C,而确定目标测试用例相当于在至少一个初始生成树模型中确定用例权重最小的集合覆盖待匹配生成树模型。
具体的,可以将n个初始生成树模型组成的集合记为S,si可以理解为第i个历史测试用例的初始生成树模型(i大于等于1,小于等于n),将待匹配生成树模型记为g,此时目标测试用例的确定等同于是一个带权的最小集合覆盖问题,由于带权的最小集合覆盖问题为NP-hard问题,无法在多项式时间内获得精确解,因此可以选择现有的贪心思想的近似算(简称贪心算法)法来求解,并结合回归测试以及初始生成树模型的特点来进行优化。具体的思路是:首先在集合空间S上遍历选出一个元素sj放入结果集C中,要求sj是与g的叶子节点有交集且第一权重密度数据最小的历史测试用例的初始生成树模型,进而用g与sj做差集,将(g-sj)作为新的g,重复前两步直到差集为空。例如,可以根据公式
Figure BDA0003499653380000141
计算第一权重密度数据,其中,w(sj)表示历史测试用例的初始生成树模型sj对应的用例权重,LeavesOf(sj∩g)表示历史测试用例的初始生成树模型sj与当前g的交集叶子节点数量,如果多个历史测试用例的初始生成树模型的第一权重密度数据相同时,通过比较多个历史测试用例的初始生成树模型的第二权重密度数据,将多个历史测试用例的初始生成树模型中第二权重密度数据最小的历史测试用例的初始生成树模型添加至C,将最终C包括的历史测试用例的初始生成树模型对应的历史测试用例作为目标测试用例。例如,可以根据公式
Figure BDA0003499653380000142
计算第二权重密度数据,其中,NodesOf(sj∩g)表示历史测试用例的初始生成树模型sj与当前g的交集全局节点数量。
图5是本发明实施例二提供的一种测试用例确定方法的简单逻辑图,如图5所示,可以首先获取执行时间数据以及执行复杂度数据,进而根据执行时间数据以及执行复杂度数据确定用例权重,进而获取历史测试用例的Jacoco代码覆盖报告,根据生成树映射规则以及Jacoco代码覆盖报告建立初始生成树模型,进一步根据生成树映射规则以及待测试数据建立待匹配生成树模型,从而利用贪心算法计算成本最小的全覆盖的回归测试用例的集合(目标测试用例)。
图6是本发明实施例二提供的一种最小覆盖生成树的示意图,图6中包括3个历史测试用例的初始生成树模型,历史测试用例1的初始生成树模型由系统1、项目包1、类1、方法1、方法2、分支if-1以及分支for-1组成。历史测试用例2的初始生成树模型由系统1、项目包1、类1、方法2以及分支if-2组成。历史测试用例3的初始生成树模型由系统1、项目包1、类2、方法3、项目包2、类3、方法4以及分支else-2组成。历史测试用例1、历史测试用例2以及历史测试用例3的初始生成树模型完全覆盖了待匹配生成树模型,尽管历史测试用例3的初始生成树模型还覆盖了不属于待匹配生成树模型的节点—分支else-112,但是仍然可以认为这三个测试用例组成的集合是能覆盖待匹配生成树模型的集合。进一步以图6中历史测试用例1和历史测试用例3为例来说明第一权重密度数据的计算和选择,假设历史测试用例1和历史测试用例3的用例权重都是28,由于历史测试用例1的交集叶子节点数量为2,所以历史测试用例1的第一权重密度数据是28/2=14。历史测试用例2交集叶子节点数量为1,历史测试用例2的第一权重密度数据是28/1=28。历史测试用例3交集叶子节点数量为1,历史测试用例3的第一权重密度数据是28/1=28。如果历史测试用例1和历史测试用例3在一起比较时,历史测试用例1会优先选入,因为在相同执行成本的测试用例中,历史测试用例1的覆盖率最高。同样在保证测试覆盖率的前提下平均执行成本最低的会被优先选出。此外如果历史测试用例1和其他历史测试用例的第一权重密度数据相同的情况,那就需要计算历史测试用例1的第二权重密度数据。由于每个历史测试用例的叶子节点集合与初始生成树模型是完全对应的,当测试用例的初始生成树模型与待匹配生成树模型有交集时,可以把有交集的测试用例的初始生成树模型从叶子节点返回到根节点的路径所经过的所有节点标注出来,作为该历史测试用例的交集全局节点。历史测试用例1、历史测试用例2以及历史测试用例3的初始生成树模型中交集全局节点的标注结果可以分别参见图7、图8以及图9。由于历史测试用例1的交集全局节点数量为7,所以历史测试用例1的第二权重密度数据为28/7=4。历史测试用例2的交集全局节点数量为5,所以历史测试用例2的第二权重密度数据为28/5。历史测试用例3的交集全局节点数量为4,所以历史测试用例3的第二权重密度数据为28/4=7。
本发明实施例对测试需求和测试用例统一建模,同时考虑测试用例对测试需求的覆盖率、测试用例的执行成本及数量等指标的基础上,使用优化的贪心算法来计算回归测试所需的测试用例。针对不同的回归测试需求,在同时考虑测试覆盖率和测试用例执行成本的情况下,更加高效快捷准确地确定测试用例执行成本最小的集合,有效提高了回归测试用例选择、执行的精准度和效率,进而提升测试的质量以及规范性。
本方案把历史测试用例的代码覆盖报告和回归测试需求的代码集(变更代码和/待测功能代码)进行了统一模型化处理,非常直观地反映了测试需求之间、测试用例之间以及测试用例和需求的关联关系。同时既避免了直接批量处理代码覆盖报告或者代码的巨大的空间和时间复杂度,又便于模型化地直观地展示和存储代码覆盖的主要内容。同时也为后续进行进一步的智能和精确的计算奠定了数据结构基础。
针对不同测试需求智能筛选出带权最小回归测试用例集,与现有的回归测试用例筛选方法和工具相比,依托于树模型,使用现有NP-Hard问题的一种近似解-贪心思想算法的基础上,结合回归测试以及树模型本身的特点进行优化和改进,在计算时充分考虑测试用例对测试需求完全覆盖的前提下,使得测试用例的时间和准备成本最小。为测试人员智能地做出了回归测用例集的筛选,而不是仅仅给用户提供一些筛选参考指标或者客观数据让用户自己再根据自己的判断和经验来选择。
在对测试用例进行分析建模时是基于精准的代码覆盖报告,因此比人为地根据回归策略来选择或者人为地分析测试需求以及与测试案例的关联度做判断要更加精准,大大减少了回归测试用例选择的随意性和误差性,避免了大量执行重复冗余案例、回归测试案例覆盖不全以及人为选择导致回归测试案例执行成本高的情况,更好地节省了人力和时间成本,提高了测试的准确性。
在计算最小测试案例集时,在保证覆盖率的前提下,不仅考虑测试用例的数量,还把每个测试用例可能需要复杂的环境准备,执行的时间成本等因素都综合考虑进去进行智能决策。
本实施例的技术方案,通过获取测试用例关联数据,进而通过代码覆盖检测技术获取历史测试用例的代码覆盖报告,并根据生成树映射规则以及代码覆盖报告生成初始生成树模型,进而根据生成树映射规则以及待测试数据生成待匹配生成树模型,进一步确定初始生成树模型与待匹配生成树模型的交集测试用例数据,从而根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。在本方案中将历史测试用例以及待测试数据均转化成树模型,可以直观的建立测试需求与历史测试用例的关联关系,便于模型化的历史测试用例与待测试数据的展示与存储。而确定的交集测试用例数据能够准确反映全覆盖待匹配生成树模型所需的测试用例的特征,因此根据交集测试用例数据以及反映历史测试时用例执行成本的用例权重确定目标测试用例,可以在保证测试需求全覆盖的前提下,筛选出测试成本最低的测试用例,避免出现测试用例选择出现冗余的情况,从而提升回归测试的执行效率,解决了现有技术中人为选择测试用例存在的人工成本高、选择误差大、覆盖不理想以及执行成本高问题,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例三
图10是本发明实施例三提供的一种测试用例确定装置的示意图,如图10所示,所述装置包括:数据获取模块310、树模型生成模块320、第一数据确定模块330以及第二数据确定模块340,其中:
数据获取模块310,用于获取测试用例关联数据;其中,测试用例关联数据包括历史测试用例、待测试数据以及用例权重;
树模型生成模块320,用于根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型;
第一数据确定模块330,用于确定初始生成树模型与待匹配生成树模型的交集测试用例数据;
第二数据确定模块340,用于根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
本实施例的技术方案,通过获取包括历史测试用例、待测试数据以及用例权重的测试用例关联数据,进而根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型,以确定初始生成树模型与待匹配生成树模型的交集测试用例数据,从而根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。在本方案中将历史测试用例以及待测试数据均转化成树模型,可以直观的建立测试需求与历史测试用例的关联关系,便于模型化的历史测试用例与待测试数据的展示与存储。而确定的交集测试用例数据能够准确反映全覆盖待匹配生成树模型所需的测试用例的特征,因此根据交集测试用例数据以及反映历史测试时用例执行成本的用例权重确定目标测试用例,可以在保证测试需求全覆盖的前提下,筛选出测试成本最低的测试用例,避免出现测试用例选择出现冗余的情况,从而提升回归测试的执行效率,解决了现有技术中人为选择测试用例存在的人工成本高、选择误差大、覆盖不理想以及执行成本高问题,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
可选的,数据获取模块310,具体用于获取所述历史测试用例的历史执行数据;根据所述历史执行数据确定所述历史测试用例的执行时间数据以及执行复杂度数据;根据所述执行时间数据以及所述执行复杂度数据确定所述用例权重。
可选的,树模型生成模块320,具体用于通过代码覆盖检测技术获取所述历史测试用例的代码覆盖报告;根据生成树映射规则以及所述代码覆盖报告生成所述初始生成树模型;根据所述生成树映射规则以及所述待测试数据生成所述待匹配生成树模型。
可选的,测试用例确定装置还包括树映射规则生成模型,用于获取生成树层级间关系数据以及同层节点排序数据;根据所述生成树层级间关系数据以及所述同层节点排序数据生成所述生成树映射规则。
可选的,第一数据确定模块330,具体用于确定当前待匹配生成树模型的目标叶子节点;将所述初始生成树模型与所述目标叶子节点进行匹配,确定与所述当前待匹配生成树模型匹配的交集测试用例数据。
可选的,第二数据确定模块340,具体用于根据所述交集测试用例数据确定与所述当前待匹配生成树模型匹配的交集节点数量;根据与所述当前待匹配生成树模型匹配的交集节点数量以及用例权重确定局部覆盖测试用例;将所述当前待匹配生成树模型中的所述局部覆盖测试用例剔除,并返回执行确定当前待匹配生成树模型的目标叶子节点的操作,直至所述当前待匹配生成树模型的目标叶子节点为空。
可选的,第二数据确定模块340,具体用于根据与所述当前待匹配生成树模型的交集叶子节点数量以及所述用例权重计算第一权重密度数据;当与至少个历史测试用例的第一权重密度数据相同的情况下,根据与所述当前待匹配生成树模型匹配的交集全局节点数量以及用例权重计算第二权重密度数据;根据所述第二权重密度数据确定所述局部覆盖测试用例。
上述测试用例确定装置可执行本发明任意实施例所提供的测试用例确定方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的测试用例确定方法。
由于上述所介绍的测试用例确定装置为可以执行本发明实施例中的测试用例确定方法的装置,故而基于本发明实施例中所介绍的测试用例确定方法,本领域所属技术人员能够了解本实施例的测试用例确定装置的具体实施方式以及其各种变化形式,所以在此对于该测试用例确定装置如何实现本发明实施例中的测试用例确定方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中测试用例确定方法所采用的装置,都属于本申请所欲保护的范围。
实施例四
图11为本发明实施例四提供的一种电子设备的结构示意图。图11示出了适于用来实现本发明实施方式的电子设备412的框图。图11显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备412以通用计算设备的形式表现。电子设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(MicroChannel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如RAM(Random Access Memory,随机存取存储器)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图11未显示,通常称为“硬盘驱动器”)。尽管图11中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-ReadOnlyMemory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块426的程序436,可以存储在例如存储装置428中,这样的程序模块426包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块426通常执行本发明所描述的实施例中的功能和/或方法。
电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、摄像头、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网WideArea Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的测试用例确定方法,包括:获取测试用例关联数据;其中,测试用例关联数据包括历史测试用例、待测试数据以及用例权重;根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型;确定初始生成树模型与待匹配生成树模型的交集测试用例数据;根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
本实施例的技术方案,通过获取包括历史测试用例、待测试数据以及用例权重的测试用例关联数据,进而根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型,以确定初始生成树模型与待匹配生成树模型的交集测试用例数据,从而根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。在本方案中将历史测试用例以及待测试数据均转化成树模型,可以直观的建立测试需求与历史测试用例的关联关系,便于模型化的历史测试用例与待测试数据的展示与存储。而确定的交集测试用例数据能够准确反映全覆盖待匹配生成树模型所需的测试用例的特征,因此根据交集测试用例数据以及反映历史测试时用例执行成本的用例权重确定目标测试用例,可以在保证测试需求全覆盖的前提下,筛选出测试成本最低的测试用例,避免出现测试用例选择出现冗余的情况,从而提升回归测试的执行效率,解决了现有技术中人为选择测试用例存在的人工成本高、选择误差大、覆盖不理想以及执行成本高问题,能够节约选择测试用例的人工成本,降低人为选择测试用例造成的选择误差,在保证测试用例全覆盖的前提下,提升回归测试的执行效率。
实施例五
本发明实施例五还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的测试用例确定方法,包括:获取测试用例关联数据;其中,测试用例关联数据包括历史测试用例、待测试数据以及用例权重;根据历史测试用例生成初始生成树模型,并根据待测试数据生成待匹配生成树模型;确定初始生成树模型与待匹配生成树模型的交集测试用例数据;根据交集测试用例数据以及与交集测试用例数据匹配的用例权重确定目标测试用例。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read OnlyMemory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种测试用例确定方法,其特征在于,包括:
获取测试用例关联数据;其中,所述测试用例关联数据包括历史测试用例、待测试数据以及用例权重;
根据所述历史测试用例生成初始生成树模型,并根据所述待测试数据生成待匹配生成树模型;
确定所述初始生成树模型与所述待匹配生成树模型的交集测试用例数据;
根据所述交集测试用例数据以及与所述交集测试用例数据匹配的用例权重确定目标测试用例。
2.根据权利要求1所述的方法,其特征在于,所述获取测试用例关联数据,包括:
获取所述历史测试用例的历史执行数据;
根据所述历史执行数据确定所述历史测试用例的执行时间数据以及执行复杂度数据;
根据所述执行时间数据以及所述执行复杂度数据确定所述用例权重。
3.根据权利要求1所述的方法,其特征在于,所述根据所述历史测试用例生成初始生成树模型,并根据所述待测试数据生成待匹配生成树模型,包括:
通过代码覆盖检测技术获取所述历史测试用例的代码覆盖报告;
根据生成树映射规则以及所述代码覆盖报告生成所述初始生成树模型;
根据所述生成树映射规则以及所述待测试数据生成所述待匹配生成树模型。
4.根据权利要求3所述的方法,其特征在于,在所述根据生成树映射规则以及所述代码覆盖报告生成所述初始生成树模型之前,包括:
获取生成树层级间关系数据以及同层节点排序数据;
根据所述生成树层级间关系数据以及所述同层节点排序数据生成所述生成树映射规则。
5.根据权利要求1所述的方法,其特征在于,所述确定所述初始生成树模型与所述待匹配生成树模型的交集测试用例数据,包括:
确定当前待匹配生成树模型的目标叶子节点;
将所述初始生成树模型与所述目标叶子节点进行匹配,确定与所述当前待匹配生成树模型匹配的交集测试用例数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述交集测试用例数据以及与所述交集测试用例数据匹配的用例权重确定目标测试用例,包括:
根据所述交集测试用例数据确定与所述当前待匹配生成树模型匹配的交集节点数量;
根据与所述当前待匹配生成树模型匹配的交集节点数量以及用例权重确定局部覆盖测试用例;
将所述当前待匹配生成树模型中的所述局部覆盖测试用例剔除,并返回执行确定当前待匹配生成树模型的目标叶子节点的操作,直至所述当前待匹配生成树模型的目标叶子节点为空。
7.根据权利要求6所述的方法,其特征在于,所述交集节点数量包括交集叶子节点数量以及交集全局节点数量,所述根据与所述当前待匹配生成树模型匹配的交集节点数量以及用例权重确定局部覆盖测试用例,包括:
根据与所述当前待匹配生成树模型匹配的交集叶子节点数量以及所述用例权重计算第一权重密度数据;
当与至少两个历史测试用例的第一权重密度数据相同的情况下,根据与所述当前待匹配生成树模型匹配的交集全局节点数量以及用例权重计算第二权重密度数据;
根据所述第二权重密度数据确定所述局部覆盖测试用例。
8.一种测试用例确定装置,其特征在于,包括:
数据获取模块,用于获取测试用例关联数据;其中,所述测试用例关联数据包括历史测试用例、待测试数据以及用例权重;
树模型生成模块,用于根据所述历史测试用例生成初始生成树模型,并根据所述待测试数据生成待匹配生成树模型;
第一数据确定模块,用于确定所述初始生成树模型与所述待匹配生成树模型的交集测试用例数据;
第二数据确定模块,用于根据所述交集测试用例数据以及与所述交集测试用例数据匹配的用例权重确定目标测试用例。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的测试用例确定方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的测试用例确定方法。
CN202210124049.2A 2022-02-10 2022-02-10 一种测试用例确定方法、装置、电子设备及存储介质 Pending CN114490404A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210124049.2A CN114490404A (zh) 2022-02-10 2022-02-10 一种测试用例确定方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210124049.2A CN114490404A (zh) 2022-02-10 2022-02-10 一种测试用例确定方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114490404A true CN114490404A (zh) 2022-05-13

Family

ID=81477614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210124049.2A Pending CN114490404A (zh) 2022-02-10 2022-02-10 一种测试用例确定方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114490404A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968787A (zh) * 2022-05-27 2022-08-30 中移互联网有限公司 基于节点关系的测试方法、装置及电子设备
CN116561016A (zh) * 2023-07-11 2023-08-08 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN117093503A (zh) * 2023-10-17 2023-11-21 杭银消费金融股份有限公司 一种客户端测试管理方法与系统
CN117376228A (zh) * 2023-11-27 2024-01-09 中国电子科技集团公司第十五研究所 一种网络安全测试工具确定方法及装置
CN117493174A (zh) * 2023-10-23 2024-02-02 中移互联网有限公司 测试用例确定、云盘回归测试方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968787A (zh) * 2022-05-27 2022-08-30 中移互联网有限公司 基于节点关系的测试方法、装置及电子设备
CN114968787B (zh) * 2022-05-27 2023-09-19 中移互联网有限公司 基于节点关系的测试方法、装置及电子设备
CN116561016A (zh) * 2023-07-11 2023-08-08 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN116561016B (zh) * 2023-07-11 2023-11-03 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN117093503A (zh) * 2023-10-17 2023-11-21 杭银消费金融股份有限公司 一种客户端测试管理方法与系统
CN117093503B (zh) * 2023-10-17 2024-02-06 杭银消费金融股份有限公司 一种客户端测试管理方法与系统
CN117493174A (zh) * 2023-10-23 2024-02-02 中移互联网有限公司 测试用例确定、云盘回归测试方法及装置
CN117376228A (zh) * 2023-11-27 2024-01-09 中国电子科技集团公司第十五研究所 一种网络安全测试工具确定方法及装置
CN117376228B (zh) * 2023-11-27 2024-05-28 中国电子科技集团公司第十五研究所 一种网络安全测试工具确定方法及装置

Similar Documents

Publication Publication Date Title
CN114490404A (zh) 一种测试用例确定方法、装置、电子设备及存储介质
Gong et al. Evolutionary generation of test data for many paths coverage based on grouping
CN108268373A (zh) 自动化测试用例管理方法、装置、设备及存储介质
CN114444608B (zh) 数据集质量评估方法及装置、电子设备及存储介质
CN110688536A (zh) 一种标签预测方法、装置、设备和存储介质
CN111582315A (zh) 样本数据处理方法、装置及电子设备
CN115237804A (zh) 性能瓶颈的评估方法、装置、电子设备、介质和程序产品
CN115659335A (zh) 基于混合模糊测试的区块链智能合约漏洞检测方法及装置
CN117743601B (zh) 一种自然资源知识图谱补全方法、装置、设备及介质
CN115145817A (zh) 一种软件测试方法、装置、设备及可读存储介质
CN112783513B (zh) 一种代码风险检查方法、装置及设备
CN112905435B (zh) 基于大数据的工作量评估方法、装置、设备及存储介质
CN116069674B (zh) 一种用于等级测评的安全评估方法及系统
CN112580885A (zh) 一种配件合格率的预测方法、装置、设备及存储介质
CN109582562B (zh) 基于生成对抗网络的智能化软件测试及云平台构建方法
CN111582313A (zh) 样本数据生成方法、装置及电子设备
CN116720946A (zh) 基于循环神经网络的信贷风险预测方法、装置和存储介质
CN115827353A (zh) 故障诊断方法及装置
CN115829209A (zh) 基于碳路径的绿色智能仓库环保质量分析方法及装置
CN111144429A (zh) 对象分类方法及其系统、计算机系统及计算机可读介质
CN113590484A (zh) 算法模型服务测试方法、系统、设备及存储介质
CN113342632A (zh) 仿真数据自动化处理方法、装置、电子设备及存储介质
CN117806981B (zh) 一种cfd软件自动化测试方法及系统
CN113434408B (zh) 一种基于测试预言的单元测试用例排序方法
CN117271347A (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