Stack Overflow 问题中编程相关问题的可复现性
软件工程
2021-12-28 v2
摘要
软件开发人员常使用 Stack Overflow 问答网站寻找其代码级问题的解决方案。为获得帮助,开发人员频繁提交包含示例代码段及编程问题描述的问题。遗憾的是,并非总能从代码段复现这些问题,这可能阻碍问题及时获得恰当解答。我们对 400 个 Java 和 400 个 Python 问题中讨论的问题可复现性进行了探索性研究。我们解析、编译、执行并仔细检查了这些问题中的代码段,以复现所报告的编程问题。我们研究的结果有三方面。首先,我们发现可复现约 68% 的 Java 问题和 71% 的 Python 问题,而使用代码段无法复现约 22% 的 Java 和 19% 的 Python 问题。在可复现的问题中,约 67% 的 Java 代码段和 20% 的 Python 代码段需经轻微或重大修改才能复现问题。其次,我们仔细调查了编程问题无法复现的原因,并提供了用于编写有效 Stack Overflow 问题代码示例的循证指南。第三,我们调查了问题的可复现状态与相应回答元数据(如是否存在已接受答案)之间的相关性。根据我们的分析,可复现问题获得已接受答案的几率至少是难以复现问题的两倍。此外,若问题中报告的问题无法复现,获得已接受答案的中位时间延迟会加倍。我们还调查了混杂因素(如声誉),发现混杂因素并未损害可复现状态与回答元数据之间的相关性。
引用
@article{arxiv.2111.12204,
title = {The Reproducibility of Programming-Related Issues in Stack Overflow Questions},
author = {Saikat Mondal and Mohammad Masudur Rahman and Chanchal K. Roy and Kevin Schneider},
journal= {arXiv preprint arXiv:2111.12204},
year = {2021}
}
备注
This study has been accepted for publication in Empirical Software Engineering EMSE) journal