主要内容

基于需求测试的测试覆盖范围

此示例显示了如何为实现需求的模型收集测试覆盖范围。覆盖范围是指通过分析行使多少模型逻辑来确定测试完整性。对于基于需求的测试,可以将覆盖范围结果范围划定到链接的要求。通过此范围,您可以评估预期测试案例是否涵盖了每个模型元素。

该示例显示了范围范围覆盖的结果如何揭示要求不足的链接和测试差距。它还显示了如何增加覆盖范围。

此示例中的模型是CruiseControlrBtCoveXample,代表巡航控制系统。该模型实现并与要求相关。该示例已经创建了一个测试文件。

打开巡航控制模型

CruiseControlrBtCoveXample

查看链接要求

此巡航控制系统的要求已在需求编辑中捕获。要查看要求,请使用slreq.open('cruisecontrolrbtcovreqs.slreqx')

打开测试管理器和测试文件

采用sltestmgr打开测试管理器。

点击打开并选择cruisecontrolrbtcovtests.mldatx。已经编写了测试以验证模型行为是否满足指定要求。他们还设置了记录决策和条件覆盖范围。扩展覆盖范围设置以查看选定的指标。

每个测试用例验证并链接到要求。例如,节气门测试验证节气门需求。此要求指定如果速度与目标不同,则油门会平稳地应用。该测试使用逻辑评估验证了这种行为,该评估检查节气门的变化速率是否在每秒-1和1弧度之间,如需求描述中所定义。

运行测试和查看覆盖结果

运行测试。

在测试完成时,单击结果中的结果,并在窗格中进行工件。请注意,测试通过并报告了100%的汇总覆盖范围。

打开对测试结果的范围链接要求

在结果和伪影窗格中单击顶级结果。然后,在汇总的覆盖范围结果窗格中,单击链接要求的范围覆盖率结果复选框。范围范围意味着每个测试仅为实施该测试验证的相应模型元素提供覆盖范围。范围检查模型元素被预期的测试用例涵盖。自动更新的覆盖范围结果现在分别显示为92%和76%的决策和执行范围。

查看模型中的覆盖范围结果

单击“分析模型”列中的模型名称,以突出显示模型中的覆盖范围,并显示覆盖范围报告的详细信息。

在模型中,如果在模型下方未显示需求表,请单击模型画布右下角的透视视图,然后单击要求。

打开控制器子系统。没有100%覆盖的块出现在红色中。两组恒定和总块没有链接到要求,也从未执行。

链接块与要求

在这种情况下,缺少的覆盖范围表示链接不足的要求。这些常数和总块对于实施增量和减少要求是必要的,应与适当的要求链接。

在需求窗格的表中,扩展CruiseControlrBtCovReqs。右键单击上部常数块,然后选择需求>链接到需求中的选择浏览器。然后,单击需求表中的增量要求。重复上部总和块。

对于较低的常数和总块,请重复链接步骤,但链接到减少要求。

增加特定测试的覆盖范围

打开PI控制器,然后单击离散时间集成器块。覆盖范围的详细信息表明真的上限的决定是通过增量测试(T4)而不是节气门测试(T6)执行的。由于该块是油门需求实施的一部分,因此应该通过油门测试对其进行测试,该测试验证了油门需求。增量测试未验证此要求,并且在范围的范围覆盖范围链接要求设置已启用。

为了解决此块缺少的覆盖范围,需要更新节气门测试以更多地行使离散的集成器块。

在测试管理器的测试浏览器窗格中,选择节气门测试。在输入下,选择td_throttle_updated.mat作为外部输入文件。此更新的输入节气门数据文件还有一些额外的测试数据,在保持实际速度的同时,可以更积极地提高目标速度。

选择CruiseControlrBtCovTests在测试浏览器窗格中并重新运行测试。点击链接要求的范围覆盖率结果复选框。覆盖范围结果显示100%的覆盖范围,这表明测试充分执行了模型。

修订的测试揭示了设计中的一个问题

修订后的油门测试现在未能进行验证。发生故障是因为节气门增加了,并且超出了测试中指定的所需边界。这表示模型设计的问题。PI控制器块实现将需要更新以在所需限制内应用油门,包括目标和实际速度何时差异很大。

结论

总而言之,范围范围的范围结果可以帮助揭示测试中的差距。范围通过验证相应要求的测试来评估每个模型元素都可以通过评估每个模型元素来实现这一目标。

相关话题