执行功能测试并分析测试覆盖率
功能测试从基于需求构建测试用例开始。这些测试可以涵盖设计的关键方面,并验证各个模型组件是否满足需求。测试用例包括输入、预期输出和验收标准。
通过在测试套件中收集各个测试用例,您可以系统地运行功能测试。为了检查回归,请在测试用例中添加基线标准,并以迭代方式测试模型。覆盖率测量反映这些测试覆盖模型运行范围的程度。覆盖率测量还可以帮助您添加测试和需求,以满足覆盖率目标。
使用测试用例生成逐步增加测试覆盖率
此示例说明如何对巡航控制模型执行基于需求的测试。这些测试链接到需求文档。您执行下列操作:
运行测试。
使用 Simulink® Coverage™ 确定测试覆盖率。
使用通过 Simulink Design Verifier™ 生成的附加测试来增加覆盖率。
报告结果。
打开测试框架和模型
打开工程:
openExample("shared_vnv/CruiseControlVerificationProjectExample"); pr = openProject("SimulinkVerificationCruise");
打开模型和测试框架。在命令行中输入:
open_system simulinkCruiseAddReqExample sltest.harness.open("simulinkCruiseAddReqExample","SafetyTest_Harness1")
从根据需求测试模型并报告结果 (Simulink Test)加载测试套件,并打开 Simulink 测试管理器。
pf = fullfile(pr.RootFolder,"tests","slReqTests.mldatx"); tf = sltest.testmanager.TestFile(pf); sltest.testmanager.view
打开 Test Sequence 模块。序列验证系统在出现以下任一情况时不啮合:
踩下制动踏板。
速度超限。
测量模型覆盖率
在 Simulink 测试管理器中,选择
slReqTests
测试文件。要启用覆盖率收集,请在右侧页中的覆盖率设置下执行以下操作:
选择记录引用模型的覆盖率。
使用覆盖率过滤器文件名指定覆盖率过滤器。
选择决策、条件和 MCDC。
点击测试管理器工具条上的运行。
测试完成后,选择结果。该测试实现了 50% 的决策覆盖率、41% 的条件覆盖率和 25% 的 MCDC 覆盖率。
生成测试以增加模型覆盖率
使用 Simulink Design Verifier 生成附加测试以增加模型覆盖率。在结果和工件中,选择
slReqTests
测试文件,并打开位于右窗格中的聚合覆盖率结果部分。右键点击测试结果,然后选择针对缺失覆盖率添加测试。
在框架下,选择新建框架。
点击确定以使用 Simulink Design Verifier 向测试套件添加测试。待测模型必须在MATLAB® 路径上或者在工作文件夹中。
在测试管理器工具条中,点击运行以执行更新后的测试套件。测试结果现在包含新增的测试用例输入的覆盖率,实现了更高的模型覆盖率。
您也可以通过使用 sltest.testmanager.addTestsForMissingCoverage
(Simulink Test) 和 sltest.testmanager.TestOptions
(Simulink Test) 以编程方式创建并使用测试来增加覆盖率。
相关主题
- 链接至需求 (Simulink Test)
- 使用 verify 语句评估模型仿真 (Simulink Test)
- 比较模型输出与基线数据 (Simulink Test)
- 生成模型决策覆盖率的测试用例
- 增加模型的测试覆盖率 (Simulink Test)