Polyspace产2022世界杯八强谁会赢?品

用Polyspace检测和覆盖死代码

Polyspace工具可以帮助您识别软件中的死代码或无法访问的代码。这节省了时间,并减少了与健壮性和完整代码覆盖率测试活动相关的成本。Polyspace产品提供的关于软件运行时行为的详细信息证明了死代码的存在,并帮2022世界杯八强谁会赢?助您跟踪到潜在源的控制和数据流。这在遵守诸如DO 178 B/C、ISO 26262、IEC 61508和IEC 62304等行业标准时尤为重要。

死代码是应用程序中永远不能执行的部分。常见原因包括:

  • 条件分支中的编程错误
  • 永远不会到达的代码,因为输入数据永远不会导致执行特定的分支
  • 调试构造和其他非功能代码
  • 为不同的运行时场景设计的可重用组件

应用程序中存在死代码可能会导致严重的后果,因为它可能是隐藏bug的来源。死代码还意味着代码效率低,因为它会增加可执行文件的大小,这与嵌入式应用程序尤其相关。也可以是法律含义

死代码的简单例子
死代码的简单例子。
通过测试实现完整代码覆盖的成本
通过测试实现完整代码覆盖的成本。

Polyspace产2022世界杯八强谁会赢?品可以帮助您找到死代码,优化测试周期,并缩短整体验证周期。这很重要,因为它减少了工程师试图达到100%代码覆盖率所花费的时间,并且节省了测试和开发资源的时间。对于必须遵守DO 178 B/C等标准的高完整性和安全关键型应用程序尤其如此。

DO-178B/ED-12B定义死代码和失效代码如下:

  • 死代码-可执行的目标代码(或数据),由于设计错误,不能在目标计算机环境的操作配置中执行(代码)或使用(数据),并且不能追溯到系统或软件需求。一个例外是嵌入式标识符。
  • 失效代码-可执行的目标代码(或数据),从设计上看,要么(a)不打算被执行(代码),要么被使用(数据),例如,先前开发的软件组件的一部分;或(b)仅在目标计算机环境的某些配置中执行(代码)或使用(数据),例如,由硬件引脚选择或软件编程选项启用的代码。

DO-178B/ED-12B本质上要求删除任何死代码,并要求验证停用代码,以证明它不会被无意中激活。正因为如此,测试的成本非常高。识别死代码也是一种很好的开发实践,不管认证要求如何,因为研究表明,死代码和失效代码是隐藏缺陷和运行时错误的来源。Polyspace产2022世界杯八强谁会赢?品可以帮助您优化测试周期,缩短整体验证周期。

使用Polyspace Bug Finder识别无法访问的代码

甚至在运行单个测试用例之前,您就可以使用Polyspace代码验证工具在模块级别或完整的应用程序中识别不可达的代码。如下图所示,与Polyspace Bug Finder™您可以在IDE(例如Eclipse)中检测代码中不可访问的部分®.这还可以帮助您考虑任何此类死代码对应用程序的影响,并使您能够在第一时间进行更改。

在Eclipse IDE中使用Polyspace Bug Finder在编译时识别死代码。
在Eclipse IDE中使用Polyspace Bug Finder在编译时识别死代码。

使用Polyspace code Prover证明死代码的存在

Polyspace Code Prover™使您能够证明死代码的存在,因为它提供了数学证明,突出显示对于应用程序中的任何代码路径和变量值的任何组合,代码的某个部分都没有执行。通过形式化方法和抽象解释技术,Polyspace Code provver以接近零的误报率证明应用程序中的死代码。

在Polyspace code Prover中存在死代码的证明,包括有关问题原因的详细信息。
在Polyspace code Prover中存在死代码的证明,包括有关问题原因的详细信息。

通过详细的检查信息,可以进一步了解冗余的原因。它可能会发现在需求捕获期间未被识别或与任何测试用例不相关的遗漏的需求。数据范围规范允许您识别上下文验证的参数范围,也允许您识别死代码和失效代码。

代码覆盖率、代码度量和趋势

此外,Polyspace产品与VectorCa2022世界杯八强谁会赢?st等代码覆盖工具很好地集成,这些工具可以导入Polyspace产品验证的结果,并使用结果来补充他们的代码覆盖解决方案。

代码覆盖率是一种度量,用于量化软件应用程序是否经过了彻底的测试,以及包含错误的可能性是否较低。结构代码覆盖率主要用作一种度量,以表明何时已经实现了足够的测试。因为不可能测试所有可能的运行时场景,100%的代码覆盖率指的是已经测试到可接受水平的软件。死代码的存在使得不可能达到100%的代码覆盖率,并导致在编写不必要的测试用例上投入大量的时间和精力。

Polyspace工具可以生成和综合有用的代码度量,准确地反映代码的质量。这些指标可以使用基于web的仪表板查看。通过这个内置的特性,您可以访问各种指标,例如运行时错误、代码复杂性和编码规则违反。使用这些度量,当您的代码从第一次迭代发展到最终的交付版本时,您可以跟踪朝着预定义的软件质量目标的进展。您还可以度量您对代码库所做的任何代码更改的增量影响,例如由于更改而引入的任何死代码。

在Polyspace基于web的仪表板中跟踪代码质量指标
在Polyspace基于web的仪表板中跟踪代码质量指标。

额外的资源

阿莱尼亚·马基公司

“对我们来说,基于模型的设计的一个关键优势是能够专注于设计和开发,而不是低级的编码、验证和认证任务。其结果是更高质量的DO-178B认证软件,以及更快的迭代。”

Baidu
map