1.本发明涉及人工智能及大数据技术领域,尤其涉及一种软件产品错误推测方法及装置。
背景技术:2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.现有软件产品错误推测,主要是根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能存在的错误和容易发生错误的特殊情况,再根据它们来设计测试用例。但这种错误推测的方法,对测试人员主观经验和敏锐度依赖性强,并且测试效果不够直观,影响测试效率。
技术实现要素:4.本发明实施例提供一种软件产品错误推测方法,用以解决现有软件产品错误推测方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该方法包括:
5.获取待推测软件产品的测试数据;
6.根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;
7.根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;
8.根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。
9.本发明实施例还提供一种软件产品错误推测装置,用以解决现有软件产品错误推测方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该装置包括:
10.数据获取模块,用于获取待推测软件产品的测试数据;
11.数据处理模块,用于根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;
12.模型运用模块,用于根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;
13.错误推测模块,用于根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。
14.本发明实施例还提供一种计算机设备,用以解决现有软件产品错误推测方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件产品错误推测方法。
15.本发明实施例还提供一种计算机可读存储介质,用以解决现有软件产品错误推测
方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该计算机可读存储介质存储有执行上述软件产品错误推测方法的计算机程序。
16.本发明实施例中,获取待推测软件产品的测试数据;根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。与现有技术中的技术方案相比,可以实现以已知数据为样本,分析当前测试任务待分类项落在分类树上叶子节点的值,揭示可能存在的缺陷,较为直观和量化。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
18.图1为本发明实施例中提供的软件产品错误推测方法的流程图;
19.图2为本发明实施例中提供的软件产品错误推测方法的机器学习训练流程图;
20.图3为本发明实施例中提供的软件产品错误推测方法的构建决策树的一具体实例图;
21.图4为本发明实施例中提供的软件产品错误推测装置示意图;
22.图5为本发明实施例中提供的软件产品错误推测装置的一具体实例图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
24.本发明实施例中提供了一种软件产品错误推测方法,图1为本发明实施例中提供的软件产品错误推测方法的流程图,如图1所示,该方法包括如下步骤:
25.步骤101:获取待推测软件产品的测试数据;
26.步骤102:根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;
27.步骤103:根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;
28.步骤104:根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。
29.由图1所示流程可以得知,本发明实施例的软件产品错误推测方法不同于现有技术的根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能存在的错误和容易发生错误的特殊情况,再根据它们来设计测试用例的方案,而是根据待推测软件产品的测试数据,以及预先训练好的cart决策树模型,通过查找叶子节点的值,推测软件产品是否发生错误,更为直观和量化。
30.在一个实施例中,在根据所述待推测软件产品的特征值,从预先训练好的cart决
策树模型上查找对应的叶子节点之前,可以包括:获取样本数据集,其中,所述样本数据集中包含:测试数据和对应的特征数据;根据所述样本数据集,通过机器学习训练得到所述cart决策树模型。举一例,本例中,cart决策树是一种树形结构,其中每个内部节点表示一个特征的测试,每个分支代表一个测试输出,每个叶子节点代表一种类别,根据通过机器学习训练得到的cart决策树模型,可以对新输入的测试数据,给出正确的分类。
31.图2为本发明实施例中提供的软件产品错误推测方法的机器学习训练流程图,如图2所示,在一个实施例中,根据所述样本数据,通过机器学习训练得到所述cart决策树模型,包括如下步骤:
32.步骤201:重复执行以下步骤,直到达到预设终止条件;
33.步骤202:计算当前节点各个特征的特征值对样本数据集的基尼系数,得到多个基尼系数;
34.步骤203:根据所述多个基尼系数中最小基尼系数对应的特征和特征值,将样本数据集划分为第一数据集和第二数据集,并建立当前节点的第一子节点和第二子节点,其中,第一子节点的数据集为第一数据集,第二子节点的数据集为第二数据集。
35.其中,重复执行以下步骤,直到达到预设终止条件:计算当前节点各个特征的特征值对样本数据集的基尼系数,得到多个基尼系数;根据所述多个基尼系数中最小基尼系数对应的特征和特征值,将样本数据集划分为第一数据集和第二数据集,并建立当前节点的第一子节点和第二子节点,其中,第一子节点的数据集为第一数据集,第二子节点的数据集为第二数据集。需要说明的是,当达到预设终止条件时,所述cart决策树模型建立完成。
36.在一个实施例中,所述预设终止条件可以包括如下任意一种或几种的组合:特征已用完、子节点中没有样本数据集、决策树模型已达到最大深度、节点样本数量达到第一预设阈值、gini系数小于第二预设阈值。
37.图3为本发明实施例中提供的软件产品错误推测方法的构建决策树的一具体实例图,如图3所示,本例中:通过已知结果和真实值构建决策树,树上的非叶子节点是特征值,叶子节点是对应特征值取值的样本,取值为叶子节点上样本最多的真实值,若有一待测数据特征为手机银行、联机,则预测其结果与样本s1一致。
38.本发明实施例中还提供了一种软件产品错误推测装置,如下面的实施例所述。由于该装置解决问题的原理与软件产品错误推测方法相似,因此该装置的实施可以参见软件产品错误推测方法的实施,重复之处不再赘述。
39.本发明实施例中提供了一种软件产品错误推测装置,图4为本发明实施例中提供的软件产品错误推测装置示意图,如图4所示,该装置包括如下模块:
40.数据获取模块41,用于获取待推测软件产品的测试数据;
41.数据处理模块42,用于根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;
42.模型运用模块43,用于根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;
43.错误推测模块44,用于根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。
44.图5为本发明实施例中提供的软件产品错误推测装置的一具体实例图,如图5所
示,在一个实施例中,所述的软件产品错误推测装置还包括:
45.样本数据获取模块51,用于获取样本数据集,其中,所述样本数据集中包含:测试数据和对应的特征数据;
46.模型训练模块52,用于根据所述样本数据集,通过机器学习训练得到所述cart决策树模型。
47.在一个实施例中,模型训练模块52具体用于:重复执行以下步骤,直到达到预设终止条件:计算当前节点各个特征的特征值对样本数据集的基尼系数,得到多个基尼系数;根据所述多个基尼系数中最小基尼系数对应的特征和特征值,将样本数据集划分为第一数据集和第二数据集,并建立当前节点的第一子节点和第二子节点,其中,第一子节点的数据集为第一数据集,第二子节点的数据集为第二数据集。
48.在一个实施例中,所述预设终止条件包括如下任意一种或几种的组合:特征已用完、子节点中没有样本数据集、决策树模型已达到最大深度、节点样本数量达到第一预设阈值、gini系数小于第二预设阈值。
49.本发明实施例还提供一种计算机设备,用以解决现有软件产品错误推测方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现:上述软件产品错误推测方法。
50.本发明实施例还提供一种计算机可读存储介质,用以解决现有软件产品错误推测方法对测试人员主观经验和敏锐度依赖性强,且测试效果不够直观的技术问题,该计算机可读存储介质存储有执行上述方法的计算机程序,该计算机程序被处理器执行时实现:上述软件产品错误推测方法。
51.综上所述,本发明实施例中,获取待推测软件产品的测试数据;根据所述待推测软件产品的测试数据,确定所述待推测软件产品的特征值;根据所述待推测软件产品的特征值,从预先训练好的cart决策树模型上查找对应的叶子节点;根据所述叶子节点的值,确定所述待推测软件产品是否发生错误。与现有技术中的技术方案相比,可以实现以已知数据为样本,分析当前测试任务待分类项落在分类树上叶子节点的值,揭示可能存在的缺陷,较为直观和量化。
52.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
53.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
54.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
55.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
56.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。