[发明专利]基于机器学习的动态比例测试用例排序选择方法及系统有效

专利信息
申请号: 202110901585.4 申请日: 2021-08-06
公开(公告)号: CN113672506B 公开(公告)日: 2023-06-13
发明(设计)人: 李梓劼;崔炳轶;张震宇 申请(专利权)人: 中国科学院软件研究所
主分类号: G06F11/36 分类号: G06F11/36;G06N20/00
代理公司: 北京君尚知识产权代理有限公司 11200 代理人: 李文涛
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 机器 学习 动态 比例 测试 排序 选择 方法 系统
【权利要求书】:

1.一种基于机器学习的动态比例测试用例排序选择方法,其特征在于,包括以下步骤:

采集待测程序的历史版本执行结果并制作训练样本,使用不同程序的训练样本组成通用训练集,利用该通用训练集训练机器学习模型;

采集待测程序的测试用例信息,对测试用例信息进行优先度计算,生成测试用例排序列表;

使用机器学习模型预测测试结果,计算动态测试用例选择比例,包括:如果预测结果为构建测试失败,则对其进行完全测试,即以全部作为动态测试用例选择比例;如果预测结果为构建测试成功,则进一步使用必要测试比例预测模型进行预测,使用预测的必要测试比例作为其动态测试用例选择比例;其中对于每一个构建,指定一种测试用例排序方法,按该方法排序时,检测到第一个失败测试用例的时间为必要测试时间,执行所有测试用例的时间为总测试时间,则必要测试时间和总测试时间的比值为所述必要测试比例;

根据测试用例排序列表和动态测试用例选择比例,按照降序进行测试用例集的选择执行。

2.如权利要求1所述的方法,其特征在于,待测程序的历史版本执行结果包括:程序版本的代码改变信息、构建的测试结果、构建的必要测试时间、各测试用例的执行结果和执行时间。

3.如权利要求2所述的方法,其特征在于,制作训练样本的方法为:使用程序版本的代码改变信息作为训练集,使用构建的测试结果和构建的必要测试时间分别作为测试集,由该训练集和测试集构成训练样本。

4.如权利要求3所述的方法,其特征在于,训练机器学习模型的方法为:共训练两组机器学习模型,均使用程序版本的代码改变信息作为训练集,第一组机器学习模型为构建测试失败预测模型,预测构建的测试结果,使用构建的测试结果作为标签;第二组机器学习模型为必要测试比例预测模型,预测使用测试用例排序的前提下,检测到第一个失败测试用例所必需的测试时间比例,该模型使用构建的必要测试时间作为标签。

5.如权利要求1所述的方法,其特征在于,所述待测程序的测试用例信息包括:测试用例名称、版本发生修改的文件名称、测试用例的历史执行时间和测试用例的历史执行结果。

6.如权利要求1或5所述的方法,其特征在于,对待测程序的测试用例信息进行优先度计算,生成测试用例排序列表的步骤包括:

根据测待测程序的测试用例信息的文本相似度,生成测试用例的各组分的优先度;

根据构建的所有测试用例的各组分的优先度的统计分布,对各组分的优先度进行归一化;

对于每个测试用例,累加其不同组分的归一化的优先度数值,得到总优先度;

基于总优先度对测试用例进行降序排列,得到测试用例排序列表。

7.如权利要求6所述的方法,其特征在于,使用三个组分计算测试用例的优先度,包括:第一个组分为历史执行结果,使用历史中的失败次数除以总的执行次数作为该组分的优先度;第二个组分是执行时间,对于测试用例执行时间t,当前版本包含的所有测试用例的最大执行时间max(t),其优先度为1-(t/max(t));第三个组分是文本相似度,使用TF-IDF方法计算测试用例名和发生修改的文件名之间的相似度。

8.如权利要求1所述的方法,其特征在于,根据测试用例排序列表和动态测试用例选择比例,按照降序进行测试用例集的选择执行,包括:

获取测试用例集,读取其中包含的测试用例的历史执行时间,加和后作为总测试时间的估计值;使用该总测试时间的估计值与动态测试用例选择比例相乘,得到测试时间上限;

按照测试用例排序列表,基于优先度降序执行测试用例;

执行测试用例过程中记录测试时间,如果测试时间超过测试时间上限,则停止错误过程;测试过程中如果发现失败测试用例,则取消测试时间上限,改为执行全部测试用例。

9.一种基于机器学习的动态比例测试用例排序选择系统,其特征在于,包括机器学习模型训练模块、测试用例信息采集模块、测试用例排序模块、动态测试比例计算模块和动态测试选择模块;其中,

机器学习模型训练模块:对于训练阶段的构建,采集待测程序的历史版本执行结果并制作训练样本,该待测程序的历史版本执行结果包括程序版本的代码改变信息、构建的测试结果、构建的必要测试时间、各测试用例的执行结果和执行时间,使用不同程序的训练样本组成通用训练集,利用该通用训练集进行机器学习模型的训练;

测试用例信息采集模块:用于对待测程序的测试用例信息进行采集和存储,包括:使用版本管理工具收集构建所对应的程序版本发生修改的文件名称,获取该程序版本下的测试用例文件名;根据构建日志,记录测试用例的历史执行时间及测试用例的历史执行结果;根据执行结果保持测试用例历史执行时间及历史执行结果的更新;

测试用例排序模块:用于根据测试用例的历史执行时间、测试用例的历史执行结果、测试用例名称与版本发生修改的文件名称之间的文本相似度,生成测试用例的各组分的优先度;基于构建的所有测试用例的各组分的优先度结果的统计分布,对各组分优先度进行归一化处理;对于每个测试用例,累加其不同组分的归一化的优先度数值,获得总优先度;然后基于总优先度,对测试用例进行降序排列,得到测试用例排序列表;

动态测试比例计算模块:用于对于每一个构建,对其测试结果进行预测;如果预测结果为构建测试失败,则对其进行完全测试,即以全部作为动态测试用例选择比例;如果预测结果为构建测试成功,则进一步使用必要测试比例预测模型进行预测,使用预测的必要测试比例作为其动态测试用例选择比例;其中对于每一个构建,指定一种测试用例排序方法,按该方法排序时,检测到第一个失败测试用例的时间为必要测试时间,执行所有测试用例的时间为总测试时间,则必要测试时间和总测试时间的比值为所述必要测试比例;

动态测试选择模块:用于根据测试用例排序列表和动态测试用例选择比例,按照降序进行测试用例集的选择执行,包括:获取测试用例集,读取其中包含的测试用例的历史执行时间,加和后作为总测试时间的估计值;使用该总测试时间的估计值与动态测试用例选择比例相乘,得到测试时间上限;按照测试用例排序列表,基于优先度降序执行测试用例;执行测试用例过程中记录测试时间,如果测试时间超过测试时间上限,则停止错误过程;测试过程中如果发现失败测试用例,则取消测试时间上限,改为执行全部测试用例。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110901585.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top