作者自定义测试目标工作流程
增强修正条件/决策覆盖率(MCDC) 考虑了在检测站点可检测到的测试模块的默认覆盖率目标。要检查自定义测试目标的可检测性状态,您可以创作模型对象的测试目标,并执行增强型 MCDC 分析。
考虑这个由 Product 模块和 Min 模块组成的模型。您可以为 Product 模块编写自定义测试目标,以使输出值小于 0,并在检测站点检测自定义测试目标的效果。

编写自定义测试目标的步骤
此工作流程描述了为模块创作自定义测试目标的步骤。
步骤 1:创建一个原子封装子系统库来编写自定义测试目标。封装子系统由以下模块组成:
正在考虑的模块,例如 Product 模块。
对自定义测试目标进行编码的逻辑,例如 MATLAB Function 模块。
Simulink® Design Verifier™ Test Objective 模块。

步骤 2:在封装子系统中:
添加
isEnabledForDetectability参数,并将参数设置为On。添加
detectBlock参数,其中包含所考虑的模块的名称。将
Evaluate参数的detectBlock属性设置为Off。
步骤 3:定义模块替换规则,用封装子系统替换所考虑的模块。
要编写自定义测试目标,请使用 blkrep_rule_product_customTestObjective.m 模块替换规则示例文件。在模块替换文件中,您可以根据模型模块更新 rule.BlockType 和 rule.ReplacementPath。有关详细信息,请参阅 不受支持的模块的模块替换。
步骤 4:使用模块替换规则配置您的模型。在“配置参数”对话框的 Design Verifier > 模块替换窗格中,输入模块替换规则列表。
步骤 5:为模型覆盖率目标选择 Enhanced MCDC 并进行测试生成分析。
分析增强型 MCDC 模型中的自定义测试目标
此示例显示如何为 sldvCustomTestObjectiveExample 模型中的 Product 模块编写自定义测试目标。此外,它还展示了如何在检测站点检测测试目标的效果。
1.打开 sldvCustomTestObjectiveExample 模型:
open_system('sldvCustomTestObjectiveExample');
原子封装子系统库: blkReplacementlib_customTestObjective 库由 custProduct 封装子系统组成。对自定义测试目标进行编码的逻辑在 MATLAB Function 模块中定义。getCustomTestObjectives MATLAB Function 模块由 Test Objective 模块的两个自定义条件组成。

custProduct 封装子系统已预先配置这些参数。有关详细信息,请参阅 封装编辑器概述。

Block 替换规则,用屏蔽子系统替换所考虑的模块: sldvCustomTestObjectiveExample 模型预先配置了模块替换选项。模块替换规则在 blkrep_rule_product_customTestObjective 文件中定义,用 custProduct 封装子系统替换 Product 模块。

2.要配置模型以实现增强的 MCDC 目标,请在 Design Verifier 选项卡上点击测试生成设置。在“配置参数”对话框的 Design Verifier > 测试生成窗格中,对于模型覆盖率目标,选择 Enhanced MCDC。点击确定。
3.要生成测试用例,请点击生成测试。
该软件分析替换模型以进行测试生成。

4.分析完成后,结果将在模型中突出显示。要分析 Product 模块的可检测性,点击 Product 模块。

结果表明,Product 模块的测试目标是可检测的。测试用例已生成。
注意:对于通过模块替换引入的目标,软件无法通过验证结果来确认目标状态。因此,测试目标状态报告为满足需求仿真。有关验证的更多信息,请参阅 Simulink Design Verifier 如何通过验证结果报告近似值。
5.点击查看测试用例。框架模型和 Signal Editor 模块会打开。点击打开信号编辑器按钮来查看测试用例。
6.要查看详细的分析报告,点击结果摘要中的 HTML。模块替换摘要提供了有关被替换模块的详细信息。

测试目标状态部分列出了目标。表格中总结了在检测地点可检测到的测试目标。
