重新审视过程指标与产品指标:一项大规模分析
Revisiting Process versus Product Metrics: a Large Scale Analysis
AI总结:
本研究基于700个Github项目的722,471次提交,重新审视了缺陷预测中过程与产品指标的作用,发现过程指标优于产品指标的结论在大规模下仍成立,但指标重要性会剧变,建议大规模分析时使用多模型预测。
摘要:
许多方法可以从软件数据中构建预测模型。然而,当我们从小规模分析(处理少数几个项目)转向大规模分析(处理数百个项目)时,应该认可哪些方法和结论?为了回答这个问题,我们使用来自700个Github项目的722,471次提交,重新核查了先前的小规模结果(关于缺陷预测的过程指标与产品指标以及指标的粒度)。我们发现,一些小规模分析的结论在扩展到大规模分析时仍然成立。例如,与先前的工作一样,我们看到过程指标比产品指标是更好的缺陷预测因子(基于过程/产品的最佳学习器分别达到98%/44%的召回率和95%/54%的AUC,均为中值)。话虽如此,我们警告说,信任小规模分析研究中的指标重要性结果是不明智的,因为当转向大规模分析时,这些结果会发生剧烈变化。此外,在对数百个项目进行大规模推理时,最好使用多个模型的预测(因为单一模型的预测可能会变得混乱并表现出高方差)。
英文摘要:
Numerous methods can build predictive models from software data. However, what methods and conclusions should we endorse as we move from analytics in-the-small (dealing with a handful of projects) to analytics in-the-large (dealing with hundreds of projects)? To answer this question, we recheck prior small-scale results (about process versus product metrics for defect prediction and the granularity of metrics) using 722,471 commits from 700 Github projects. We find that some analytics in-the-small conclusions still hold when scaling up to analytics in-the-large. For example, like prior work, we see that process metrics are better predictors for defects than product metrics (best process/product-based learners respectively achieve recalls of 98\%/44\% and AUCs of 95\%/54\%, median values). That said, we warn that it is unwise to trust metric importance results from analytics in-the-small studies since those change dramatically when moving to analytics in-the-large. Also, when reasoning in-the-large about hundreds of projects, it is better to use predictions from multiple models (since single model predictions can become confused and exhibit a high variance).
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。