Main Content

本页采用了机器翻译。点击此处可查看英文原文。

增量测试生成的分区模型输入

您可以使用 Simulink® Design Verifier™ Test Condition模块来约束模型输入的值。

与其他 Simulink 参数一样,通过引用公共工作区变量,约束值可以在多个模块之间共享;您可以使用 MATLAB® 命令初始化约束值。如果您有多个与速度相关的输入,例如期望速度、测量速度和平均速度,您可能选择将它们全部限制为同一组值。

作为经验丰富的 MATLAB 程序员的一项高级技术,您可以使用参数化约束和 Simulink Design Verifier 的连续运行来实现增量测试生成技术:

  1. 模型输入进行分区,使得一些保持恒定,一些使用 Test Condition模块约束为常数集,一些可以具有任意值。

  2. 生成测试用例并运行这些测试用例以收集模型覆盖率。

  3. 选择新值并使用这些新值对输入进行分区。

  4. 使用sldvgencov函数和当前测试覆盖率生成缺失覆盖率的测试用例。

    注意

    要查看扩展现有测试套件以实现缺失模型覆盖率的示例,请在 MATLAB 命令窗口的命令提示符下输入以下内容:

    openExample('sldv/ExtendingAnExistingTestSuiteExample');

  5. 重复步骤 3 和 4,直到达到所需的覆盖率效果。

对模型输入进行分区,以便在分析运行时进一步简化。考虑以下模型,它具有三个相互独立的使能子系统:

  • 正常模式

  • 关断模式

  • 故障模式

A Simulink model with three mutually independent enabled subsystems named as: Normal mode, Shutdown mode, and Failure mode.

您可以通过在运行分析之前将第一个输入限制为一个常数值来逐步生成每个子系统的测试用例。这样,当您为每个子系统创建测试用例时,软件就会忽略其他两个子系统的复杂性。