基于Polyspace的死码检测与覆盖

多空间这些工具可以帮助您识别软件中的死代码或无法访问的代码。这节省了时间,降低了与健壮性和完整代码覆盖率相关的测试活动的成本。Polyspace产品提供的有关软件运行时行为的详细信息证明了死代码的存在,并帮助您跟踪到潜在源的控制和数据流。这在遵守行业标准(如DO 178 B/C、ISO 26262、IEC 61508和IEC 62304)时尤为重要。下载188bet金宝搏

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

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

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

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

Polyspace产下载188bet金宝搏品可以帮助您发现死代码,优化测试周期,缩短整体验证周期。这一点很重要,因为它减少了工程师试图达到100%代码覆盖率所花费的时间,并且节省了测试和开发资源的时间。对于必须遵守标准(如DO 178 B/C)的高完整性和安全关键应用程序尤其如此。

DO-178B/ED-12B对失效和停用代码的定义如下:

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

DO-178B/ED-12B基本上要求删除任何死代码,并要求验证停用的代码,以证明它不能被无意中激活。正因为如此,测试的成本非常高。不管认证要求如何,识别死代码也是一种很好的开发实践,因为研究表明,死代码和停用代码是隐藏缺陷和运行时错误的来源。Polyspace产品可以帮助您优化测试周期,缩短整个验证周期。下载188bet金宝搏

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

即使在运行单个测试用例之前,也可以使用Polyspace代码验证工具在模块级或整个应用程序中识别无法访问的代码。如下图所示多空间错误查找器™您可以在IDE中检测代码中不可访问的部分,例如Eclipse®. 这也有助于您考虑任何此类死代码对应用程序的影响,并使您能够在第一时间进行更改。

使用Polyspace Bug Finder在eclipseide的编译时识别死代码。

用多空间码证明器证明死码的存在性

多空间码校准器™使您能够证明死代码的存在,因为它提供了数学证明,突出显示代码的某一部分不会针对应用程序中的任何代码路径和变量值的任何组合执行。借助于形式化方法和抽象解释技术,Polyspace代码验证程序以接近零的误报率证明了应用程序中的死代码。

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

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

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

此外,Polyspace产品与VectorCa下载188bet金宝搏st等代码覆盖工具集成良好,VectorCast可以导入Polyspace产品验证的结果,并使用这些结果补充其代码覆盖解决方案。

代码覆盖率是用来量化软件应用程序是否已经过全面测试并且包含bug的可能性较低的指标。结构代码覆盖率主要用作衡量何时达到充分测试的指标。因为不可能测试所有可能的运行时场景,所以100%代码覆盖率指的是已经测试到可接受级别的软件。死代码的存在使得不可能达到100%的代码覆盖率,并导致在编写不必要的测试用例时花费大量的时间和精力。

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

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

额外资源

马基

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