对现代静态分析工具的期望
我们在客户中经常看到的流行图片是基于Git的开发环境,它具有动态的分支和合并方法。团队希望静态分析能够无缝集成到此类工作流程中。
凭借庞大而复杂的代码库,团队希望现代静态分析工具能够:
- 与CI/CD实践紧密结合。
- 帮助他们专注于日常工作,并提供快速的反馈,而无需长时间拖延。
- 启用对先前存在问题的过滤,并在功能分支中仅显示新的和相关的违规。
- 启用有效的抑制/放弃共享和管理。
在2020.2版本中,我们引入了Parasoft C/C++test的增强功能集合,使其更适合现代工作流程。在这篇文章中,我将重点介绍一些最有趣的新颖性:
- 自动调整静态分析范围,以获得更快的反馈。
- 专注于相关问题可以提高生产率。
- 方便地访问CI/CD静态分析结果可加快修复速度。
- 管理抑制以方便共享。
自动调整静态分析范围以获得更快的反馈
静态分析会话,尤其是在大型代码库上的会话,可能会很长。对于为功能或错误修复而进行少量增加的开发人员而言,这是个问题。他们希望获得有关他们修改的最新文件的快速反馈,并在内存中所有内容仍然新鲜时更正代码。在此阶段,他们更喜欢分析的速度而不是准确性。
在Parasoft C/C++test 2020.2中,我们增强了Git集成。现在,它可以自动调整分析范围,使其仅关注最近的代码修改。
开发人员可以指定一个父/引用分支与他们当前的开发分支进行比较。Parasoft C/C++test将自动比较和计算增量以进行分析。
图1:父分支和当前开发分支的比较
无需在整个项目上运行分析(这可能需要花费大量时间,甚至是数小时),我们可以在工具自动选择的最小文件集上运行分析。它可以大大减少分析会话的持续时间。
自然,某些需要项目系统级视图的检查器将不是100%准确的。我们建议将快速,受限的运行与广泛而完整的CI/CD扫描相结合。
对最小文件集