帕特精明,MathWorks
从R2020a开始,您可以使用Simulink coverage™将覆盖率结果确定为链接的基于需求的测试。万博1manbetx此设置界定聚合的覆盖率结果,这样每个测试只对实现由该测试验证的需求的相应模型元素贡献覆盖率。这提高了模型元素被预期的测试用例覆盖的信心。本视频将向您展示如何使用这个新设置。
在执行基于需求的测试时,您可以使用Simulink coverage测量模型的测试覆盖率,以确定您的设计在模拟期间测试了多少。万博1manbetx
为简单起见,我们姑且称之为设计元素,并链接到同一个要求的测试案例“兄弟姐妹”。
型号覆盖结果应该相对于需求进行分析。如果什么是一些设计元素永远不会被同级测试中实行?这可能是不完整的测试,不正确的可追溯性,或缺少需求的迹象。
使用MAT万博1manbetxLAB Release 2020a中的Simulink Coverage,您可以聚焦覆盖率结果,只显示由同级测试接收到的覆盖率。我们称之为需求覆盖的“范围”。
让我们通过一个示例来演示。
本模型设计的部分是一个简单的巡航控制。该模型计算了发动机控制器的油门需求以及目标速度。该模型使用几个布尔输入,从方向盘巡航控制开关,布尔制动输入,和车辆的速度。
我们有这样的设计被利用Simulink需求管理的若干要求。万博1manbetx
我们还有6个测试用例与使用Simulink test管理的需求相关联。万博1manbetx
让我们在Simulink test中运行测试套件。万博1manbetx
让我们看看结果。
我们的所有六个测试都通过了,并且我们已经实现了决策、条件和执行的100%覆盖率。这是伟大的!好了吗?
不完全。
让我们确保我们从测试的情况下实现的覆盖率与兄弟要求相关。
我们可以通过点击“范围覆盖结果链接的需求”,在测试管理做到这一点。
万博1manbetxSimulink Coverage使用需求、设计和测试用例之间的可追溯性数据来相应地过滤覆盖率。
看起来我们已经失去了一些报道!让我们打开模型,以了解更多信息。
缺少覆盖的模型元素以红色突出显示。
看起来用于递增和递减逻辑的常量和和块缺少覆盖。让我们点击其中一个求和块来了解更多信息。
该块缺少执行覆盖。这是因为这个块没有实现链接。我们可以通过打开需求透视图来确认这一点。
这两个区块应与增量要求。我们可以通过在浏览器的要求选择增量要求,然后右键单击块,添加链接做到这一点。一旦我们保存模型,让我们回到测试管理器并重新运行测试套件,看看如何改善我们的覆盖面。
这很容易!
现在让我们看看PI控制器,它现在似乎只有83%的决策覆盖率。
看起来PI控制器子系统可以追溯到一个需求和一个标记为T6的测试用例。
离散时间积分块有一个决策目标丢失。
积分结果是从来没有等于或高于上限,这意味着我们从未测试的全部范围的积分器输出的。
但等待 - 它看起来像测试用例T4达到上限。让我们在T4点击了解更多信息。
测试用例T4是增量测试,它链接到增量需求。
我们可以解决这个矛盾几种不同的方式:
1)我们可以通过增量的测试用例连接到油门要求。这并不让在这种情况下意义上说,作为递增测试用例的预期结果什么都没有做的油门要求。
2)我们可以创建一个需求来定义当达到积分器极限时的预期行为。这可能是一个太多的设计细节。
3)最后,我们可以修改油门测试输入,以更积极地执行控制器。在这种情况下,我们可以通过简单地扩展现有的Throttle测试用例并在测试结束时增加设置的速度来实现这一点。这是最好的选择,因为预期的结果不应该改变;我们仍然在验证节流需求定义的行为。
当我们重新运行节气门测试时,测试失败了,因为节气门变化率超过了要求。这是由于设计上的缺陷。
这个例子说明了如何使用范围限定在需求覆盖结果显示不完整的需求可追溯性和一个不完整的测试用例。
点击以下链接自己运行这个例子,或访问mathworks.com Simulink的覆盖产品页面申请试用。万博1manbetx
你的意思是“与需求相关的测试用例”吗?
我对如何思考缺失的cov的框架有点不同,所以让我们见面时仔细研究这部分。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。