技术文章和通讯

你应该收集模型测试覆盖度量的原因吗

帕特精明,MathWorks


系统仿真软件的测试金宝app®设计可以确保你有占生成代码之前有意和无意的行为。在基于需求的仿真测试中,您的设计可能不会行使部分地区由于微妙的设计错误,不完整的测试,或失踪的要求。模型测试覆盖率可帮助您识别这些漏洞在测试中通过测量有多少在模拟仿真软件设计的行使。金宝app

不完整的常见原因模型基于需求的测试期间测试覆盖率是失踪的需求。这种类型的缺失模型测试覆盖率通常是设计元素的结果,不能追踪到一个更高层次的要求。收集模型测试覆盖率帮助你解释这种情况。本文描述了一个三层的测试例子选择算法设计发现不完全是由于缺少需求。

三层选择算法:概述和需求

三层信号选择算法通常用于航空航天控制系统软件。在三层信号的选择,选择一个“投票”信号来自三个独立传感器用于飞机的控制。传感器是“有效的”如果没有故障检测传感器。

对于这个示例,飞机空速信号将被选中。速度信号的要求选择算法如下:

  • HLR_1选择空速三重传感器的信号:飞行控制计算机应选择中间值的三个传感器三个速度信号时是有效的。
  • HLR_2选择空速对双传感器信号:飞行控制计算机应选择两个传感器的平均值只有两个速度信号时是有效的。
  • HLR_3选择空速单一传感器的信号:飞行控制计算机应当选择有效信号,当只有一个空速信号是有效的。

图1显示了仿真软件的实现这些需求。金宝app

图1所示。金宝app空速的仿真软件实现信号选择算法。

实现算法和收集模型测试覆盖度量

我们实现每个需求在一个专用的子系统模型和为每一个写一个单独的测试用例。在运行这些测试之前,我们需要确保我们捕获模型测试覆盖度量。

模型测试覆盖度量可以是独立的(为单一收集测试)或累计(聚合多个测试)。我们收集累积覆盖在基于需求的测试来衡量我们的完整的测试套件执行整个设计。

有许多类型的模型测试覆盖度量,如执行范围,决定报道,信号覆盖范围,和关系边界范围。在本例中,我们决定覆盖感兴趣,一种结构覆盖措施执行所有可能的逻辑结果决定的模型。金宝app仿真软件模型对象如开关模块接收完全决定报道如果所有输入开关模拟期间至少有一次被选中。

我们启用模型测试覆盖率收集模型使用分析仪应用的报道应用程序仿真软件将来发布的选项金宝app卡(图2)。

图2。的应用程序在仿真软件将来发布标签金宝app。

一旦我们打开覆盖分析仪的应用,我们可以打开覆盖率收集使用报道开/关按钮报道选项卡。我们也使累计覆盖使用累积收集按钮。然后,我们启用了覆盖使用模拟模型按钮,现在标签分析报道(图3)。我们模拟几次与每个仿真中使用不同的测试向量。

图3。覆盖分析仪应用程序启用了覆盖集合。

图4显示了生成的报道。绿色高亮显示完整的模型测试覆盖,包括所有模型对象在每一个子系统,而红色表示不完全覆盖。

图4。测试的覆盖率结果空速信号选择算法。

决定报道似乎在多端口转换部件丢失。要理解为什么会这样,我们检查各个模块的模型测试覆盖率的细节通过打开的报道详细讯息面板模型(图5)。金宝app

图5。打开模型报道细节窗格。金宝app

我们然后单击MultiportSwitch块看到报道细节(图6)。

图6。报道详细讯息面板多端口转换部件。

第一个多端口的输入开关模拟期间从未0。回忆的模型如图1所示,第一个多端口的输入开关是有效信号的数量。因此,我们没有测试的情况下,没有一个空速信号是有效的。

这个缺失的模型测试覆盖率是由于缺少高层次的需求。没有指定要求的信号没有空速时应选择信号是有效的。然而,设计包括逻辑似乎已经考虑到这种情况。

我们添加这个失踪的要求:

  • HLR_4选择空速的信号没有有效的传感器:飞行控制计算机就选定的速度信号三个速度信号时是有效的。

然后,我们添加一个新的测试用例并重新运行测试。我们现在完成决定报道(图7)。

图7。覆盖率结果之后添加一个新的需求。

这个例子显示,模型测试覆盖率是一个可靠的方法来确定失踪在基于需求的测试需求。您可以使用模型测试覆盖率结果以确保正确的部分你的设计被行使。

另一个不完整的模型测试覆盖率的常见原因死的逻辑。死逻辑仿真软件模型的任何部分或Stateflow金宝app®图表,永远不可能在模拟执行,如一个开关的输入块无法选中,或过渡状态机,永远不可能。一个最佳实践是使用仿真软件设计校验™模型来分析和解决金宝app死之前逻辑编写和执行基于需求的测试。还可以使用仿真软件中的模型切片机特性检查™完善和调试死去的逻辑。金宝app

2019年出版的

查看相关文章的能力

为相关行业观点文章