主要内容

增加模型的测试覆盖率

通过生成测试输入来增加测试覆盖率。

如果您的测试实现了不完整的模型覆盖,您可以通过使用Simulink®Design Verifier™生成测试输入来增加覆盖。这个例子展示了如何在初始测试用例之外增加测试覆盖率。您度量一个测试用例的初始覆盖率。然后,生成新的测试用例,将它们添加到测试套件中,运行测试,并检查聚合覆盖率。

工作流

本示例使用测试线束测试自动驾驶系统的一个组件。来自基本工作区的时间序列数据映射到测试工具中的根导入。测试文件被配置为收集覆盖率。

工作流示例如下:

  1. 度量初始测试用例的模型覆盖率。

  2. 生成额外的测试以获得更大的覆盖率。

  3. 向测试文件添加新的测试用例。

  4. 运行所有测试用例,并审查总体覆盖率。

路径和示例文件

为示例设置路径和文件名。

rollModel =“RollAutopilotRevised”;testHarness =“RollReference_LoggedDataTest”;测试文件=“RollRefTest.mldatx”

运行初始测试并审查覆盖率

1.确保工作文件夹是可写的。

2.打开测试文件。

sltest.testmanager.view;sltest.testmanager.load(测试文件);

3.运行测试。在测试浏览器,突出显示记录数据和覆盖率测试套件中。点击运行

4.测试完成后,在测试结果中展开覆盖率结果部分。测试实现了部分覆盖卷参考子系统。

  • 决策覆盖率:80%

  • 条件覆盖率:70%

  • MCDC 25%

生成测试以增加模型覆盖率

为缺失的覆盖率生成额外的测试。

1.在覆盖结果下方,单击为缺失的覆盖率添加测试

2.在为缺失的覆盖率添加测试对话框中,设置以下选项:

  • 利用:RollReference_LoggedDataTest.这将新的测试输入映射到现有的测试工具。

  • 测试用例创建一个新的测试用例.这会用生成的测试输入创建一个新的测试用例。

  • 测试类型:基准测试.这提供了从生成的测试的模型捕获基线数据输出的选项。

  • 测试文件:RollRefTest.这将重用现有的测试文件。

3.点击好吧.一个对话框显示了测试用例生成的进度。当测试用例生成完成时,一个新的测试用例出现在测试管理器中。

类型以编程方式添加测试sltest.testmanager.addTestsForMissingCoverage函数。

运行新的测试用例

1.将新的测试用例拖放到记录数据和覆盖率测试套件中。

2.运行记录数据和覆盖率再次测试套件。

3.模拟完成后,在结果和工件部分,选择结果集并展开汇总覆盖率结果.测试套件实现了完全覆盖:

  • 决定:100%

  • 条件:100%

  • MCDC: 100%

清理

清除变量和测试结果,关闭模型。

清晰的reqDocrollModel测试文件testHarnesstopModel;sltest.testmanager.clearResults;sltest.testmanager.close;close_system (“RollAutopilotRevised”, 0);

相关的话题

Baidu
map