一句话:比较启发式与基于最早受影响发布版本的真实方法构建的缺陷数据集,并评估其对缺陷模型的影响。
在挖掘软件仓库(MSR)研究中,缺陷数据集是软件质量实证研究的基础,其中发布后缺陷的识别常依赖关键词、问题ID等启发式规则,但其假设可能威胁研究效度。本文比较启发式方法与基于开发团队真实估计的最早受影响发布版本方法所生成的缺陷数据集,并在32个发布版本上开展案例研究,考察缺陷识别方法对缺陷计数数据集、二值缺陷数据集以及缺陷模型的预测准确率和缺陷模块排序的影响。结果发现,启发式方法对缺陷计数和二值数据集均有较大影响;但对缺陷计数模型影响很小,而采用真实方法生成的数据集可提升缺陷分类模型的预测准确率。
With the rise of the Mining Software Repositories (MSR) field, defect datasets extracted from software repositories play a foundational role in many empirical studies related to software quality. At the core of defect data preparation is the identification of post-release defects. Prior studies leverage many heuristics (e.g., keywords and issue IDs) to identify post-release defects. However, such the heuristic approach is based on several assumptions, which pose common threats to the validity of many studies. In this paper, we set out to investigate the nature of the difference of defect datasets generated by the heuristic approach and the realistic approach that leverages the earliest affected release that is realistically estimated by a software development team for a given defect. In addition, we investigate the impact of defect identification approaches on the predictive accuracy and the ranking of defective modules that are produced by defect models. Through a case study of defect datasets of 32 releases, we find that that the heuristic approach has a large impact on both defect count datasets and binary defect datasets. Surprisingly, we find that the heuristic approach has a minimal impact on defect count models, suggesting that future work should not be too concerned about defect count models that are constructed using heuristic defect datasets. On the other hand, using defect datasets generated by the realistic approach lead to an improvement in the predictive accuracy of defect classification models.
@inproceedings{YatishJTT19,
title = {Mining Software Defects: Should We Consider Affected Releases?},
author = {Suraj Yatish and Jirayus Jiarpakdee and Patanamon Thongtanunam and Chakkrit Tantithamthavorn},
booktitle = {ICSE},
year = {2019},
doi = {10.1109/icse.2019.00075}
}