帕特凯西,马诺斯
从R2020A开始,您可以使用Simulink Coverage™将覆盖结果扩展到链接基于需求的测试。金宝app此设置示出了聚合的覆盖结果,使得每个测试仅为实现该测试验证的需求的相应模型元素表示覆盖范围。这提高了模型元素被预期的测试用例所涵盖的信心。此视频将向您展示如何使用此新设置。
在执行基于要求的测试时,您可以使用Simulink覆盖率测量模型的测试覆盖范围,以确定在模拟期间测试的设计量。金宝app
为简单的缘故,让我们呼叫设计元素和测试用例,这些元素和测试案例链接到相同的要求“兄弟姐妹”。
模型覆盖结果应该根据需求进行分析。如果某些设计元素从来没有被同级测试执行过怎么办?这可能是不完整的测试、不正确的可追溯性或缺少需求的标志。
通过Mat金宝applab版本2020A中的Simulink覆盖范围,您可以将覆盖结果集中在覆盖结果中仅显示兄弟姐妹测试收到的覆盖范围。我们称之为“范围”的覆盖范围。
让我们通过一个示例进行演示。
这个模型是设计为一个简单的巡航控制的一部分。该模型计算发动机控制器的节气门需求以及目标速度。该模型使用了方向盘巡航控制开关的几个布尔输入,一个布尔制动输入,以及车辆的速度。
我们对这个设计有几个要求,使用Simulink需求管理。金宝app
我们还有六个测试用例与使用Simulink测试管理的要求相关联。金宝app
让我们在Simulink测试中运行测试套件。金宝app
让我们来看看结果。
我们的所有测试都通过了,我们已经实现了100%的决定,条件和执行的覆盖范围。这很棒!我们现在做了吗?
不完全的。
让我们确保从测试用例中实现的覆盖范围与兄弟要求相关联。
我们可以通过单击测试管理器中的“范围覆盖结果以链接要求”来执行此操作。
金宝appSimulink覆盖使用需求、设计和测试用例之间的可跟踪数据来过滤相应的覆盖。
看来我们失去了一些保险!让我们打开模型来了解更多。
具有缺失覆盖范围的模型元素以红色突出显示。
它看起来是增量和递减逻辑的常量和总和块缺少覆盖范围。让我们点击其中一个块以了解更多信息。
该块缺少执行覆盖率。这是因为这个块没有实现链接。我们可以通过打开需求透视图来确认这一点。
这两个块应与增量要求链接。我们可以通过选择需求浏览器中的增量要求,然后右键单击块并添加链接来执行此操作。保存模型后,让我们返回测试管理器并重新运行测试套件,以了解如何提高覆盖范围。
那很简单!
现在让我们来看看PI控制器,它现在似乎只有83%的决策覆盖率。
看起来PI控制器子系统可以追溯到一个需求和一个标记为T6的测试用例。
离散时间积分器块缺少一个决策目标。
集成结果永远不会等于或高于上限,这意味着我们从未测试过集积分输出的全系列。
但是等等——看起来T4测试用例已经达到了上限。让我们点击T4来了解更多。
测试用例T4是增量测试,与增量要求相关联。
我们可以解决一些不同的方式解决这些差异:
1)我们可以将增量测试用例链接到节气门要求。在这种情况下,这在这种情况下没有意义,因为增量测试用例的预期结果与油门要求无关。
2)我们可以创建一个确定达到积分器限制时的预期行为的要求。这可能是一个太多的设计细节。
3)最后,我们可以修改油门测试输入,以更积极地锻炼控制器。在这种情况下,我们可以通过简单地扩展现有的节气门测试案例并在测试结束时递增集合速度来执行此操作。这是最好的选择,因为预期的结果不应改变;我们仍在验证节气门要求定义的行为。
当我们重新运行节气门测试时,测试失败了,因为节气门的变化率超过了需求。这是由于设计上的缺陷造成的。
此示例显示了如何使用覆盖结果范围,以揭示不完整的需求可追溯性和不完整的测试用例。
单击下面的链接自己运行这个示例,或者访问mathworks.com上的Simulink Coverage产品页面请求试用。金宝app
您的意思是“与需求相关联的测试用例”吗?
我对如何看待失踪cov的框架有点不同,所以我们见面时再深入讨论这部分。
您也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。