将静态分析集成到日常工作流程中
为了成功地将静态分析应用到您的项目中,重要的是要确保您的静态分析工具易于使用,并且开发人员可以轻松访问,并预先提供有用、可操作的信息。在本文中,学习如何通过有效的日常工作流程最大程度地利用静态分析。
如果您还没有阅读上一篇有关静态分析入门的文章,那么我建议您先阅读一遍,以了解如何从静态分析工具解释您的第一份报告并处理初始分析而又不会使团队感到不知所措。
这个小入门系列的第二部分是关于如何将静态分析工具集成到您的日常工作流程中的。您如何每天整合静态分析?
事实证明,这是关键。确保在您的项目中成功采用静态分析,要围绕确保工具易于使用和开发人员易于使用的方式进行,并预先提供有用,可操作的信息。这是在开发人员正在使用的环境(IDE)(例如Eclipse或Visual Studio)中最佳实现的。静态分析警告的发送方式与IDE中的编译器错误相同,并且在代码中突出显示了这些警告,以使分析和修复更加容易。例如,请参阅以下集成在Eclipse中的Parasoft Jtest静态分析警告的屏幕截图:
正如您在Eclipse中的Java应用程序的以上示例中所看到的那样,Parasoft Jtest的静态分析结果以警告/错误视图(1)的形式提供,并且可以与任何其他错误进行交互信息。选择错误会将编辑器窗格(2)带到相关代码行,这还将在代码中显示可用于跟踪警告根本原因的控制流跟踪。如果需要补救,可以照常通过项目导航视图(3)提交代码。
那么,开发人员在分析每个警告时会做什么?最好在流程图中对此进行描述,如下所示:
步骤1:汇总和过滤警告
它从汇总和过滤静态分析结果开始,这是确定优先级并关注关键警告的关键的第一步。通常,质量检查人员和团队负责人会在心中确定质量目标,并围绕此目标构建分析的配置。为了提高安全性,例如,将启用与安全性相关的检查器以及诸如CERT C的安全编码标准。
步骤2-4:调查、确定优先级并修复警告
然后,开发人员根据团队制定的政策和产品的成熟度,调查并修复发现的警告。正如我在上一篇文章中所解释的,在一个未开发的项目中,大多数警告将被调查并确定优先级,因为代码量相对较小,而在成熟阶段的后期,过滤和优先级将更加严格,因此开发人员只能处理真正的严重警告。无论哪种情况,过程都是相同的。
步骤5:签到来源
响应静态分析警告进行更改后,将代码检入版本控制中,并在下一次构建期间再次进行分析。简短而紧凑的反馈循环可在编写和修改代码时极大地提高代码的质量和安全性。
集成到构建系统和持续集成管道中
静态分析工具和构建系统的主要集成点是通过命令行界面。以这种方式使用的静态分析的行为有点像编译器在构建结构中的行为。文件的处理方式相同,尽管输出不是可执行文件,而是存储在存储库中的结果,并按文件和内部版本号进行索引。
例如,使用Parasoft C/C++test,可以由Parasoft的报告和分析系统(Parasoft DTP)处理,该系统既是存储库又是分析结果的智能引擎。这项分析和附带的信息将反馈给每个开发人员的IDE,并可以通过Parasoft的网络门户向经理和团队负责人提供。
在上图中,您将看到我们如何将Parasoft静态分析工具集成到持续集成管道中。 Parasoft DTP是用于警告的中央存储库和分析引擎。
总结
将静态分析集成到日常工作流程中,既需要开发人员直接在IDE中访问静态分析,又需要执行项目范围的分析、报告和管理的能力。直接支持开发人员使用代码的地方以及团队负责人和经理使用他们自己的趋势信息和报告访问相同的信息,这对于在项目中完全利用静态分析至关重要。
渴望更多?稍后再返回本系列的下一部分。我将解释如何处理静态分析警告积压和技术债务。