[发明专利]基于修复缺陷的变更预测回归测试失效的方法及装置有效
申请号: | 201510524123.X | 申请日: | 2015-08-24 |
公开(公告)号: | CN105045719B | 公开(公告)日: | 2018-06-19 |
发明(设计)人: | 唐新烨;王青 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京汇泽知识产权代理有限公司 11228 | 代理人: | 张瑾 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 回归测试 变更 修复 源代码 特征模型 预测模型 测试 构建 预测 机器学习 静态调用 特征向量 修复软件 分析 | ||
1.一种基于修复缺陷变更的预测回归测试失效的方法,其特征在于,包括:
通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型;
使用Logistic回归模型,对所构建的特征模型进行机器学习,得到预测模型;
使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预测;
通过对静态调用图的分析,对可能导致回归测试失效的测试用例进行推荐;
所述使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预测包括:将修复缺陷的变更按照时间顺序进行排序;将修复缺陷的变更分为四份,每一份包含等量的引起回归测试失效的变更;使用前三份数据作为训练集来训练模型,使用最后一份数据作为测试集。
2.根据权利要求1所述的方法,其特征在于,所述通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型包括:
收集软件源代码变更的历史,对软件源代码变更的历史进行分析,得到三种特征类别共18个特征向量;其中,特征类别为“大小”的特征向量共5个,分别为:LA,即lines of codeadded,LD,即lines of code deleted,LF,即number of files changed,NC,即number ofchanged class,NM,即number of changed method;
特征类别为“原子变更”的特征向量共7个,分别为:AC,即has added classes,DC,即has deleted classes,AM,即has added methods,DM,即has deleted methods,CM,即haschanged methods body,MR,即has renamed methods,PC,即has changed parameters ofmethods;
特征类别为“语义变更”的特征向量共6个,分别为:CC,即number of changeddependencies,DD,即number of deleted dependencies,AD,即number of addeddependencies,A/RF,即has added/removed for blocks,A/RW,即has added/removedwhile blocks,A/RI,即has added/removed if blocks。
3.根据权利要求1所述的方法,其特征在于,所述Logistic回归模型如下:
其中,g(x)=w0+w1x1+...+wnxn,w为权重向量,x为特征向量。
4.根据权利要求1所述的方法,其特征在于,所述对可能导致回归测试失效的测试用例进行预测和推荐包括:
推荐以下两种可能导致回归测试失效的测试用例:直接测试那些修复缺陷的变更所在的类的测试用例,以及测试调用修复缺陷所在的类的那些类的测试用例。
5.一种基于修复缺陷变更的预测回归测试失效的装置,其特征在于,包括:
特征选取单元,用于通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型;
模型训练单元,用于使用Logistic回归模型,对所构建的特征模型进行机器学习,得到预测模型;
预测单元,用于使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预测;
推荐单元,用于通过对静态调用图的分析,对可能导致回归测试失效的测试用例进行推荐;
所述预测单元,还用于将修复缺陷的变更按照时间顺序进行排序,将修复缺陷的变更分为四份,每一份包含等量的引起回归测试失效的变更,使用前三份数据作为训练集来训练模型,使用最后一份数据作为测试集。
6.根据权利要求5所述的装置,其特征在于,所述推荐单元,用于推荐以下两种可能导致回归测试失效的测试用例:直接测试那些修复缺陷的变更所在的类的测试用例,以及测试调用修复缺陷所在的类的那些类的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510524123.X/1.html,转载请声明来源钻瓜专利网。