早期检测软件问题的简单Polyspace工作流
组织和团队为他们的软件开发过程采用各种模型(例如,V和敏捷)。在每个模型中,都有不同的变化,这取决于应用程序的需求、行业和工作流的成熟度。根据软件开发工作流程中的不同步骤,还有其他变化。例如,一些组织将正式的代码评审作为开发过程的一部分,因为它可以提高缺陷检测率。另一些则完全或严重依赖于测试活动。考虑到这些广泛的差异,至少有几个最佳实践适用于大多数现代嵌入式软件开发工作流。
编码阶段
很大一部分软件缺陷是在编码过程中引入的。如果不加检查,这些错误就会传播,直到集成阶段才会被检测到。例如,对数组的写入操作导致未被检测到的缓冲区溢出,可能会在开发期间或在目标硬件上测试时导致间歇性崩溃。
一个好的做法是在检查代码是否已编译的同时运行一个快速分析。这使您能够在代码进入代码评审或检入源代码管理系统之前捕获大量的缺陷。编码阶段也是执行任何编码指南(如MISRA)的最佳时间,该指南由您的公司或行业采用。您可以使用Polyspace Bug Finder™进行此类分析。在接下来的两个视频中,您可以看到Polyspace Bug Finder如何作为IDE的一部分在编码过程中检测错误,以及它如何帮助执行MISRA编码规则。
单元测试
软件开发过程中另一个重要的里程碑是单元测试阶段,在这个阶段您可以花费大量的时间来创建和执行测试用例。当这些测试发现缺陷时,您将花费宝贵的时间和精力调试和修复问题。
这是利用形式化语义分析提供的自动化来全面验证所有可能的运行时场景的理想步骤,而无需手动测试的开销。使用Polyspace Code Prover™作为单元测试过程的先驱,可以使您识别被证明是安全的代码。因此,您可以专注于分析未经验证的代码,以识别细微的运行时错误。这些错误是由于特定的输入值和参数在代码中的特定路径造成的。控制流、数据流和变量范围的运行时信息有助于诊断根本原因。
事实上,如果您在编码阶段使用了Polyspace Bug Finder,您可以重用该项目进行代码验证,从而避免了建立单独项目的需要。了解更多有关互补的工作流在Polyspace Bug Finder和Polyspace Code Prover之间。