基于变更代码分析的引导式模式挖掘用于 API 误用检测
软件工程
2021-07-13 v3
摘要
缺乏经验、文档不足以及次优的 API 设计常导致开发人员在复用第三方实现时出错。此类 API 误用可导致非预期行为、性能损失或软件崩溃。因此,当前研究旨在通过比较开发人员使用 API 的方式与先前推断的正确 API 使用模式来自动检测此类误用。尽管研究已取得显著进展,这些技术尚未在实践中采用。部分原因在于缺乏能与软件开发流程无缝集成的过程。特别是,现有方法未考虑如何收集用于推断模式的相关源代码样本。事实上,不充分的收集会导致 API 使用模式挖掘器推断出无关模式,从而产生误报而非发现真正的 API 误用。本文针对此问题:(a) 提供一种方法,提高针对给定代码变更集发现相关且真阳性模式的可能性,且该方法对具体静态、过程内挖掘技术无关;(b) 引入一种即时 API 误用检测概念,在提交时分析变更。特别地,我们引入不同的轻量级代码搜索与过滤策略,并在两个真实世界 API 误用数据集上评估它们以确定其在发现相关过程内 API 使用模式中的效用。我们的主要结果是 (1) 基于提交的搜索加后续过滤有效减少待分析代码量,(2) 尤其方法级过滤优于文件级过滤,(3) 项目内部与项目外部代码搜索针对不同误用类型找到解决方案因而互补,(4) 纳入误用的先验知识 [...]
引用
@article{arxiv.2008.00277,
title = {Guided Pattern Mining for API Misuse Detection by Change-Based Code Analysis},
author = {Sebastian Nielebock and Robert Heumüller and Kevin Michael Schott and Frank Ortmeier},
journal= {arXiv preprint arXiv:2008.00277},
year = {2021}
}