不同场景的软件缺陷预测方法研究
发布时间:2021-10-23 04:49
软件产品已经融入到我们日常生活的方方面面,但是在软件设计、开发、配置等过程中的种种因素导致软件中不可避免存在缺陷。软件模块中隐藏的缺陷威胁着软件产品的安全性,降低了软件产品的可靠性。因此,在交付产品之前,检测并修复有缺陷的软件模块是一项极为重要的软件质量保障活动。然而由于软件规模和复杂性的持续增长,提高软件质量对软件开发和测试人员来说是一项越来越具有挑战性的任务。由于有限的测试资源通常无法支持对所有的代码进行全面的检查,这需要一个优先级次序来更好地分析软件产品。换句话说,软件开发人员和测试人员应该合理地分配宝贵的资源来测试那些高概率包含缺陷的软件模块。为了寻求这种优先级,研究人员提出了软件缺陷预测来识别出这种高风险模块,进而推荐给开发或者测试人员进行优先检查。目前研究地最广泛的缺陷预测方法是基于有监督模型的技术,它首先在有标签的软件模块上训练一个分类模型,然后使用它来识别没有标签的模块是否包含缺陷。基于有监督的缺陷预测模型需要当前项目或外部项目的历史有标签数据作为训练集。根据训练集的来源不同,有监督的缺陷预测可以分为版本内缺陷预测场景、跨版本缺陷预测场景和跨项目缺陷预测场景。这三种场景...
【文章来源】:武汉大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:129 页
【学位级别】:博士
【部分图文】:
软件缺陷预测研究结构图
武汉大学博士学位论文46显示的是在两个数据集所有的15个项目上,这9个方法在6个性能指标平均值上的Friedman检验和Nemenyi事后检验结果。从表3-9,表3-10和图3-9中,我们有以下的发现:第一,表3-9中的结果表明,在NASA数据集的10个项目上,我们提出的KPWE框架在所有6个指标上获得最好的平均性能值;在AEEEM数据集的5个项目上,我们提出的KPWE框架在5个指标(除了AUC)上获得最好的平均性能值;在两个数据集的15个项目上,我们提出的KPWE框架也在所有6个指标上获得最好的平均性能值。第二,对于KPWE在两个数据集上所有项目的性能平均值来说,相比于5个对比方法,KPWE在F,MCC,AUC,EAP,EAR和EAF6个指标上分别有17.6%,58.7%,9.3%,30.4%,16.7%和22.5%的平均提升;相比于5个对比方法中最好平均性能指标值,KPWE在F,MCC,AUC,EAP,EAR和EAF6个指标上分别有7.3%,15.9%,3.5%,15.1%,10.5%和12.8%的提升。第三,表3-10中的结果表明,在NASA数据集的10个项目上,没有特定的哪一种方法能够以最少的隐含层节点数在大部分项目上获得最佳的性能值。但是在AEEEM数据集的5个项目上,FS方法能够以最少的隐含层节点数在4个项目上获得最佳的性能值,但是其在NASA数据集上没有在任何项目上能够以最少的隐含层节点数获得最好的性能值。这说明在经过这些特征选择方法预处理后的数据上,能够以最少的隐含层节点获得最好性能值的方法在不同的项目上是不一样的。(a)F-measure(b)MCC(c)AUC(d)EAP(e)EAR(f)EAF图3-9KPWE和8个特征子集选择方法的6个性能指标值的统计检验结果
不同场景的软件缺陷预测方法研究53是软件模块的一个表示。为了保证每一个软件模块仅被一个软件模块所表示,需要有以下的一个约束条件∑=1=1,即矩阵的每一列元素的和为1。为了对上面的叙述有一个更好的理解,我们提供了一个图形化的描述。假定每一个红色的圆圈表示先前版本数据集中的一个软件模块,一个黄色的圆圈表示当前版本块数据集中的一个软件模块,另外虚线表示的是两个软件模块之间的关联关系(这里指的是DS3算法中的不相似性)。需要注意的是在执行完DS3算法以后,如果一个红色的圆圈和一个黄色的圆圈之间存在一条虚线连在一起,这表明这个红色的圆圈表示的软件模块可以很好地代表这个黄色的圆圈表示的软件模块。图4-1(a)显示的是DS3算法的输入,也就是两个版本数据集的软件模块之间的点对不相似性。图4-1(b)显示的是运行了DS3算法之后的结果示意图。这个图显示DS3算法从先前版本数据集中选择了3个软件模块(即2,4和6)作为代表来表示当前版本数据集中的每一个软件模块。需要注意的是每一个黄色的圆圈仅仅只有一条虚线相连接,这是因为我们分配每一个当前版本数据集的软件模块到一个先前版本数据集的软件模块。不同的是,每一个红色的圆圈可以有多条虚线相连接,这是因为每一个先前版本数据集的软件模块可以代表多个当前版本数据集的软件模块。比如,2能够代表1和3。(a)两个版本之间的点对不相似性(b)选择出的能够代表当前版本的模块图4-1DS3方法示意图为了基于不相似性矩阵从先前版本数据集中选择一个有代表性的软件模块子集,DS3算法同时优化以下两项:min{}∑∑=1=1+2∑=1(||||)s.t.∑=1=1,;∈{0,1},,,(4-7)
【参考文献】:
期刊论文
[1]软件缺陷预测技术研究进展[J]. 宫丽娜,姜淑娟,姜丽. 软件学报. 2019(10)
[2]基于特征迁移和实例迁移的跨项目缺陷预测方法[J]. 倪超,陈翔,刘望舒,顾庆,黄启国,李娜. 软件学报. 2019(05)
[3]即时软件缺陷预测研究进展[J]. 蔡亮,范元瑞,鄢萌,夏鑫. 软件学报. 2019(05)
[4]基于改进深度森林算法的软件缺陷预测[J]. 薛参观,燕雪峰. 计算机科学. 2018(08)
[5]跨项目软件缺陷预测方法研究综述[J]. 陈翔,王莉萍,顾庆,王赞,倪超,刘望舒,王秋萍. 计算机学报. 2018(01)
[6]数据驱动的软件缺陷预测研究综述[J]. 李勇,黄志球,王勇,房丙午. 电子学报. 2017(04)
[7]一种面向软件缺陷预测的可容忍噪声的特征选择框架[J]. 刘望舒,陈翔,顾庆,刘树龙,陈道蓄. 计算机学报. 2018(03)
[8]静态软件缺陷预测方法研究[J]. 陈翔,顾庆,刘望舒,刘树龙,倪超. 软件学报. 2016(01)
[9]软件缺陷分类的研究[J]. 聂林波,刘孟仁. 计算机应用研究. 2004(06)
本文编号:3452498
【文章来源】:武汉大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:129 页
【学位级别】:博士
【部分图文】:
软件缺陷预测研究结构图
武汉大学博士学位论文46显示的是在两个数据集所有的15个项目上,这9个方法在6个性能指标平均值上的Friedman检验和Nemenyi事后检验结果。从表3-9,表3-10和图3-9中,我们有以下的发现:第一,表3-9中的结果表明,在NASA数据集的10个项目上,我们提出的KPWE框架在所有6个指标上获得最好的平均性能值;在AEEEM数据集的5个项目上,我们提出的KPWE框架在5个指标(除了AUC)上获得最好的平均性能值;在两个数据集的15个项目上,我们提出的KPWE框架也在所有6个指标上获得最好的平均性能值。第二,对于KPWE在两个数据集上所有项目的性能平均值来说,相比于5个对比方法,KPWE在F,MCC,AUC,EAP,EAR和EAF6个指标上分别有17.6%,58.7%,9.3%,30.4%,16.7%和22.5%的平均提升;相比于5个对比方法中最好平均性能指标值,KPWE在F,MCC,AUC,EAP,EAR和EAF6个指标上分别有7.3%,15.9%,3.5%,15.1%,10.5%和12.8%的提升。第三,表3-10中的结果表明,在NASA数据集的10个项目上,没有特定的哪一种方法能够以最少的隐含层节点数在大部分项目上获得最佳的性能值。但是在AEEEM数据集的5个项目上,FS方法能够以最少的隐含层节点数在4个项目上获得最佳的性能值,但是其在NASA数据集上没有在任何项目上能够以最少的隐含层节点数获得最好的性能值。这说明在经过这些特征选择方法预处理后的数据上,能够以最少的隐含层节点获得最好性能值的方法在不同的项目上是不一样的。(a)F-measure(b)MCC(c)AUC(d)EAP(e)EAR(f)EAF图3-9KPWE和8个特征子集选择方法的6个性能指标值的统计检验结果
不同场景的软件缺陷预测方法研究53是软件模块的一个表示。为了保证每一个软件模块仅被一个软件模块所表示,需要有以下的一个约束条件∑=1=1,即矩阵的每一列元素的和为1。为了对上面的叙述有一个更好的理解,我们提供了一个图形化的描述。假定每一个红色的圆圈表示先前版本数据集中的一个软件模块,一个黄色的圆圈表示当前版本块数据集中的一个软件模块,另外虚线表示的是两个软件模块之间的关联关系(这里指的是DS3算法中的不相似性)。需要注意的是在执行完DS3算法以后,如果一个红色的圆圈和一个黄色的圆圈之间存在一条虚线连在一起,这表明这个红色的圆圈表示的软件模块可以很好地代表这个黄色的圆圈表示的软件模块。图4-1(a)显示的是DS3算法的输入,也就是两个版本数据集的软件模块之间的点对不相似性。图4-1(b)显示的是运行了DS3算法之后的结果示意图。这个图显示DS3算法从先前版本数据集中选择了3个软件模块(即2,4和6)作为代表来表示当前版本数据集中的每一个软件模块。需要注意的是每一个黄色的圆圈仅仅只有一条虚线相连接,这是因为我们分配每一个当前版本数据集的软件模块到一个先前版本数据集的软件模块。不同的是,每一个红色的圆圈可以有多条虚线相连接,这是因为每一个先前版本数据集的软件模块可以代表多个当前版本数据集的软件模块。比如,2能够代表1和3。(a)两个版本之间的点对不相似性(b)选择出的能够代表当前版本的模块图4-1DS3方法示意图为了基于不相似性矩阵从先前版本数据集中选择一个有代表性的软件模块子集,DS3算法同时优化以下两项:min{}∑∑=1=1+2∑=1(||||)s.t.∑=1=1,;∈{0,1},,,(4-7)
【参考文献】:
期刊论文
[1]软件缺陷预测技术研究进展[J]. 宫丽娜,姜淑娟,姜丽. 软件学报. 2019(10)
[2]基于特征迁移和实例迁移的跨项目缺陷预测方法[J]. 倪超,陈翔,刘望舒,顾庆,黄启国,李娜. 软件学报. 2019(05)
[3]即时软件缺陷预测研究进展[J]. 蔡亮,范元瑞,鄢萌,夏鑫. 软件学报. 2019(05)
[4]基于改进深度森林算法的软件缺陷预测[J]. 薛参观,燕雪峰. 计算机科学. 2018(08)
[5]跨项目软件缺陷预测方法研究综述[J]. 陈翔,王莉萍,顾庆,王赞,倪超,刘望舒,王秋萍. 计算机学报. 2018(01)
[6]数据驱动的软件缺陷预测研究综述[J]. 李勇,黄志球,王勇,房丙午. 电子学报. 2017(04)
[7]一种面向软件缺陷预测的可容忍噪声的特征选择框架[J]. 刘望舒,陈翔,顾庆,刘树龙,陈道蓄. 计算机学报. 2018(03)
[8]静态软件缺陷预测方法研究[J]. 陈翔,顾庆,刘望舒,刘树龙,倪超. 软件学报. 2016(01)
[9]软件缺陷分类的研究[J]. 聂林波,刘孟仁. 计算机应用研究. 2004(06)
本文编号:3452498
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3452498.html