基于修复缺陷的变更预测回归测试失效的方法及装置的制造方法_2

文档序号:9326805阅读:来源:国知局
测试失效的方法,通过对修 复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型,使用 Logistic回归模型,对所构建的特征模型进行机器学习,得到预测模型,使用该预测模型对 修复缺陷的变更是否会导致回归测试失效进行预测,通过对静态调用图的分析,对可能导 致回归测试失效的测试用例进行推荐。与现有技术相比,本发明能够提供导致回归测试失 效的具体测试用例,便于快速修复软件源代码中存在的缺陷。
[0045] 本发明实施例还提供一种基于修复缺陷的变更预测回归测试失效的装置,如图4 所示,所述基于修复缺陷的变更预测回归测试失效的装置包括:
[0046] 特征选取单元11,用于通过对修复缺陷的变更历史的分析,获取有影响的因素,从 中选取特征向量,构建特征模型;
[0047] 模型训练单元12,用于使用Logistic回归模型,对所构建的特征模型进行机器学 习,得到预测模型;
[0048] 预测单元13,用于使用所述预测模型对修复缺陷的变更是否会导致回归测试失效 进行预测;
[0049] 推荐单元14,用于通过对静态调用图的分析,对可能导致回归测试失效的测试用 例进行推荐。
[0050] 进一步地,所述预测单元13,可用于将修复缺陷的变更按照时间顺序进行排序,将 修复缺陷的变更分为四份,每一份包含等量的引起回归测试失效的变更,使用前三份数据 作为训练集来训练模型,使用最后一份数据作为测试集。
[0051] 进一步地,所述推荐单元14,可用于推荐以下两种可能导致回归测试失效的测试 用例:直接测试那些修复缺陷的变更所在的类的测试用例,以及测试调用修复缺陷所在的 类的那些类的测试用例。
[0052] 本发明提供的基于修复缺陷的变更预测回归测试失效的装置,通过对修复缺陷的 变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型,使用Logistic回 归模型,对所构建的特征模型进行机器学习,得到预测模型,使用该预测模型对修复缺陷的 变更是否会导致回归测试失效进行预测,通过对静态调用图的分析,对可能导致回归测试 失效的测试用例进行推荐。与现有技术相比,本发明能够提供导致回归测试失效的具体测 试用例,便于快速修复软件源代码中存在的缺陷。
[0053] 本发明实施例提供的基于修复缺陷的变更预测回归测试失效的方法及装置,适用 于在修复软件源代码中存在的缺陷时提供导致回归测试失效的具体测试用例。
[0054] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0055] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【主权项】
1. 一种基于修复缺陷变更的预测回归测试失效的方法,其特征在于,包括: 通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征 丰旲型; 使用Logistic回归模型,对所构建的特征模型进行机器学习,得到预测模型; 使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预测; 通过对静态调用图的分析,对可能导致回归测试失效的测试用例进行推荐。2. 根据权利要求1所述的方法,其特征在于,所述通过对修复缺陷的变更历史的分析, 获取有影响的因素,从中选取特征向量,构建特征模型包括: 收集软件源代码变更的历史,对软件源代码变更的历史进行分析,得到三种特征类别 共18个特征向量;其中,特征类别为"大小"的特征向量共5个,分别为:LA (lines of code added),LD(lines of code deleted),LF(number of files changed),NC(number of changed class),NM(number of changed method); 特征类别为"原子变更"的特征向量共7个,分别为:AC(has added classes),DC(has deleted classes),AM(has added methods),DM(has deleted methods),CM(has changed methods body), MR (has renamed methods),PC (has changed parameters of methods); 特征类别为"语义变更"的特征向量共6个,分别为:CC (number of changed dependencies),DD (number of deleted dependencies),AD (number of added dependencies),A/RF(has added/removed for blocks), A/Rff(has added/removed while blocks),A/RI (has added/removed if blocks)〇3.根据权利要求I所述的方法,其特征在于,所述Logistic回归模型如下:其中,g(x) =Wt^W1X1+... +WnXn,W为权重向量,X为特征向量。4.根据权利要求1所述的方法,其特征在于,所述使用所述预测模型对修复缺陷的变 更是否会导致回归测试失效进行预测包括: 将修复缺陷的变更按照时间顺序进行排序; 将修复缺陷的变更分为四份,每一份包含等量的引起回归测试失效的变更; 使用前三份数据作为训练集来训练模型,使用最后一份数据作为测试集。5.根据权利要求1所述的方法,其特征在于,所述对可能导致回归测试失效的测试用 例进行预测和推荐包括: 推荐以下两种可能导致回归测试失效的测试用例:直接测试那些修复缺陷的变更所在 的类的测试用例,以及测试调用修复缺陷所在的类的那些类的测试用例。6.-种基于修复缺陷变更的预测回归测试失效的装置,其特征在于,包括: 特征选取单元,用于通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取 特征向量,构建特征模型; 模型训练单元,用于使用Logistic回归模型,对所构建的特征模型进行机器学习,得 到预测模型; 预测单元,用于使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预 测; 推荐单元,用于通过对静态调用图的分析,对可能导致回归测试失效的测试用例进行 推荐。7. 根据权利要求6所述的装置,其特征在于,所述预测单元,用于将修复缺陷的变更按 照时间顺序进行排序,将修复缺陷的变更分为四份,每一份包含等量的引起回归测试失效 的变更,使用前三份数据作为训练集来训练模型,使用最后一份数据作为测试集。8. 根据权利要求6所述的装置,其特征在于,所述推荐单元,用于推荐以下两种可能导 致回归测试失效的测试用例:直接测试那些修复缺陷的变更所在的类的测试用例,以及测 试调用修复缺陷所在的类的那些类的测试用例。
【专利摘要】本发明提供一种基于修复缺陷的变更预测回归测试失效的方法及装置,涉及源代码的变更分析技术领域,用于解决现有技术无法找到哪些相应的测试用例会引发回归测试的失效的问题。所述方法包括:通过对修复缺陷的变更历史的分析,获取有影响的因素,从中选取特征向量,构建特征模型;使用Logistic回归模型,对所构建的特征模型进行机器学习,得到预测模型;使用所述预测模型对修复缺陷的变更是否会导致回归测试失效进行预测;通过对静态调用图的分析,对可能导致回归测试失效的测试用例进行推荐。本发明适用于在修复软件源代码中存在的缺陷时提供导致回归测试失效的具体测试用例。
【IPC分类】G06F11/36
【公开号】CN105045719
【申请号】CN201510524123
【发明人】唐新烨, 王青
【申请人】中国科学院软件研究所
【公开日】2015年11月11日
【申请日】2015年8月24日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1