主要内容

分析代码和测试软件 - 循环

代码分析和测试软件循环概述

分析代码以检测错误,检查标准合规性,并评估长度和循环复杂性等关键指标。通常用于手写代码,您可以使用静态代码分析检查运行时错误,并运行测试用例,用于评估要求的代码和评估代码覆盖。根据结果​​,优化代码并添加测试。对于生成的代码,演示代码执行通过使用相同的测试用例和基线结果将等效结果产生相同的结果。将代码覆盖范围与模型覆盖范围进行比较。基于测试结果,添加测试并将模型修改为重新生成代码。

分析缺陷,指标和和臭臭:2012年

此工作流程描述了如何检查您的模型是否产生Misra®C:2012符合代码,如何检查代码指标,代码缺陷和MISRA合规性的代码。要从模型中生成更多的MISRA兼容代码,请使用代码生成和模型顾问。要检查代码是否符合Misra,请使用PolySpace®MISRA C:2012 Checker和报告生成功能。对于此示例,您可以使用该模型金宝appsimulinkcruiseerrorandstanddardsexample.。要打开模型:

  1. 打开项目。

    path = fullfile(matlabroot,'toolbox','shared','simear',...'验证','src','cruise')运行(fullfile(path,'slverificedcruisestart')))

  2. 从项目中,打开模型金宝appsimulinkcruiseerrorandstanddardsexample.

运行代码生成器检查

在从模型中生成代码之前,有步骤可以使用MISRA C和更兼容PolySpace来生成更符合的代码。此示例显示如何在生成代码之前使用代码生成顾问检查您的模型。

  1. 右键点击计算目标速度并选择C / C ++代码>代码生成顾问

  2. 选择代码生成顾问文件夹。在右窗格中,移动波尔盖斯选定的目标 - 优先考虑。这Misra C:2012指南目的已经选择了。

  3. 点击运行选定的检查

    代码生成顾问检查MISRA C:2012合规性和PolySpace代码分析是否有任何不建议的块或配置设置。对于此模型,检查不兼容的块通过,但有一些配置设置与MISRA合规性和PolySpace检查不兼容。

  4. 点击检查没有通过。通过选择接受参数更改修改参数

  5. 通过选择重新运行支票运行此检查

运行模型顾问检查

在从模型中生成代码之前,您可以采取步骤生成更符合Misra C和更兼容的PolySpace的代码。此示例显示如何在生成代码之前使用模型顾问检查您的模型。

  1. 在代码生成顾问窗口的底部,选择模型顾问

  2. 在下面通过任务文件夹,选择MISRA C:2012的建模标准顾问检查。

  3. 点击运行选定的检查并查看结果。

  4. 如果任何任务发生故障,请使建议的修改并重新运行检查,直到Misra建模指南通过。

生成和分析代码

完成模型合规性检查后,您可以生成代码。使用PolySpace,您可以检查您的代码以遵守MISRA C:2012,并生成报告以证明遵守MISRA C:2012。

  1. 在Simuli金宝appnk中®编辑器,右键单击计算目标速度并选择C / C ++代码>构建此子系统

  2. 使用可调参数的默认设置并选择建造

  3. 生成代码后,右键单击计算目标速度并选择波尔盖斯>选项

  4. 点击配置(PolySpace Bug Finder)按钮。此选项允许您在PolySpace配置窗口中选择更高级的PolySpace分析选项。

  5. 在同一窗格中,选择计算代码指标(PolySpace Bug Finder)。此选项打开生成代码的代码度量计算。

  6. 保存并关闭PolySpace配置窗口。

  7. 从您的模型中,右键单击计算目标速度并选择波尔盖斯>核实>为所选子系统生成的代码

    PolySpace Bug Finder™分析MISRA检查和缺陷检查的子集所生成的代码。您可以在MATLAB命令窗口中看到分析的进度。完成分析后,PolySpace环境将打开。

审查结果

运行生成代码的PolySpace分析后,PolySpace环境显示静态代码分析的结果。

  1. 展开规则8.7的树,然后单击不同的结果。

    规则8.7表示函数和对象是否应全局,如果函数或对象是本地的。当您单击通过8.7违规时,您可以看到这些结果是指其他组件也使用的变量,例如CruiseOnoff.。您可以向您的代码或模型注释,以证明每个结果。但是,因为这个模型是一个较大的程序中的单位,所以您还可以更改分析的配置,以检查MISRA规则的子集。

  2. 在您的模型中,右键单击计算目标速度并选择波尔盖斯>选项

  3. 设定设置从(PolySpace Bug Finder)选择项目配置。此选项允许您在PolySpace配置中选择MISRA规则的子集。

  4. 点击配置按钮。

  5. 在PolySpace配置窗口中,在编码标准和代码指标窗格,选中复选框检查Misra C:2012(PolySpace Bug Finder)从下拉列表中,选择单调规则。现在,PolySpace仅检查MISRA C:2012规则,适用于单个单位。

  6. 保存并关闭PolySpace配置窗口。

  7. 使用新配置重新运行分析。

    前面发现的规则波形节目显示,因为该模型本身分析。当您限制要检查到单个单元子集的规则PolySpace时,只发现了两个违规行为。

当此模型与其父模型集成时,您可以添加其他MISRA C:2012规则。

生成报告

要展示符合MISRA C:2012和关于生成的代码指标的报告,您必须导出结果。本节向您展示了如何在分析后生成报告。如果您想在每次运行分析时生成报告,请参阅生成报告(PolySpace Bug Finder)

  1. 如果它们未打开,请在PolySpace环境中打开您的结果。

  2. 从工具栏中,选择报告>运行报告

  3. 选择Bugfindersummary.作为您的报告类型。

  4. 点击运行报告

    报告将保存在与结果相同的文件夹中。

  5. 要打开报告,请选择报告>打开报告

相关话题