关于技术债务检测工具间缺乏共识
软件工程
2021-03-09 v1
摘要
近年来已开发出一套活跃且不断增长的技术债务分析工具——包括研究型工具与工业产品,如 Structure 101、SonarQube 与 DV8。这些工具各自依据自身定义与度量识别问题文件。但它们在所指认的问题文件上彼此一致的程度如何?若这些工具报告的高排名文件大体一致,我们便可放心使用其中任一工具。否则,便出现准确性问题。本文报告一项使用多种工具分析 10 个项目的实证研究的结果。我们的结果表明:1) 即便对于规模、复杂度、文件环、包环等最常见度量,这些工具的报告结果也大相径庭。2) 由于各自实现自身对“问题”的定义,这些工具在所识别问题文件集合上亦差异显著。按规模归一化后,工具所识别的最严重问题文件集合几乎无重叠。3) 我们的结果显示,除规模与复杂度外,基于代码的度量甚至与文件的易变更性或易错性无中等程度相关;相比之下,共变更相关度量表现更优。我们的结果提示,要识别具有真实技术债务——即经历过多变更或缺陷——的文件,必须考虑共变更信息;基于代码的度量在定位真实债务上基本无效。最后,本研究揭示了社区亟需创建基准与数据集,以依据常用度量评估软件分析工具的准确性。
引用
@article{arxiv.2103.04506,
title = {On the Lack of Consensus Among Technical Debt Detection Tools},
author = {Jason Lefever and Yuanfang Cai and Humberto Cervantes and Rick Kazman and Hongzhou Fang},
journal= {arXiv preprint arXiv:2103.04506},
year = {2021}
}