一种测试案例自动生成方法及装置
文献发布时间:2023-06-19 12:02:28
技术领域
本申请涉及人工智能领域,可以用于金融领域,具体是一种测试案例自动生成方法及装置。
背景技术
验收测试是软件部署之前的最后一个测试环节,验收测试具有黑盒/灰盒测试特点,也就是说,软件测试人员往往只了解待测程序清单,缺少对于程序具体调用、方式及实现方式的把握。在传统的验收测试中,测试人员可以根据开发人员提供的测试案例及对应的待测程序清单展开测试。
然而,对于企业级软件工程而言,代码往往经过多重封装后才提供服务,部分代码耦合度较高,测试人员如果只根据软件系统设计及开发人员提供的待测程序清单制定测试案例很容易出现测试不充分、存量交易改造无法覆盖全面等测试漏洞。为了降低漏洞发生风险,传统的方法是通过将过往的产品需求转化为测试资产,然后不断积累投产风险较高的存量案例,形成较完整的测试案例库。但以上方式需要依靠大量人力才能完成全测试场景的覆盖,成本高、收益低。
发明内容
针对现有技术中的问题,本申请提供一种测试案例自动生成方法及装置,能够利用预先构建的随机森林案例选择模型自动生成测试案例。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种测试案例自动生成方法,包括:
获取待选测试案例;
将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例;所述随机森林案例选择模型包括多个预先生成的决策树分类器。
进一步地,在将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例之前,还包括:
获取本期程序改造的清单;
根据预先建立的程序与案例的对应关系确定待输入所述随机森林案例选择模型的待选测试案例是否为所述本期被改造的程序所对应的测试案例;
如果是,则将该测试案例确定为本期应测可选案例。
进一步地,预先生成决策树分类器的步骤,包括:
将获取到的历史应测案例及历史无需测试案例按照预设的划分比例随机划分为训练集及测试集;
在所述训练集中,确定所述待选测试案例对应的各属性的信息增益数值;
根据所述信息增益数值的大小构建所述决策树分类器;所述决策树分类器包括各属性对应的属性节点。
进一步地,在根据所述信息增益数值的大小构建所述决策树分类器之后,还包括:
利用所述测试集对所述决策树分类器进行剪枝。
进一步地,所述利用所述测试集对所述决策树分类器进行剪枝,包括:
依次剔除所述决策树分类器中的每一个属性节点,并根据所述测试集计算剔除该属性节点后的决策树分类器在确定所述测试案例时的准确率;
将剔除该属性节点后的决策树分类器对应的准确率与剔除该属性节点前的决策树分类器在确定所述测试案例时的准确率进行比对;
根据比对结果对所述决策树分类器进行剪枝。
进一步地,所述将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例,包括:
分别利用各决策树分类器,根据所述选测试案例的属性确定对应的本期应测初始案例;
对各本期应测初始案例进行投票,并根据投票结果确定所述本期应测案例。
第二方面,本申请提供一种测试案例自动生成装置,包括:
案例获取单元,用于获取待选测试案例;
案例生成单元,用于将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例;所述随机森林案例选择模型包括多个预先生成的决策树分类器。
进一步地,所述测试案例自动生成装置,还包括:
改造清单获取单元,用于获取本期程序改造的清单;
对应案例确定单元,用于根据预先建立的程序与案例的对应关系确定待输入所述随机森林案例选择模型的待选测试案例是否为所述本期被改造的程序所对应的测试案例;
应测可选案例对应单元,用于将该测试案例确定为本期应测可选案例。
进一步地,所述的测试案例自动生成装置,还包括:
训练集测试集划分单元,用于将获取到的历史应测案例及历史无需测试案例按照预设的划分比例随机划分为训练集及测试集;
信息增益确定单元,用于在所述训练集中,确定所述待选测试案例对应的各属性的信息增益数值;
决策树分类器构建单元,用于根据所述信息增益数值的大小构建所述决策树分类器;所述决策树分类器包括各属性对应的属性节点。
进一步地,所述决策树分类器构建单元,还具体用于:
利用所述测试集对所述决策树分类器进行剪枝。
进一步地,所述决策树分类器构建单元,包括:
准确率确定模块,用于依次剔除所述决策树分类器中的每一个属性节点,并根据所述测试集计算剔除该属性节点后的决策树分类器在确定所述测试案例时的准确率;
准确率比对模块,用于将剔除该属性节点后的决策树分类器对应的准确率与剔除该属性节点前的决策树分类器在确定所述测试案例时的准确率进行比对;
剪枝模块,用于根据比对结果对所述决策树分类器进行剪枝。
进一步地,所述案例生成单元,包括:
应测初始案例确定模块,用于分别利用各决策树分类器,根据所述选测试案例的属性确定对应的本期应测初始案例;
本期应测案例确定模块,用于对各本期应测初始案例进行投票,并根据投票结果确定所述本期应测案例。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述测试案例自动生成方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述测试案例自动生成方法的步骤。
针对现有技术中的问题,本申请提供的测试案例自动生成方法及装置,能够利用预先构建的随机森林案例选择模型自动生成测试案例,辅助软件测试人员工作,即使在软件测试人员不了解程序代码内容的情况下,也能进行黑盒/灰盒测试,其所筛选出的测试案例与程序代码清单及案例自身风险具有较强的关联性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中测试案例自动生成方法的流程图之一;
图2为本申请实施例中测试案例自动生成方法的流程图之二;
图3为本申请实施例中测试案例自动生成方法的流程图之三;
图4为本申请实施例中利用测试集对决策树分类器进行剪枝的流程图;
图5为本申请实施例中确定本期应测案例的流程图;
图6为本申请实施例中测试案例自动生成装置的结构图之一;
图7为本申请实施例中测试案例自动生成装置的结构图之二;
图8为本申请实施例中测试案例自动生成装置的结构图之三;
图9为本申请实施例中决策树分类器构建单元的结构图;
图10为本申请实施例中案例生成单元的结构图;
图11为本申请实施例中的电子设备的结构示意图;
图12为本申请实施例中数据流走向的示意图;
图13为本申请实施例中决策树分类器的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请提供的测试案例自动生成方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本申请提供的测试案例自动生成方法及装置的应用领域不做限定。
参见图1,为了能够利用预先构建的随机森林案例选择模型自动生成测试案例,本申请提供一种测试案例自动生成方法,包括:
S101:获取待选测试案例;
S102:将待选测试案例输入预先构建的随机森林案例选择模型以根据选测试案例的属性确定本期应测案例;随机森林案例选择模型包括多个预先生成的决策树分类器。
可以理解的是,本申请提供的测试案例自动生成方法利用预先构建的随机森林案例选择模型自动生成测试案例,辅助软件测试人员进行测试准备工作。即使在软件测试人员不完全了解程序代码具体内容的情况下,也能进行软件黑盒/灰盒测试。利用预先构建的随机森林案例选择模型筛选出的本期应测案例与应测案例所对应的程序功能异常发生风险具有较强的关联性。
具体地,本申请可以利用如图12所示的应测案例筛选系统筛选出本期应测案例。应测案例筛选系统包括:①测试案例输出服务器,用于筛选本期应测案例并将其输出;②随机森林案例选择模型服务器,用于存储预先构建的随机森林案例选择模型;③测试案例信息存储服务器,用于存储所有待选测试案例;④案例与代码对应关系存储服务器(hbase),用于存储待选测试案例与代码的对应关系,该对应关系可以表示出各段代码所对应的待选测试案例;⑤研发测试管理服务器以及便携电脑,用于方便软件开发人员与软件测试人员进行软件测试部署。
在具体实施时,软件测试人员将软件开发人员提供的历史往期改造程序对应的测试案例及该案例关联的程序清单录入图12所示的案例与代码对应关系存储服务器(hbase)。当新一期的(当期)版本测试周期开始时,应测案例筛选系统会根据新一期的(当期)程序修改清单筛选出合理的测试案例。
其中,案例与代码对应关系存储服务器可以存储软件开发人员提供的测试案例及关联的程序清单。考虑到案例所关联的程序数量可能不同,同时所关联的程序还具有可扩展性等特征,该装置拟将案例与代码对应关系的数据存储在Bigtable上。
Bigtable是一种稀疏的、分布式的、持久化存储的多维度有序映射表,每一条数据是一个key-value对。Bigtable的键有三维,分别是行键(row key)、列键(column key)及时间戳(timestamp),而value是一个字符串。在Bigtable中,每行所对应的列的数量是不受限制的,可以随时增加或减少。这样,模型可以将待选测试案例编号作为每个key-value对的行键存储,将待选测试案例涉及的工程及代码路径作为列键存储,value值存储为0或1。从而可将任意数量的代码与案例的对应关系存储下来。
例如,扫码登录案例编号10,涉及A系统扫码构件a、登录公共构件b、查询银行卡号代码c及httpserlvet代码d四部分代码,那么在Bigtable里面,可以存入四条数据,行键为10,列键为A-a、A-b、A-c、A-d,value值为1。如果后续改造该案例需要新关联B系统e代码,添加行键为10,列键为B-e的key-value对即可满足需求。通过这种方式,当A系统程序a发生修改时,查询A系统程序a关联的所有案例,只需查询列键为A-a的所有案例即可,随后将所查出来的结果展现给软件测试人员。
本申请实施例可以根据待选测试案例是否涉及转账汇款支付等金额交易(下称是否涉及动账)、是否为高并发、是否易引起客户大规模投诉、是否近期出现过生产问题等情况(下称案例属性),利用随机森林案例选择模型筛选本期应测案例。
从上述描述可知,本申请提供的测试案例自动生成方法,能够利用预先构建的随机森林案例选择模型自动生成测试案例,辅助软件测试人员工作,即使在软件测试人员不了解程序代码内容的情况下,也能进行黑盒/灰盒测试,其所筛选出的测试案例与程序代码清单及案例自身风险具有较强的关联性。
参见图2,在将待选测试案例输入预先构建的随机森林案例选择模型以根据选测试案例的属性确定本期应测案例之前,还包括:
S201:获取本期程序改造的清单;
S202:根据预先建立的程序与案例的对应关系确定待输入随机森林案例选择模型的待选测试案例是否为本期被改造的程序所对应的测试案例;
S203:如果是,则将该测试案例确定为本期应测可选案例;
S204:继续筛查其他待选测试案例。
可以理解的是,考虑到每次程序改造完成之后都会利用测试案例进行软件测试,因此仅需要对本期被改造的程序进行测试,而无需对历史往期被改造的程序进行重复测试。软件测试人员可以根据开发人员所提供的本期程序改造清单获知哪些程序属于本期改造程序。由于在图12所示的案例与代码对应关系存储服务器(hbase)中存储有程序与案例的对应关系,软件测试人员可以根据预先建立的程序与案例的对应关系确定待输入随机森林案例选择模型的待选测试案例是否为本期被改造的程序所对应的测试案例;如果是,则将该测试案例确定为本期应测可选案例;否则继续筛查其他待选测试案例。后续会将本期应测可选案例输入随机森林案例选择模型作为待选测试案例参与筛选,以便最终得到本期应测案例。
从上述描述可知,本申请提供的测试案例自动生成方法,能够确定本期应测可选案例。
参见图3,预先生成决策树分类器的步骤,包括:
S301:将获取到的历史应测案例及历史无需测试案例按照预设的划分比例随机划分为训练集及测试集;
S302:在训练集中,确定待选测试案例对应的各属性的信息增益数值;
S303:根据信息增益数值的大小构建决策树分类器;决策树分类器包括各属性对应的属性节点。
可以理解的是,本申请实施例中的随机森林案例选择模型包括多个预先生成的决策树分类器。随机森林案例选择模型可以依据案例的属性选择出当期程序修改版本对应的应测案例。案例的属性可以作为确定待选测试案例是否为应测案例的标准。本申请实施例中的属性包括但不限于该待选测试案例是否引发过生产问题、该待选测试案例是否涉及动账、该待选测试案例是否为高并发、该待选测试案例是否易引起投诉等。
决策树分类器可以按照程序修改版本生成,也就是说,每个决策树分类器对应一期程序修改版本,但本申请不以此为限,决策树分类器也可以按照其他划分方式生成。
具体地,参见图12,一个决策树分类器的生成过程可以如下:
①软件测试人员在案例测试输出系统中导入开发同事针对历史某期程序修改版本提供的待选测试案例及与之关联的程序清单。案例测试输出系统将信息存入案例与代码对应关系存储服务器中。
②软件测试人员在案例测试输出系统中将所有的待选测试案例划分为训练集与测试集,并存入测试案例信息存储服务器。根据过往某期修改版本测试情况及投产情况,将训练集与测试集中所有的待选测试案例定性为该期(过往某期)修改版本应测案例或该期(过往某期)修改版本无需测试案例。然后,触发随机森林算法得到该期(过往某期)修改版本对应的决策树分类器。
应用上述方法,本申请实施例可以针对过往各期程序修改版本生成所对应的决策树分类器,这些决策树分类器可以共同构成随机森林案例选择模型,用于筛选出当期版本应测案例。
需要说明的是,决策树分类器是一种树形结构的选择器,其最上面的节点为根节点。根节点是整个决策树分类器的开始,每个分支是一个新的决策节点,每个决策节点代表一个问题或者一个决策。决策树分类器的机器学习过程可以通过训练集完成,具体的机器学习过程可以参照现有机器学习技术。通过机器学习可以确定决策树分类器的各分支点。
举例而言,如果利用上期测试结果生成一个上期程序修改版本对应的决策树分类器,通常需要以下几个步骤:
a.软件测试人员根据上期软件测试情况及投产后的运行情况,将所有待选测试案例分为上期应测案例或上期无需测试案例。
b.随机将上述案例划分为训练集及测试集。其中,训练集可以用于拟合出决策树分类器,测试集可以用于对拟合出的决策树分类器进行剪枝处理,以解决模型过拟合的问题。在较佳的实施例中,训练集与测试集的比例可以为4比1。
c.在训练集中生成为一个根节点,然后根据一定的划分原则(如信息增益最大原则)选择训练集中案例的某一属性作为第一个分支节点。
需要说明的是,信息增益原则涉及信息熵的概念,信息熵是度量样本集合纯度最常用的指标。以本申请实施例为例,假定当前样本集合D(训练集)中应测案例的比例为p1,无需测试案例的比例为p2,那么训练集的信息熵为Ent(D)=-(p1×log(p1)+p2×log(p2)),取对数的运算一般可以2为底。
接下来需计算各属性的信息增益,将当前样本集合D按照训练集某一属性a作为划分条件,例如以该待选测试案例是否涉及动账做划分,则会将样本集合划分为两个部分D1及D2。
根据上述公式分别可以计算出两个子集合的信息熵D1与D2。考虑到两个集合样本(待选测试案例)的数量不同,可以给两个子集合赋予对应的权重|D1|/|D|与|D2|/|D|,从而计算出该待选测试案例在是否涉及动账这一属性上对样本集D进行划分所获得的信息增益:
Gain(D,a)=Ent(D)-(|D1|/|D)×ENT(D1)-(|D2|/|D)×ENT(D2);其中,|D1|/|D|与|D2|/|D|之和应该为一。
按照上述方法可以计算出所有属性的信息增益,选择信息增益最大的属性作为第一个划分原则(第一节点)。根据这一划分原则将选择结果为需要测试的案例(样本)剔除,剔除后的剩余的样本(测试案例)集合将用于下一次划分使用。
d.随后依据同样的划分原则(如信息增益最大原则)在c步骤中剩余的样本集合中,从剩余的样本属性选择下一个划分原则,重复c流程。当所有的属性选择完毕后,即是一个决策树分类器。
从上述描述可知,本申请提供的测试案例自动生成方法,能够预先生成决策树分类器,进而生成随机森林案例选择模型。
一实施例中,在根据信息增益数值的大小构建决策树分类器之后,还包括:利用测试集对决策树分类器进行剪枝。
参见图4,利用测试集对决策树分类器进行剪枝,包括:
S401:依次剔除决策树分类器中的每一个属性节点,并根据测试集计算剔除该属性节点后的决策树分类器在确定测试案例时的准确率;
S402:将剔除该属性节点后的决策树分类器对应的准确率与剔除该属性节点前的决策树分类器在确定测试案例时的准确率进行比对;
S403:根据比对结果对决策树分类器进行剪枝。
可以理解的是,本申请实施例可以利用上述测试集对生成好的决策树分类器进行剪枝处理,即将多余的决策树分支剔除,以免模型过拟合。例如,可以采用后剪枝的方法进行剪枝处理,依次利用测试集中的各待选测试案例剔除决策树的每一节点后,计算剔除该节点后决策树分类器的准确率与剔除该节点前的决策树分类器的准确率进行比对,如果剔除后的准确率增加了,则在决策树中剔除该节点。所谓准确率是指,决策树分类器所筛选出的测试案例确实合理的比例。是否合理可以通过计算机程序或者人工加以判断。
从上述描述可知,本申请提供的测试案例自动生成方法,能够利用测试集对决策树分类器进行剪枝。
参见图5,将待选测试案例输入预先构建的随机森林案例选择模型以根据选测试案例的属性确定本期应测案例,包括:
S501:分别利用各决策树分类器,根据选测试案例的属性确定对应的本期应测初始案例;
S502:对各本期应测初始案例进行投票,并根据投票结果确定本期应测案例。
可以理解的是,前述步骤已阐述了如何生成一个决策树分类器,而随机森林案例选择模型是一个包含多个决策树分类器的模型,每个决策树都是一个分类器。对于一个输入样本(待选测试案例),N棵树可能给出N个结果,有的认为该待选测试案例为应策案例,有的认为该待选测试案例为无需测试案例。
随机森林案例选择模型需要继承所有分类器的投票结果。针对一个待选测试案例,如果超过三分之一的决策树分类器认为它是应测案例,那么随机森林案例选择模型就认为它是应测案例。本申请实施例中的各决策树分类器可以依据各历史程序修改版本的测试情况分别进行拟合,得到各历史程序修改版本对应的决策树分类器。
在代码实现方面,可以直接使用Python决策树的包sklearn.tree,依据其id3、cart、c4.5等原则形成不同的决策树。
从上述描述可知,本申请提供的测试案例自动生成方法,能够将待选测试案例输入预先构建的随机森林案例选择模型以根据选测试案例的属性确定本期应测案例。
一实施例中,随机森林案例选择模型服务器可以用于依据案例的属性选择出当期程序修改版本对应的应测案例。属性即为划分案例是否为应测案例的一种标准,本申请中的属性包括但不限于:该案例是否引发过生产问题、该案例是否涉及动账、案例所归属的产品线、案例是否为高并发、该案例关联案例是否为本次改造的改造案例(以上信息存储在测试案例信息存储服务器)、案例所关联的程序是否在改造程序清单(该部分信息存储在案例与代码对应关系存储服务器)。具体的筛选过程可以如下:
步骤一:不同的软件测试人员根据其所在的测试产品线,输入需要随机森林案例选择模型进行筛选的案例编号,向测试案例输出服务器发起请求。
例如,电子银行基础功能产品线可以只输入与之相关的登录、注册、转账汇款等测试案例的案例编号,而无需关注其他产品线的测试案例。
该步骤涉及测试案例输出服务器:该系统是面向用户的Web工程,用于沟通工程用户(即软件测试人员)与应测案例筛选系统中其他装置,其作用包括接收测试人员输入的测试内容信息并存入对应的存储装置、向测试人员展示本期需要完成测试的应测案例、根据版本改造程序清单查询案例与代码对应关系存储服务器生成应测案例、调度随机森林选择算法生成选择器、调度随机森林案例选择模型得出当期的应测案例等。测试案例输出服务器在工程实现上可采用前后端分离的方法,前端使用vue框架实现,后端使用springboot框架实现。这样的设计可让用户直接从页面调度导入信息,从各存储系统读取数据,生成新的,随机森林案例选择模型。当随机森林案例选择模型构建完成后,后端通过读取软件管理系统(现有系统)中的本期被改造的程序清单,通过案例与代码对应关系存储服务器获取本期所关联的改造代码的待选测试案例,通过测试案例特征信息存储装置获取案例特征信息,生成每个样本案例的属性,再将以上数据传递至随机森林案例选择模型入参,将模型算出的结果通过vue回显给软件测试人员,不同产品线回显给软件测试人员的案例可能不同。
步骤二:测试案例输出服务器从研发测试管理服务器获取当期版本改造程序清单;
步骤三:测试案例输出服务器根据改造程序清单查询案例与代码对应关系存储服务器筛选出应测案例;
该步骤涉及测试案例信息存储服务器:该装置用于存储每条待选测试案例的中文名称、案例编号、案例测试的关联案例编号、该案例是否引发过生产问题、该案例是否涉及动账、案例所归属的产品线、案例是否为高并发等案例属性以及本期需要测试的应测案例。数据可采用分布式存储在mysql数据库中,例如,将每条案例中文名称及案例编号存储在单独的集中库中,其余案例根据案例编号的hash值,将案例属性分布式存储在不同的mysql库中。案例属性将作为随机森林案例选择模型某一个决策树分类器的输入属性。
步骤四:测试案例输出服务器调度随机森林案例选择模型服务器,根据拟合的随机森林矩阵开始进行案例匹配。
步骤五:随机森林案例选择模型将步骤五中筛选出来的应测案例存入测试案例信息存储服务器。
例如,一种决策树分类器的结果示例如图13所示。以电子银行登录测试案例为例,首先判断第一个条件,案例关联是否动账为否,随后判断第二个条件,该案例是否易引发客户投诉为是,那么该决策树判断判断改案例为应测案例。
基于同一发明构思,本申请实施例还提供了一种测试案例自动生成装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于测试案例自动生成装置解决问题的原理与测试案例自动生成方法相似,因此测试案例自动生成装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
参见图6,为了能够利用预先构建的随机森林案例选择模型自动生成测试案例,本申请提供一种测试案例自动生成装置,包括:
案例获取单元601,用于获取待选测试案例;
案例生成单元602,用于将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例;所述随机森林案例选择模型包括多个预先生成的决策树分类器。
参见图7,所述测试案例自动生成装置,还包括:
改造清单获取单元701,用于获取本期程序改造的清单;
对应案例确定单元702,用于根据预先建立的程序与案例的对应关系确定待输入所述随机森林案例选择模型的待选测试案例是否为所述本期被改造的程序所对应的测试案例;
应测可选案例对应单元703,用于将该测试案例确定为本期应测可选案例。
参见图8,所述的测试案例自动生成装置,还包括:
训练集测试集划分单元801,用于将获取到的历史应测案例及历史无需测试案例按照预设的划分比例随机划分为训练集及测试集;
信息增益确定单元802,用于在所述训练集中,确定所述待选测试案例对应的各属性的信息增益数值;
决策树分类器构建单元803,用于根据所述信息增益数值的大小构建所述决策树分类器;所述决策树分类器包括各属性对应的属性节点。
一实施例中,所述的测试案例自动生成装置,所述决策树分类器构建单元,还具体用于:
利用所述测试集对所述决策树分类器进行剪枝。
参见图9,所述决策树分类器构建单元803,包括:
准确率确定模块901,用于依次剔除所述决策树分类器中的每一个属性节点,并根据所述测试集计算剔除该属性节点后的决策树分类器在确定所述测试案例时的准确率;
准确率比对模块902,用于将剔除该属性节点后的决策树分类器对应的准确率与剔除该属性节点前的决策树分类器在确定所述测试案例时的准确率进行比对;
剪枝模块903,用于根据比对结果对所述决策树分类器进行剪枝。
参见图10,所述案例生成单元602,包括:
应测初始案例确定模块1001,用于分别利用各决策树分类器,根据所述选测试案例的属性确定对应的本期应测初始案例;
本期应测案例确定模块1002,用于对各本期应测初始案例进行投票,并根据投票结果确定所述本期应测案例。
从硬件层面来说,为了能够利用预先构建的随机森林案例选择模型自动生成测试案例,本申请提供一种用于实现所述测试案例自动生成方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述测试案例自动生成装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的测试案例自动生成方法的实施例,以及测试案例自动生成装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,测试案例自动生成方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,测试案例自动生成方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:获取待选测试案例;
S102:将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例;所述随机森林案例选择模型包括多个预先生成的决策树分类器。
从上述描述可知,本申请提供的测试案例自动生成方法,能够利用预先构建的随机森林案例选择模型自动生成测试案例,辅助软件测试人员工作,即使在软件测试人员不了解程序代码内容的情况下,也能进行黑盒/灰盒测试,其所筛选出的测试案例与程序代码清单及案例自身风险具有较强的关联性。
在另一个实施方式中,测试案例自动生成装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置测试案例自动生成装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现测试案例自动生成方法的功能。
如图11所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的测试案例自动生成方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的测试案例自动生成方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:获取待选测试案例;
S102:将所述待选测试案例输入预先构建的随机森林案例选择模型以根据所述选测试案例的属性确定本期应测案例;所述随机森林案例选择模型包括多个预先生成的决策树分类器。
从上述描述可知,本申请提供的测试案例自动生成方法,能够利用预先构建的随机森林案例选择模型自动生成测试案例,辅助软件测试人员工作,即使在软件测试人员不了解程序代码内容的情况下,也能进行黑盒/灰盒测试,其所筛选出的测试案例与程序代码清单及案例自身风险具有较强的关联性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 一种测试案例自动生成方法及装置
- 一种测试案例的自动生成方法及装置