● 摘要
代码审查是由IBM的Michael Fagan于1976年首次提出的,它通过检查代码与设计的一致性、代码逻辑和结构的合理性等方面以提高软件的质量。作为软件质量保证的两个重要手段之一,它与测试同等重要。但与测试相比,代码审查更强调缺陷的预防。实践证明,与测试相比代码审查可以发现大量测试所无法发现的缺陷。不仅如此,因为不需要执行程序,代码审查可以比测试更早发挥作用,从而在软件开发过程的早期发现重大软件设计和编码问题,有效提高软件质量并降低软件问题的修正成本。但代码审查也有其显著的缺点,由于其是劳动密集型任务,真正实践起来需要付出大量人力成本,通过引入自动化代码审查工具则可以很好地解决这个问题。本课题在研究代码审查理论和缺陷检测技术的基础上,调研国内外大量代码审查辅助工具、代码阅读辅助工具和软件静态分析工具,提炼出自动代码审查工具所能检测的五十多种缺陷,并采用静态分析和基于缺陷特征的代码扫描技术,准确检测这些缺陷并给出详细的描述信息,从而对代码审查七个活动中的“个人准备”、“审查会议”和“修订”给以支持,显著提高代码审查效率。本文首先简要介绍了国内外相关领域的研究现状,接着对代码审查技术进行综述,将缺陷检测技术引入代码审查过程中,并结合代码审查理论给出了代码审查工具的详细需求;接下来从系统体系结构和代码扫描技术的角度对工具的设计进行介绍,并对其实现的关键技术进行详细阐述。本系统的核心模块包括:可扩展静态分析器的设计、检测规则的统一管理、与QESat工具集框架的集成和检测结果的保存与显示。最后给出工具的交互界面和具体检测实例并给出与其他相关工具比较的评测结果。