[发明专利]基于机器学习的动态比例测试用例排序选择方法及系统有效
| 申请号: | 202110901585.4 | 申请日: | 2021-08-06 |
| 公开(公告)号: | CN113672506B | 公开(公告)日: | 2023-06-13 |
| 发明(设计)人: | 李梓劼;崔炳轶;张震宇 | 申请(专利权)人: | 中国科学院软件研究所 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N20/00 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
| 地址: | 100190 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 机器 学习 动态 比例 测试 排序 选择 方法 系统 | ||
本发明公开一种基于机器学习的动态比例测试用例排序选择方法及系统,属于软件测试领域技术,采集待测程序的历史版本执行结果并制作训练样本,使用不同程序的训练样本组成通用训练集,利用该通用训练集训练机器学习模型;采集待测程序的测试用例信息,对测试用例信息进行优先度计算,生成测试用例排序列表;使用机器学习模型预测测试结果,计算动态测试用例选择比例;根据测试用例排序列表和动态测试用例选择比例,按照降序进行测试用例集的选择执行。
技术领域
本发明基于机器学习和回归测试中常用的测试用例排序技术,实现了动态比例的测试用例选择方法,属于软件测试领域技术。
背景技术
随着计算机工业的发展,软件在生活生产中的应用越来越广泛。软件工程通常是一个团队工作。传统的实践方式是,团队中的每个成员分别完成自己的工作,然后进行代码的集成。但是,代码集成的过程中,不同成员的代码可能彼此冲突,产生程序错误。为了解决该问题,软件开发团队开始使用持续集成方法。持续集成鼓励团队中的每个成员频繁地进行代码提交和集成,以期尽早发现代码集成过程中可能出现的错误。但是,持续集成需要频繁的继承和测试,因此会产生大量开销。为了在尽可能保证持续集成效果的同时,节省其开销,研究人员提出了一系列方法。在持续集成中,每个集成周期被称为一个构建,每个构建对应一个程序版本。节省持续集成开销的方法可以分为两类,第一类是节省每个构建的开销,第二类是跳过部分构建。给定错误程序P,其测试用例集为T={t1,t2,…,tm}。其中,tm指单元测试用例。对于每个构建,如果T中的任何测试用例未能通过测试,则其检测到程序中包含的错误,称其为失败测试用例。如果一个构建的测试结果中包含失败测试用例,则称该构建为测试失败构建;反之则为测试成功构建。
第一类方法的代表性技术是测试用例排序选择技术。软件测试过程中,可以收集到测试用例的一系列信息,基于此计算测试用例的执行优先度。然后,对测试用例进行排序,按照优先度从高到低的顺序,依次执行测试用例。为了节省开销,对于每个构建,该技术会选择一定比例的测试用例执行,以期在有限开销内,执行优先度高的测试用例。
第二类方法是跳过部分构建,代表性技术是构建测试失败预测技术。该技术假定,如果一个构建不是测试失败构建,则可以跳过其测试步骤,以节省持续集成的总体开销。该技术使用机器学习方法,在构建进行测试之前,对测试结果进行预测;如果预测结果为构建测试失败,则执行其测试用例集,反之则跳过其测试用例集。
节省持续集成开销的方法很多,相关的研究也在不断开展。然而,以上述两种代表性技术为例,测试用例排序选择技术对不同构建使用相同的测试比例,忽略了不同构建间的差异性;构建测试失败预测技术对不同的构建具有区分度,但是其执行结果为二分法结果。如果机器学习模型预测产生假阴性结果,即将测试失败构建误分类为测试成功构建,则无法检测到程序中存在的错误。发展一套动态比例的测试用例排序选择方法,可以既具有不同构建的区分度,同时保证对假阴性结果的容忍度,实现更高效的软件测试。
发明内容
本发明的目的是提供一种基于机器学习的动态比例测试用例排序选择方法及系统,在传统测试用例排序选择技术的基础上,增加对不同构建的区分能力,并提供相应的实验结果分析工具。该工具的使用包括训练阶段和工作阶段,训练阶段收集历史信息,训练机器学习模型;工作阶段进行基于机器学习的动态比例测试用例排序选择工作。
本发明采用的技术方案如下:
一种基于机器学习的动态比例测试用例排序选择方法,包括以下步骤:
采集待测程序的历史版本执行结果并制作训练样本,使用不同程序的训练样本组成通用训练集,利用该通用训练集训练机器学习模型;
采集待测程序的测试用例信息,对测试用例信息进行优先度计算,生成测试用例排序列表;
使用机器学习模型预测测试结果,计算动态测试用例选择比例;
根据测试用例排序列表和动态测试用例选择比例,按照降序进行测试用例集的选择执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110901585.4/2.html,转载请声明来源钻瓜专利网。





