软件故障分类与冲突集计算的研究与实践
在软件开发和维护过程中,故障分类和冲突集计算是两个关键的问题。故障分类有助于将故障准确分配给合适的开发者,提高解决问题的效率;而冲突集计算则在模型诊断中起着重要作用,能够帮助定位系统中的故障组件。下面将详细介绍相关的研究和实践。
故障分类实验
在故障分类实验中,我们使用了特定的数据集和多种算法进行研究。
数据集
我们选用了 bug 仓库中 ID 为 200000 - 213000 的 13000 个 bug 报告作为数据集,原因是这些报告的提交时间相对集中。经过预处理后,具体数据如下表所示:
| 项目 | 值 |
| ---- | ---- |
| 所有实例数量 | 13000 |
| 已修复和重复实例数量 | 5973 |
| 所有开发者数量 | 687 |
| 处理超过 10 个 bug 的开发者数量 | 125 |
| 最终保留的实例数量 | 3849 |
| 最终保留的特征数量 | 12598 |
实验设置
为了验证数据缩减对故障分类的影响,我们设计了三个实验:
1. 不同分类算法的影响 :比较 NB、J48、ComplementNaiveBaye(CNB)和 RandomTree(RT)四种不同分类算法的分布结果,以验证不同算法是否会影响故障分类结果。
2. 加权和普通数据集缩减的比较 :比较三种特征选择算法(OneR、IG、CHI)和四种实例选择算法(CNN、ENN、MCS、ICF)在加权和