谁偿还技术债务重要吗?一项关于自修复技术债务的实证研究
软件工程
2021-10-13 v1
摘要
背景:技术债务(TD)既可由引入者偿还,也可由他人偿还。我们称前者为自修复技术债务,它可能尤其有效,因为开发者是其自身代码的专家,非常适合修复相应的 TD 问题。目标:我们研究的目标是调查自修复技术债务,特别是 TD 被自修复的程度、哪些类型的 TD 更可能被自修复、自修复 TD 的修复时间是否短于非自修复 TD,以及开发行为如何与自修复 TD 相关。方法:我们报告一项实证研究,通过分析从 Apache 软件基金会的 20 个 Python 和 16 个 Java 项目中获取的超过 44,000 次提交里、经静态分析捕获的五类 TD(即代码、缺陷、设计、文档和测试)的自修复问题。结果:结果显示约一半的已修复问题为自修复,且所含 TD 问题被自修复的可能性与项目规模、开发者数量和问题总数呈负相关。此外,自修复与非自修复问题的存活时间无显著差异。进一步,当 TD 涉及较低代码层级问题(如缺陷债务和代码债务)时,开发者更倾向于偿还自己的 TD。最后,对项目更投入或更了解的开发者提高了自修复 TD 的可能性。结论:这些结果可通过辅助 TD 修复活动的优先级排序、完善开发团队内的策略,以及为 TD 管理工具的开发提供信息,使研究者和从业者均受益。
引用
@article{arxiv.2110.05928,
title = {Does it matter who pays back Technical Debt? An empirical study of self-fixed TD},
author = {Jie Tan and Daniel Feitosa and Paris Avgeriou},
journal= {arXiv preprint arXiv:2110.05928},
year = {2021}
}