【摘 要】
:
基于分类的软件缺陷预测方法使用历史软件数据构建预测模型,并使用该模型预测新的软件模块是否存在缺陷。根据预测结果,软件测试人员会对所有被预测为有缺陷的软件模块都分配相等的测试资源,导致了有限的测试资源的浪费。面向排序的缺陷预测方法利用学习排序算法建立预测模型,然后根据预测的缺陷个数对软件模块进行排序,通过指导软件测试人员优先测试包含更多缺陷的软件模块,因此相比于基于分类的软件缺陷预测方法可以更有效地
论文部分内容阅读
基于分类的软件缺陷预测方法使用历史软件数据构建预测模型,并使用该模型预测新的软件模块是否存在缺陷。根据预测结果,软件测试人员会对所有被预测为有缺陷的软件模块都分配相等的测试资源,导致了有限的测试资源的浪费。面向排序的缺陷预测方法利用学习排序算法建立预测模型,然后根据预测的缺陷个数对软件模块进行排序,通过指导软件测试人员优先测试包含更多缺陷的软件模块,因此相比于基于分类的软件缺陷预测方法可以更有效地分配有限的测试资源。本文聚焦面向排序的缺陷预测研究领域中存在的四个问题,展开了深入的研究,以寻求找到最佳的面向排序的缺陷预测建模方法:(1)最近的面向排序的缺陷预测研究关于哪一个学习排序算法是最好的建模方法尚没有统一的结论,我们发现排名不稳定问题存在,主要原因是因为实验方法存在缺陷,如只比较了少量学习排序算法,使用了较少的数据集,以及使用不适当或者很少的评价指标。为了寻求学习排序算法稳定的排名,本文探究了22个学习排序算法在41个缺陷数据集上的性能,并使用6个性能指标和双重Scott-Knott ESD检验方法评估这些算法的性能。实验结果表明:(1)一些集成学习方法如随机森林、梯度提升回归和Rank Boost表现较好。(2)在检测缺陷个数比例@20%模块和缺陷百分位平均值这两个指标上,岭回归算法和LTR-linear(Learning-To-Rank with the linear model)算法在这22个学习排序算法中表现最佳,但LTR-linear算法需要检测很多的代码行数。因此,针对于第一个实验结果,本文在第四章和第五章继续探究了其它两种数据不平衡学习方法(即数据重采样和代价敏感学习方法)能否提升面向排序的缺陷预测模型的性能;针对于第二个实验结果,本文在第六章提出了一个基于多目标搜索的面向排序的缺陷预测算法。(2)当在软件缺陷个数不平衡数据集上训练面向排序的缺陷预测模型时,学习排序算法通常无法准确地对有缺陷的软件模块进行排序。为了缓解缺陷个数不平衡问题,本文提出了两个基于数据重采样和集成学习的面向排序的缺陷预测算法。这两个算法将Smote R(Synthetic Minority Oversampling Technique for Regression)和Rus R(Random Under-Sampling for Regression)引入到梯度提升回归算法中,在梯度提升回归算法每一次的迭代中,首先利用Smote R和Rus R算法平衡训练数据的缺陷个数分布,然后利用梯度提升回归算法在每一次的迭代中更新建立在平衡数据集上的模型。在26个缺陷数据集上的实验结果表明,这两个算法能够缓解缺陷个数不平衡问题,并在检测缺陷个数比例@20%模块和缺陷百分位平均值这两个指标上相比于对比算法实现了更好的性能。(3)由于无法发现更多的软件缺陷会严重降低软件质量,因此对具有更多缺陷的软件模块错误的排序会比对具有较少缺陷的软件模块错误的排序产生更高的代价。为了解决这个代价问题,本文提出了一个基于代价敏感排序支持向量机的面向排序的缺陷预测算法。该算法改进了原始排序支持向量机算法中的损失函数。当具有更多缺陷个数的软件模块被不正确排序时,该算法增加了惩罚,使得具有更多缺陷个数的软件模块被正确排序。针对训练数据集不平衡的问题,该算法对占少数比例的软件模块对赋予更高的权重。最后,该算法使用遗传算法优化了改进后的损失函数。在41个缺陷数据集上的实验结果表明,该算法能够解决具有更多缺陷的软件模块错误排序的代价问题,并在检测缺陷个数比例@20%模块和缺陷百分位平均值这两个指标上相比于对比算法实现了更好的性能。(4)已有的面向排序的缺陷预测算法都忽略了排序靠前的软件模块的大小,而包含更多代码行数的软件模块会产生更多的测试工作量。为了解决这个问题,本文提出了一个基于多目标搜索的面向排序的缺陷预测算法。该算法首先使用线性模型构建面向排序的缺陷预测模型,然后采用NSGA-II算法(Non-dominated Sorting Genetic Algorithm-II)通过最大化检测缺陷个数比例@20%模块这个排序指标,最小化检测代码行数比例@20%模块这个排序指标,产生一组Pareto非支配解。最后选择在训练数据集上有最高检测缺陷个数比例@20%模块值的解来构建面向排序的缺陷预测模型。在41个缺陷数据集上的实验结果表明,该算法相比于对比算法在检测前百分之二十的软件模块时能够发现更多的缺陷,并检测更少的代码行数。综上所述,本论文针对面向排序的缺陷预测研究领域的难点问题,提出了四个新的算法提升了面向排序的缺陷预测模型的性能,对提升软件质量具有重要意义。
其他文献
在岩石工程中,节理裂隙特征是一项非常重要的岩石物理性质。数量众多、分布形式复杂、多尺寸跨尺度的复杂节理使得岩体具有尺寸效应、不均匀性和不连续性。一般而言,进行地下工程围岩稳定性分析时,围岩强度及其力学参数的正确性是保证计算结果的基础,缺乏对岩石和节理尺寸效应的考虑将对计算的准确性和可靠性产生较大影响。因此,研究岩石和节理强度尺寸效应规律、数值模拟中参数尺寸效应规律以及围岩稳定性分析的数值应用方法具
随着科技的发展,未来的中国会迎来一场信息化智能化的产业革新,这其中主要以物联网和人工智能技术为代表。与此同时,物联网和人工智能技术的普及也将极大地促进边缘计算的发展。由于边缘计算可以有效地缩短物联网系统的延时和能耗,并保护用户数据的隐私,因而会成为物联网和人工智能技术相结合的主要应用领域。在边缘计算大发展的背景下,基于边缘穿戴设备的行人运动感知在近年成为了备受关注的研究领域,并在室内定位导航、智能
由于轴流泵叶顶间隙的存在,叶轮内会产生间隙泄漏流,泄漏流与主流相互作用形成间隙泄漏涡、分离涡等复杂流动,在非设计工况下会严重影响泵的性能。在空化条件下,这些复杂的间隙涡流还可能会诱发涡空化,导致振动、噪声等,影响泵的安全稳定运行。针对轴流泵间隙涡流和能量耗散等科学问题,本文采用试验观测、数值模拟和理论分析的方法,系统研究了轴流泵内间隙涡流特性和能量耗散特性。然后提出了在叶片叶顶开C型槽来控制间隙涡
对于以断裂破坏为主导的混凝土结构物,如重力坝,混凝土材料的粘弹性性能及裂缝扩展决定了结构物在持续荷载作用下的变形,进而影响其服役期的安全性及耐久性。由于混凝土抗拉强度较低,施工及正常运行过程中结构物内不可避免地会产生微裂缝。在低水平荷载持续作用下(一般认为小于30%峰值荷载),裂缝处于稳定状态,混凝土中宏观裂缝不会扩展并引发结构物的破坏,结构物的变形由混凝土粘弹性性能控制,此时结构物中的徐变是线性
空间中的精确定位是移动机器人、微型飞行器、虚拟现实和增强现实等技术所需要的基本功能。使用相机和惯性测量单元(Inertial Measurement Unit,IMU)作为传感器的视觉同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)和视觉惯性SLAM可以在缺乏全球卫星定位信号时,根据载体自身的传感器进行定位,因此得到了广泛的研究和应用。在消
糖脂代谢为细胞提供能量及其所需生物大分子物质,是重要生命活动。糖脂代谢失衡可导致肥胖、2型糖尿病、非酒精性脂肪肝(Non-alcoholic fatty liver disease,NAFLD)等多种代谢疾病,严重威胁人类健康。肌肉作为重要的运动和代谢器官,在维持机体糖脂代谢及能量平衡中起重要作用。随着近年来研究的深入,肌肉分泌的多种肌肉因子的代谢调控作用陆续被揭示,因此,肌肉因子所介导的组织器官
我国河流众多,水能资源丰富。过去几十年间,伴随着经济和社会的高速发展,我国兴建了一大批坝高和装机容量均居世界前列的大型水电工程。泄洪消能问题是这些高坝工程安全稳定运行的关键问题之一,而高速掺气水流问题又是高坝泄洪消能问题的难点所在。在水利水电工程中,流动多由重力驱动,其中高速水流的掺气多由分层水气流动在湍流发展到一定程度后转变而来。因此,对于高速掺气水流的研究重点在于分层水气流动的湍流以及掺气水流
我国中西部地区地质条件复杂多变,在局部地区,断层、褶皱、岩溶、地下暗河等不良地质现象星罗棋布。在隧道开挖的过程中,掌子面与围岩常呈现出“地层复杂多变、强度低、自稳能力差、富水性强”等软弱与极软弱特征,加之隧道断面大,开挖初期极易出现大变形、塌方、冒顶、突泥与涌水等灾害。针对该类工程地质条件极为复杂的高风险大断面隧道,研究基于BIM(建筑信息模型)技术的新型铁路隧道施工方法与施工管理理念及方法,对提
TRPV1通道是一种非选择性的阳离子通道,在感觉神经元以及非感觉神经元细胞中广泛表达。作为多觉伤害性感受器,TRPV1通道可以响应多种物理以及化学刺激从而参与机体稳态的维持。而痛觉的感知是TRPV1的研究热点,机体在组织损伤,炎症以及癌症等疾病发生时常伴有炎性痛敏,机械痛敏以及热痛敏等,这些常与TRPV1通道的功能异常相关。因此,对于TRPV1的功能探究具有重要的生理病理意义。而对于TRPV1功能
全球导航卫星系统(GNSS,Golbal Navigation Satellite System)具有全天候、实时和高精度的优势,是20世纪一项伟大的系统工程,蕴含了大量的科学技术和工程应用的创新。自上世纪70年代出现至今,GNSS导航定位的理论与技术层面都经历了快速发展。一方面,全球导航系统从单独的GPS系统逐渐发展成GLONASS、Galileo以及北斗等多系统,信号也从最初的双频信号朝着三频