FORESIGHT: 基于机器学习方法的需求变更请求软件缺陷预测

《Systems》:FORESIGHT: Software Defects Prediction from Requirements Change Requests Using Machine Learning Methods Hanan Helwa and Adel Taweel

【字体: 大 中 小 】 时间:2026年03月27日 来源:Systems 3.8

编辑推荐:

  软件缺陷预测正成为软件质量保证的关键。传统的软件缺陷预测方法主要侧重于分析代码级度量,往往忽略了需求阶段可用的有价值信息。然而,当需求变更请求(RCR)被提出时(通常在维护和演化阶段),预测软件缺陷提供了一种重要的预防措施。基于需求的软件缺陷预测方法通常侧重于

  
软件缺陷预测正成为软件质量保证的关键。传统的软件缺陷预测方法主要侧重于分析代码级度量,往往忽略了需求阶段可用的有价值信息。然而,当需求变更请求(RCR)被提出时(通常在维护和演化阶段),预测软件缺陷提供了一种重要的预防措施。基于需求的软件缺陷预测方法通常侧重于识别需求缺陷(如模糊或不完整),未能充分预测可能在运营软件系统中后期出现的缺陷。本文提出了一种名为FORESIGHT的上下文驱动表示模型,该模型使用机器学习方法从需求变更请求中预测软件缺陷类型。所提出的模型使用二元指示符来表示源自变更请求特征的上下文度量,并支持从主要缺陷类型和缺陷表现类型进行多类预测。为了构建其表示模型,研究人员从不同软件领域(Web、Mobile和ASRS)的实际工业项目中创建了三个数据集。使用随机森林(Random Forest)、XGBoost和梯度提升(Gradient Boosting)分类器对FORESIGHT进行了评估。结果表明,某些软件缺陷类型可以被可靠地预测,随机森林在所有三个数据集上取得了最高的宏F1(Macro-F1)(主要缺陷类型预测为0.815–0.873;缺陷表现预测为0.683–0.833),在每个数据集-任务组合上都优于XGBoost和梯度提升。研究结果表明,来自需求变更请求的上下文度量(在FORESIGHT表示模型内结构化)能够在部署的软件系统中对特定缺陷类型进行可靠的预实现预测。
软件缺陷预测是保证软件质量的关键活动,但现有方法多基于代码级度量(如圈复杂度、代码行数),忽略了需求阶段的信息。当系统进入维护期,需求变更请求(RCR)频繁出现,传统方法无法在代码实现前预测缺陷类型。为此,研究人员提出FORESIGHT——一种基于需求变更请求上下文度量的分级缺陷预测模型。该研究在三个工业项目(Web多租户人力资源平台、Mobile移动应用、ASRS航空安全报告系统)上构建了共5108条标注样本,使用38个二元特征指示符(分属六个主题组)编码RCR的上下文信息,并采用随机森林(Random Forest)、XGBoost和梯度提升(Gradient Boosting)三种集成学习分类器进行多类预测(4类主要缺陷类型和10/11类缺陷表现类型),同时用合成少数类过采样技术(SMOTE)处理类别不平衡。随机森林在所有数据集和任务上取得了最佳宏F1(Macro-F1)(主要缺陷类型0.815–0.873,缺陷表现类型0.683–0.833)。该成果发表于《Systems》。

**研究方法**:研究人员设计了FORESIGHT表示模型,将非结构化RCR文本转化为38个二元特征指示符(分属六个主题组:用户界面与导航、数据处理与验证、业务工作流、外部集成、实体建模、错误处理)。特征源自RCR文本的显式模式,不依赖代码级或历史数据。标注使用六位有经验的质量保证(QA)从业者进行两阶段独立标注及仲裁,标注者间一致性达Cohen’s ??≥0.83。分类任务分两层:主要缺陷类型(4类:UI Error、Behavioral Error、Data Error、System Failure)和缺陷表现类型(10–11类,如Data Loss、Incorrect Output等)。使用随机森林(Random Forest)、XGBoost、梯度提升(Gradient Boosting)三种集成学习分类器,在训练集上应用合成少数类过采样技术(SMOTE)平衡类别。数据集来自三个工业领域:Web(多租户人力资源平台,1680条)、Mobile(移动应用,1723条)、ASRS(NASA航空安全报告系统,1705条),标注了38个二元特征及其对应的缺陷标签。

**结果与讨论**:
**6.1 总体分类性能与变异性**:随机森林(Random Forest)在所有三个数据集和两个任务上均取得最高宏F1(Macro-F1),且在六组数据集-任务组合中统计显著优于其他模型(??<0.05,经Bonferroni校正的Wilcoxon符号秩检验)。交叉验证标准差低(≤0.038),表明性能稳定。主要缺陷类型预测宏F1为0.815–0.873,缺陷表现类型预测宏F1为0.683–0.833。
**6.2 各类别性能**:通过平衡测试集上的混淆矩阵和每类精确率/召回率/F1,发现UI Error和System Failure在Web和ASRS数据集上获得高F1(0.88–0.98);Behavioral Error在Web数据集上召回率较低(R=0.69),因与Data Error和UI Error语义重叠。
**6.3 类别不平衡处理**:合成少数类过采样技术(SMOTE)显著提升宏F1(Macro-F1),尤其在表现类型任务(提升0.295–0.455)。无SMOTE时,稀有类(如Performance Issue)F1接近0;有SMOTE后提升至0.93–0.96。消融实验表明,在自然测试分布上SMOTE未引入人工模式。
**6.4 混淆矩阵评估**:展示了三个数据集在平衡测试集上的混淆矩阵。Mobile数据集分类最清晰(Acc=0.87),Behavioral Error是主要混淆源;Web数据集中UI Error高分离(R=0.98),Behavioral Error最难(R=0.69);ASRS数据集难度最高(Acc=0.82),Behavioral Error与System Failure双向混淆。
**6.5 与现有基于需求的缺陷预测研究比较**:在更难的4类和10/11类预测任务上,FORESIGHT的宏F1(0.815–0.873、0.683–0.833)处于已有二分类任务结果(0.60–0.80)的上限。

**讨论**:研究人员从四个结构原因解释了随机森林(Random Forest)在稀疏二元特征空间中的优势:全深度树捕捉高阶组合、装袋(Bagging)平均化标注噪声而提升(Boosting)放大噪声、随机特征子采样探索跨组交互、二元稀疏性与装袋匹配。分类两个层次互补:主要缺陷类型提供高层面风险,表现类型细化具体测试方向。系统层面,FORESIGHT不增加质量保证(QA)工作量,而是重新分配优先级。工作流示例演示了如何从RCR到预测再到具体测试选择、代码审查和需求澄清。

**结论**:本文提出了FORESIGHT,一种基于从需求变更请求(RCR)提取的上下文度量的早期软件缺陷预测表示与预测模型。通过将RCR特征编码为二元指示符并训练集成机器学习模型,FORESIGHT在变更管理生命周期的预实现阶段预测主要缺陷类型和细粒度缺陷表现类型。与传统方法不同,FORESIGHT将缺陷预测建模为两级层次任务,从同一模型提供高层级缺陷类别标签和细粒度表现标签。实验评估表明,随机森林(Random Forest)在三个工业数据集上有效预测了主要缺陷类别和缺陷表现,宏F1(Macro-F1)分别为0.815–0.873和0.683–0.833,凸显层次化缺陷预测在改善可操作缺陷预防策略中的价值。未来工作包括时间顺序验证、前瞻性部署研究、跨区域复制以及通过自然语言处理(NLP)或大语言模型(LLM)辅助的自动特征提取。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号