死代码检测和覆盖Polyspace

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

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

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

死代码在应用程序中存在可能导致严重的后果,因为它可以隐藏错误的来源。死代码也意味着代码是低效的,因为它可以增加你的可执行文件,它是为嵌入式应用特别相关的大小。还可以有法律问题

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

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

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

  • 死代码 - 可执行目标代码(或数据),作为设计错误的结果,不能在目标计算机环境的操作配置中执行(代码)或使用(数据)和无法追踪到一个系统或软件需求。一个例外是嵌入式标识符。
  • 失活的代码 - 可执行目标代码(或数据),其通过设计是(a)不旨在被执行(代码)或使用(数据),例如,一个先前开发的软件组件的一部分;或(b)只执行在目标计算机环境的某些配置中,例如(代码)或使用(数据),该代码是由硬件引脚选择或软件编程的选项中启用。

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

确定使用Polyspace Bug的查找不到的代码

甚至在运行单个测试用例之前,您就可以使用Polyspace代码验证工具在模块级别或整个应用程序中识别不可到达的代码。如下图所示,用Polyspace错误发现者™您可以将您的IDE,比如Eclipse中正确检测到您的代码无法访问部分®。这也有助于你在考虑你的应用程序的任何这样的死代码的含义,并围绕使您能够进行更改的第一次。

确定在Eclipse IDE中使用Polyspace Bug的搜索中编译时死代码的权利。

用Polyspace码证明器证明死代码的存在

Polyspace代码验证™使您能够证明的死码的存在,因为它提供了数学证明高亮没有针对任何代码路径,并在您的应用程序变量值的任意组合执行的代码的某个片段。凭借形式化方法和抽象解释技术,Polyspace代码证明器证明了您的应用程序与接近零误报率的死代码。

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

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

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

此外,Polyspace产品与代码覆盖工具,如s manbetx 845VectorCAST的,可以导入Polyspace产品验证的结果,并使用结果,以补充他们的代码覆盖解决方案很好地集成。

代码覆盖率是一个度量标准,用于量化一个软件应用程序是否经过了彻底的测试,并且包含bug的可能性更低。结构代码覆盖率主要用于指示何时完成了足够的测试。因为不可能测试所有可能的运行时场景,100%的代码覆盖率指的是已测试到可接受水平的软件。死代码的存在使得不可能达到100%的代码覆盖率,并导致在编写不必要的测试用例上花费大量的时间和精力。

Polyspace工具生产和合成有用的代码度量准确地反映你的代码的质量。这些度量可以使用基于web的仪表盘进行查看。有了这个内置的功能,您可以访问各种指标,如运行时错误,代码的复杂性和编码违规。利用这些指标,你可以跟踪您向预定义的软件质量目标,从第一次迭代到最终交付版本的代码更新进度。您也可以衡量您对代码库,如引入任何死代码的变化而产生的任何代码的修改的增量影响。

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

额外的资源

阿莱尼亚·马基公司

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