稳健边界强化GMM-SMOTE软件缺陷检测方法
2021-03-31罗森林苏霞潘丽敏
北京理工大学学报 2021年3期
罗森林, 苏霞, 潘丽敏
(北京理工大学 信息与电子学院,北京 100081)
软件目前被广泛用于自动化和操作系统,在软件开发过程中不可避免的会产生功能、算法、交互等多种类型的缺陷(Bug),若未能及时发现软件产品中存在的缺陷而直接上线应用,可能会带来不可预期的后果[1].随着“持续交付模型”的广泛应用,系统、软件的开发日趋快速化与实时化,即时准确地进行自动化软件缺陷检测变得日渐重要.
研究表明,软件是否有缺陷与某些软件度量指标有很强的相关性,例如McCabe度量和Halstead度量等[2].因此,通过提取这些度量指标来构造特征向量,并训练机器学习模型以识别有缺陷的软件已成为行之有效的检测方法,与传统的匹配检测相比,检测速度更快,精度更高[3].但面临着数据不平衡这一挑战,即被人工准确标记了缺陷的正样本稀少,与之相应的则是大量被认定为无缺陷的负样本,由此导致分类器易忽略正类实例特征,使分类结果更倾向将实例判定为负类,引发判别规则偏移问题,降低了软件缺陷的识别精度.如何解决软件缺陷检测中数据不平衡的问题逐渐成为研究热点.
目前针对数据不平衡问题的解决方案主要可分为3大类:数据层面、特征层面和算法层面[4].其中数据层面主要是通过对原始数据进行采样来改变数据的分布状况,改善不平衡情况,可解释性强,与学习算法耦合性低、普适性好,因而在软件缺陷检测领域受到广泛关注……
登录APP查看全文
