如何系统地确定橙子检查的优先级

由Ram Cherukuri

Polyspace Code Prover™使用橙色突出显示无法在所有情况下自动证明是无错误的操作。然后您可以检查可能导致健壮性或可靠性问题的潜在运行时问题。

例如,这里我们有一个大小为127的数组,但是索引的值可以从0到555。用橙色高亮显示,因为该操作既不能在所有可能的运行时条件下证明是安全的(如果索引值为128呢?),也不能证明每次运行都是错误的(如果索引值为10呢?)如果您忽略了这样的操作,那么您可能会以意外的软件故障而告终,这通常是难以复制和调试的。因此,这是一个健壮性问题。

数组的大小为127突出显示橙色。

所以回顾橙色的检查是很重要的。它不仅有助于识别运行时问题,而且对于代码审查讨论和单元测试工作来说,它是一个有用的构件。了解更多关于理解橙色检查的原因

条形图显示了验证所覆盖的代码。

但是,在检查验证结果之前,应该注意Polyspace仪表板。它提供了有用的信息,以确保您对分析进行了适当的配置。它突出显示了分析了多少代码;例如,如果您错误地配置了主生成器或多任务选项,您可能最终只分析了代码的一小部分。

多空间仪表板的检查分布。

另外,查看检查分布之前,检查橙色。一定要先检查红色和灰色的格子。如果超过10%的检查是橙色的,则应该后退一步,查看验证是否使用正确的上下文设置。您可以在仪表板中查看检查的顶部来源(如下图所示),您可以单击一个特定的来源,以查看筛选过的橙子列表。这可以帮助解决橙色检查的集合(例如,您可以查看由无约束输入或缺乏验证上下文引起的所有检查)。

橙色来源柱状图。

查看了Polyspace仪表板之后,这里有一些提示和最佳实践,可以在确定橙色检查的优先级时加以考虑。有关如何过滤的详细信息,请参阅下面的文档关键的橙色检查

  • 关键橙色检查的类别之一是可能导致运行时错误的路径相关问题。这些标记用深橙色突出显示,并用标记表示。首先解决这些问题,因为它们最有可能导致软件问题。
  • 在检查了暗橙色检查之后,您应该再检查由无约束输入引起的关键橙色检查。该信息还在仪表板中突出显示,如下所示。有关适当设置约束的更多信息,参考文档

显示约束设置的仪表板。

了解更多关于减少总数量通过遵循编码指南和其他提示,橙色检查。

如果你对这个话题感兴趣,你可以作者联系