使用 Excel 文件添加测试用例
此示例说明如何使用 Simulink® Design Verifier™ 支持的 Excel® 文件逐步创建测试用例。
Simulink® Design Verifier™ 会生成测试用例以满足测试准则,例如模型目标。由于支持限制和模型复杂度,有时它生成的测试用例可能无法覆盖所有模型目标。使用此示例了解如何执行以下操作:
以 Excel 文件格式创建测试用例。
在 Excel 文件中手动编写新测试用例。
通过 Excel 文件使用测试扩展创建额外的测试用例。
使用 Design Verifier 生成测试用例
打开模型并创建测试用例。
model = 'sldvexSpreadsheetTopoff';
open_system(model);
[~, files] = sldvrun(model);12-Aug-2025 18:09:16
Checking compatibility for test generation: model 'sldvexSpreadsheetTopoff'
Compiling model...done
Building model representation...done
12-Aug-2025 18:09:31
'sldvexSpreadsheetTopoff' is compatible for test generation with Simulink Design Verifier.
Generating tests using model representation from 12-Aug-2025 18:09:31...
Generating output files:
12-Aug-2025 18:09:56
Results generation completed.
Data file:
/tmp/Bdoc25b_2988451_638779/tp4197d6c1/sldv-ex79932255/sldv_output/sldvexSpreadsheetTopoff/sldvexSpreadsheetTopoff_sldvdata.mat
将 Design Verifier 测试用例保存到 Excel 文件
Simulink Design Verifier 默认以 MAT 文件格式创建测试用例。使用以下任一方法将上一节中生成的测试用例保存在 Excel 文件中:
点击“结果”中的“保存到电子表格”按钮。
点击结果窗口或结果检查器中的“保存到电子表格”链接。
使用
sldvgenspreadsheet函数。
对于此示例,使用 sldvgenspreadsheet 函数保存测试用例。
excelFilePath = sldvgenspreadsheet(model, files.DataFile);
注意:不支持将总线信号数组导入或导出到 Excel 文件。有关详细信息,请参阅Microsoft Excel 导入、导出和记录格式。
识别缺失覆盖率目标
使用 Excel 文件中的所有测试用例对模型进行仿真,并创建覆盖率报告。sldvruntest 支持将电子表格中的测试用例作为仿真输入。
runOpts = sldvruntestopts; runOpts.coverageEnabled = true; % Enable coverage [~, initialCov] = sldvruntest(model, excelFilePath, runOpts); % Use test cases from Excel file for simulation cvhtml('Initial coverage', initialCov);
请注意,在覆盖率报告中,Switch 模块 logical trigger input 的值永远不会为 false。

编写测试用例以满足覆盖率目标
确定缺失覆盖率目标的原因。在此示例中,模型包含不受支持的模块 Sqrt,这限制了 Simulink Design Verifier 分析。
要使 Switch 模块的触发器输入值为 false,需注意输入端口 In3 的值应大于 100。在 Excel 文件中添加一个包含测试用例的新工作表。

验证新测试用例是否满足所需的覆盖率目标。
excelFilePath = 'WithNewTestCase.xlsx'; runOpts = sldvruntestopts; runOpts.testIdx = 2; % Simulate only the newly added test case runOpts.coverageEnabled = true; [~, newTestCov] = sldvruntest(model, excelFilePath, runOpts); cvhtml('New test coverage', newTestCov);
使用 Excel 文件运行测试扩展
Simulink Design Verifier 测试扩展工作流通过扩展现有测试用例来生成新测试用例。这有助于通过扩展您的新测试用例来满足额外的覆盖率目标。
opts = sldvoptions(model); opts.ExistingTestFile = excelFilePath; % Use Excel file with new test cases as input for test extension opts.ExtendExistingTests = 'on'; % Enable test extension [~, files] = sldvrun(model, opts);
12-Aug-2025 18:10:21
Checking compatibility for test generation: model 'sldvexSpreadsheetTopoff'
Compiling model...done
Building model representation...done
12-Aug-2025 18:10:24
'sldvexSpreadsheetTopoff' is compatible for test generation with Simulink Design Verifier.
12-Aug-2025 18:10:24
Loading initial test data...done
Generating tests using model representation from 12-Aug-2025 18:10:24...
Generating output files:
12-Aug-2025 18:10:33
Results generation completed.
Data file:
/tmp/Bdoc25b_2988451_638779/tp4197d6c1/sldv-ex79932255/sldv_output/sldvexSpreadsheetTopoff/sldvexSpreadsheetTopoff_sldvdata1.mat
验证完整覆盖率
使用新测试用例对模型进行仿真,并验证您现在是否具有完整覆盖率。
runOpts = sldvruntestopts; runOpts.coverageEnabled = true; % Enable coverage [~, finalCov] = sldvruntest(model, files.DataFile, runOpts); cvhtml('Final coverage', finalCov); close_system(model, 0);
如果新测试用例仍产生部分覆盖率,您可以在 Excel 文件中编写新测试用例,然后运行测试扩展工作流,直到实现完整覆盖率。
