执行功能测试并分析测试覆盖率
功能测试从基于需求构建测试用例开始。这些测试涵盖设计的关键方面,并验证各个模型组件是否满足需求。用于功能测试的测试用例包括输入、预期输出和验收标准。此外,如果将功能测试用例存储在测试套件中,可以系统地运行功能测试。
您还可以运行回归测试并测量不同级别的覆盖率,以进一步完善测试。要检查回归,可以在测试用例中添加基线标准,并将模型输出与一组基线数据进行比较。然后,可以对模型进行覆盖率测量,以确定测试对模型的执行程度,并确定是否需要添加测试或需求,以达到覆盖率目标。
此示例说明如何对巡航控制模型执行基于需求的测试。在此示例中,您:
运行测试。
使用 Simulink® Coverage™ 确定测试覆盖率。
使用 Simulink Design Verifier™ 生成更多测试,从而提高覆盖率。
报告结果。
打开测试框架和模型
打开示例工程:
openExample("shared_vnv/CruiseControlVerificationProjectExample"); pr = openProject("SimulinkVerificationCruise");
打开模型和测试框架。
open_system("simulinkCruiseAddReqExample"); sltest.harness.open("simulinkCruiseAddReqExample","SafetyTest_Harness1")
在 Simulink 测试管理器中打开测试文件
slReqTests.mldatx
。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
测试文件,并打开右窗格中的聚合覆盖率结果部分。右键点击测试结果,然后选择针对缺失覆盖率添加测试。
将框架设置为创建新框架。
点击确定。待测模型必须在 MATLAB® 路径上或者在工作文件夹中。
要执行更新后的测试套件,在测试管理器工具条中,点击运行。测试结果现在包含新增的测试用例输入的覆盖率,实现了更高的模型覆盖率。
另请参阅
sltest.testmanager.addTestsForMissingCoverage
(Simulink Test) | sltest.testmanager.TestOptions
(Simulink Test)
主题
- 链接至需求 (Simulink Test)
- 通过 when 分解验证模型仿真 (Simulink Test)
- 基线测试 (Simulink Test)
- 生成模型决策覆盖率的测试用例 (Simulink Design Verifier)
- 增加模型的测试覆盖率 (Simulink Test)