中文

WeakSATD:检测脆弱的自承认技术债务

软件工程 2022-05-05 v1

摘要

加速开发可能会产生技术债务,即不太正确的代码,而将其修正所需的努力会随时间如利息般增长。开发者可能意识到这些债务,因为他们在其代码注释中承认了它。文献报道此类自承认技术债务会在程序中存活很长时间,但其对代码长期质量的影响尚不清楚。我们认为自承认技术债务包含若干不同的弱点,可能影响程序的安全性。因此,债务未被偿还的时间越长,弱点被利用的风险就越高。为讨论我们的主张并提升开发者对未偿还自承认技术债务脆弱性的认识,我们探索Chromium的C代码中的自承认技术债务以检测任何已知弱点。在这项初步研究中,我们首先挖掘通用弱点枚举(Common Weakness Enumeration)仓库来定义用于自动检测和修复脆弱代码的启发式规则。然后,我们解析C代码以查找自承认技术债务及其所指的代码块。最后,我们使用启发式规则查找与自承认技术债务相关的脆弱代码片段,并向开发者推荐其潜在缓解措施。此类知识可用于优先修复自承认技术债务。我们已开发原型并应用于Chromium代码。初步发现报告称55%的自承认技术债务代码包含14种不同类型的脆弱代码。

关键词

引用

@article{arxiv.2205.02208,
  title  = {WeakSATD: Detecting Weak Self-admitted Technical Debt},
  author = {Barbara Russo and Matteo Camilli and Moritz Mock},
  journal= {arXiv preprint arXiv:2205.02208},
  year   = {2022}
}

备注

short paper