测试生成工作流
模型验证和确认过程中的一个基本步骤是生成测试,以全面评估模型行为。这包括验证模型是否满足预期需求,以及检查模型覆盖范围以识别任何缺失的测试场景。此外,它还包括重用和扩展基于模型的测试以实现代码覆盖率,确保模型和代码行为的一致性。
Simulink® Design Verifier™ 通过自动生成测试用例的功能,为实现这些步骤提供全面支持。以下部分描述了基于模型的测试中的三个重要活动:
基于需求的测试
实现模型覆盖率
实现生成的代码覆盖率
并重点介绍了 Simulink Design Verifier 测试生成如何帮助您实现这些目标。
兼容性注意事项
要使用 Simulink Design Verifier 生成测试,模型必须兼容。不兼容的一个示例是,求解器步骤设置为 variable size
。检查模型兼容性 包括一些功能,在这些功能下,模型不兼容生成测试。在这些情况下,您必须使用模块替换等方法使模型适合分析。有关详细信息,请参阅模块替换对测试生成的影响。
基于需求的测试
Simulink Design Verifier 支持为需求表中的每行生成测试。用户还可以使用规范模型 - 这些模型使用标准的 Simulink 或 Stateflow® 元素和自定义条件设计,作为测试目标。有关基于需求的测试生成的更多信息,请参阅 使用 Requirements Table 模块构建规范模型 和 使用规范模型进行基于需求的测试。
需求建模 | 支持的工作流 | 相关信息 |
使用需求/设定模型 | 生成测试并将其与需求联系起来。 | 从 Requirements Table 模块生成并导出测试 |
使用自定义模块或 API 定义预期需求条件作为测试目标 |
分析并解决模型覆盖缺失问题
模型覆盖率使您能够评估测试对设计模型的影响。它有助于识别缺失的需求,并根据覆盖度量突出显示需要改进的测试套件。Simulink Design Verifier 提供工作流来增强测试套件,通过生成模型覆盖度量测试来帮助检测设计中无法到达的部分。
步骤 | 支持的工作流 | 相关信息 |
实现模型覆盖率 | 生成条件/决策、MCDC 和关系边界度量测试。该度量通过模型定义了模型和 C 代码函数。 | |
识别不可达的逻辑 | 通过模型覆盖率或自定义条件检测无法达到的逻辑。这有助于您评估和申述所发现的任何死逻辑。 | 死逻辑检测 |
测试模型组件 |
| |
实现缺失覆盖率 |
|
分析并解决代码覆盖率缺失问题
从模型生成的代码在嵌入式平台上的后续软件集成步骤中使用。您可以重用模型级测试并测量代码覆盖率。Simulink Design Verifier 有助于生成测试,以解决生成的代码中发现的任何缺失的代码覆盖率。此外,Simulink Design Verifier 支持在模型覆盖测试生成期间记录“预期输出”,从而能够在软件循环环境中使用生成的代码对模型进行背靠背测试。
步骤 | 支持的工作流 | 相关信息 |
实现生成的代码覆盖率 |
| 为 Embedded Coder 生成的代码生成测试用例 |
背靠背测试 | 记录模型覆盖测试的预期输出,并将这些测试导出到 Simulink Test 以实现背靠背测试。 | |
在代码中测试函数 | 为子系统对应的代码函数生成测试 | 为子系统生成测试用例 |
交叉产品交互
Simulink Design Verifier 通过自动生成测试用例、识别设计错误以及验证 Simulink 模型中的属性,增强了模型验证功能。它可轻松与其他产品交互,提供全面的测试框架。下表描述了 Simulink Design Verifier 与其他产品的交互方式:
产品 | 交互 | 相关信息 |
Simulink Coverage™ |
|
|
Simulink Test |
|
|
Requirements Toolbox™ | 生成需求表的测试用例并链接 | 从 Requirements Table 模块生成并导出测试 |