死代码检测和覆盖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 Bug的搜索™您可以将您的IDE,比如Eclipse中正确检测到您的代码无法访问部分®。这也有助于你在考虑你的应用程序的任何这样的死代码的含义,并围绕使您能够进行更改的第一次。

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

证明的死代码使用Polyspace代码证明者的存在

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

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

您可以使用详细登记信息,以进一步了解这种冗余的原因。它可能会发现错过了需求捕获过程中未发现或没有与任何测试用例相关要求。数据范围规范,它可以让你识别参数范围上下文验证,您还可以同时识别死代码和停用代码。

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

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

代码覆盖率是用来量化是否应用软件已经经过全面测试的指标,并具有包含错误的机会较低。结构代码覆盖率,主要是用来作为衡量指示何时足够的测试已经完成。因为它是不可能的测试所有可能的运行时情况下,100%的代码覆盖率是指经过测试达到可接受的水平的软件。死代码的存在使得它不可能达到100%的代码覆盖率,并导致时间显著投资和努力以书面不必要的测试用例。

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

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

其他资源

阿莱尼亚·马基航空

“对于我们来说,基于模型的设计的一个关键优势是能够集中精力于设计和开发,而不是低层次的编码,验证和认证工作。其结果是更高的质量,DO-178B认证的软件,更快的迭代。“