收稿日
期
: 2017-08-07;
修回日期
: 2017-09-22;
录用日期
: 2017-10-18。
作者简介
:
付忠旺
( 1993—) ,
男
,
山东聊城人
,
硕士研究生
,
主要研究方向
:
数据挖掘
、
软件工程
;
肖蓉
( 1980—) ,
女
,
湖北宜昌人
,
讲师
,
博
士研究生
,
主要研究方向
:
软件工程
;
余啸
( 1994—) ,
男
,
湖北汉川人
,
博士研究生
,
主要研究方向
:
软件工程
、
深度学习
;
谷懿
( 1996—) ,
男
,
云南大理人
,
主要研究方向
:
机器学习
。
文章编号
: 1001-9081( 2018) 03-0824-05 DOI: 10. 11772 /j. issn. 1001-9081. 2017081935
回
归算法对软件缺陷个数预测模型性能的影响
付
忠旺
1,2,3
,
肖 蓉
1,2
,
余 啸
2
*
,
谷 懿
1
( 1.
湖北大学 计算机
与信息工程学院
,
武汉
430062; 2.
软件工程国家重点实验室
(
武汉大学
) ,
武汉
430072;
3.
湖北省教育信息化工程技术研究中心
,
武汉
430062)
( *
通信作者电子邮箱
xiaoyu-whu@ yahoo. com)
摘 要
:
针
对已有研究在评价软件缺陷个数预测模型性能时没有考虑到软件缺陷数据集存在数据不平衡的问题
而采用了评估回归模型的不合适的评价指标的问题
,
提出以平均缺陷百分比作为评价指标
,
讨论不同回归算法对软
件缺陷个数预测模型性能的影响程度
。
利用
PROMISE
提供的
6
个开源数据集
,
分析了
10
个回归算法对软件缺陷个
数预测模 型预测结果的影响以及各种回归算法之间的差异
。
研究结果表明
:
使用不同的回归算法建立的软件缺陷个
数预测模型具有不同的预测效果
,
其中梯度
Boosting
回归算法和贝叶斯岭回归算法预测效 果更好
。
关键词
:
软件缺陷个数预测
;
数据不平衡
;
回归算法
中图分类号
: TP181
文献标志码
: A
Impact of regression algorithms on performance of defect number prediction model
FU Zhongwang
1,2,3
, XIAO Rong
1,2
, YU Xiao
2
*
, GU Yi
1
( 1. School of Computer Science and Information Engineering, Hubei University, Wuhan Hubei 430062, China;
2. State Key Laboratory of Software Engineering ( Wuhan University) , Wuhan Hubei 430072, China;
3. Educational Informationalization Engineering Research Center of HuBei Province, Wuhan Hubei 430062, China)
Abstract: Focusing on the issue that the existing studies do not consider the imbalanced data distribution problem in
defect datasets and employ improper performance measures to evaluate the performance of regression models for predicting the
number of defects, the impact of different regression algorithms on models for predicting the number of defects were explored
by using Fault-Percentile-Average ( FPA) as the performance measure. Experiments were conducted on six datasets from
PROMISE repository to analyze the impact on the models and the difference of ten regression algorithms for predicting the
number of defects. The results show that the forecast results of models for predicting the number of defects built by different
regression algorithms are various, and gradient boosting regression algorithm and Bayesian ridge regression algorithm can
achieve better performance as a whole.
Key words: defect number prediction; imbalanced data distribution; regression algorithm
0
引
言
软
件缺陷预测指的是通过从历史软件数据中学习出缺陷
预测的模 型
,
然后对新的软件模块进行预测
,
预测其是否有缺
陷
。
如果预测该软件模块有缺陷则对该软件模块分配更多的
软件测试人员
,
这样可以合理地分配测试资源
。
研究者已经
提出了很多软件缺陷预测的方法
[1 - 3]
:
陈翔等
[4]
总结了国内
外
在该研究领域取得的主要成果
,
但这些研究者提出的软件
缺陷预测方法都是基于分类模型
,
即预测软件模块是否有缺
陷
;
文献
[5 - 6]
指出
,
如果采用回归方法预测一个软件模块
存在多少个缺陷时
,
可以优先测试缺陷个数多的模块
,
这样能
够更好地分配测试资源
。
举例来说
,
假如一个软件公司开发了一个包含有
100
个
软件模块的新项目
。
由于项目交付时间提前
,
测试人员有限
,
在项目交付之前只能测试
20
个软件模块
。
因此
,
测试人员首
先基于软件仓库中的历史软件模块数据建立了一个软件缺陷
预测模型或者软件缺陷个数预测模型
;
然后利用预测模型预
测这
100
个软件模块是否有缺陷或有多少个缺陷
。
假设缺陷
预测模型 预测这
100
个软件模块中
30
个软件模块有缺陷
,
由
于在项目交付之前测试人员只能测试
20
个软件模块
,
因此测
试人员不清楚应该测试这
30
个被预测为有缺陷的软件模块
中的哪
20
个软件模块
;
但如果根据软件缺陷个数预测模型的
预测结果
,
测试人员能够基于这
100
个软件模块的缺陷个数
的预测值对这
100
个软件模块进行降序排序
,
优先测试前
20
个软件模块
,
即优先具有更多缺陷的软件模块
,
因此
,
预测软
件缺陷个数相比单纯的预测软件模块是否有缺陷更利于优化
软件测试资源的分配
[7]
。
目前在软
件缺陷个数预测方面已有大量研究
。Rathore
等
[8]
探究了
决策树回归算法在本项目缺陷个数预测模型和
跨项目缺陷个数预测模型的预测性能
,
实验结果表明在采用
绝对误差和相对误差作为评估指标时
,
决策树回归算法有很
好的预测性能
。Wang
等
[9]
提出了利用历史数
据构造缺陷状
态转换模型
,
然后利用马尔可夫链预测将来每种状态下的缺
陷个数
。Afzal
等
[10]
提出了利用基因编
程算法来预测缺陷个
Journal of Computer Applications
计算机应用
,2018,38( 3) : 824 - 828,858
ISSN 1001-9081
CODEN JYIIDU
2018-03-10
http: / /www. joca. cn