技术文章和通讯

验证高度集成系统的模型和代码

比尔·波特,MathWorks


软件测试是一种最苛刻且耗时方面开发复杂的系统,因为它涉及到确保所有要求行使所有软件的测试和测试。使用一个传感器投票算法在直升机飞行控制系统作为一个例子,本文介绍了一种简化基于仿真软件验证工作流万博1manbetx®和支持验万博1manbetx证工具。涵盖的主题包括从需求创建测试用例复用的测试用例模型和代码,为缺失的模型生成测试用例覆盖率,实现完整的结构在可执行的目标代码覆盖率。

直升机控制系统需求和设计

任何复杂系统的发展始于需求。通常提供一个文本文档或使用需求管理工具,他们成为系统设计和验证的基础。需求通常也有一些类型的标签信息,以便跟踪和链接的需求。

在直升机控制系统的例子中,我们将使用需求相关的投票态度/航向参考系统(AHRS)。这些是五感兴趣的需求:

HLR_9 AHRS有效性检查

使用数据从一个明显之前,飞行控制软件应当验证AHRS数据是有效的。

HLR_10 AHRS输入信号处理

飞行控制计算机硬件流程三个明显的数字总线输入。

明显的特征输入的三个传感器的软件在以下表中定义。

信号
输入信号
输入范围
明显有效
N /一个

1 =有效

0 =无效

俯仰姿态
了= +
+ / - 90度
卷的态度
正确的= +
+ / - 180度
距身体率
了= +
+ / - 60度/秒
身体偏航率
正确的= +
+ / - 60度/秒

HLR_11明显支持三重传感器

当三个明显有效,飞行控制计算机应使用中间值为每个个人的三个传感器的参数明显。

HLR_12明显支持双传感器

当只有两个明显是有效的,飞行控制计算机应使用两个传感器的平均值为每个个人的明显的参数。

HLR_13 AHRS使用单一传感器

当只有一个明显有效,飞行控制计算机使用明显的各个参数。

我们创建一个仿真软件模型万博1manbetx来实现这些需求(图1)。

图1所示。万博1manbetx仿真软件的AHRS投票模型算法。

图1所示。万博1manbetxAHRS投票算法的仿真软件模型。

通过仿真,验证

验证设计对软件需求我们使用仿真软件测试中的测试经理™连接模拟测试的测试用例中创建模型(图2)。万博1manbetx

图2。测试管理员界面。

图2。测试管理员界面。

我们实现三个测试用例的AHRS投票算法,每个投票要求。如图3所示,用于测试的三个有效的传感器,HLR 11痕迹明显支持三重传感器需求文档中。图3显示了相应的测试工具,测试序列块驱动组件测试下。

图3。测试工具测试传感器。

图3。测试工具测试传感器。

利用包含的测试序列块我们创建了基于需求的测试。我们可以使用它来定义测试步骤和测试输入数据模型,以及预期的结果数据的测试。有一个验证函数的测试序列语言评估通过或失败对于每个测试步骤(图4)。

图4。测试序列块。

图4。测试序列块。

其他测试用例测试经理有额外的测试和测试序列块各自的需求。我们运行的模拟测试经理;万博1manbetx仿真软件测试自动生成一个报告的结果。在模拟,模型覆盖率是衡量模型覆盖™来确定如何彻底模型在模拟覆盖。万博1manbetx生成的报告的总结部分的三个测试用例,包括模型的一个总结评估,如图5所示。

图5。测试报告总结的结果。

图5。测试报告总结的结果。

报告显示,这三个测试用例通过,但是模型覆盖是不完整的。在模型中所有的块被处决时,只有97%的决策模型中。详细的模型覆盖报告表明,第一个失踪的决定是多端口开关组;0的输入条件从未测试(图6)。

图6。多端口转换部件缺失的报道。

图6。多端口转换部件缺失的报道。

第二个失踪的决定存在一个极大极小块中值投票子系统(图7)。

图7。极大极小块失踪的报道。

图7。极大极小块失踪的报道。

这些失踪的决策需要解决,因为他们将导致丢失代码覆盖当我们测试软件。安全标准等做- 178 c和ISO 26262要求完整的代码覆盖率测试期间。

补充模拟情况下

为失踪的报道我们可以自动生成测试用例覆盖率数据导入到模型设计校验™,它忽略了模型覆盖目标满足前面的模拟(图8)。万博1manbetx

图8。万博1manbetx仿真软件设计校验测试生成选项。

图8。万博1manbetx仿真软件设计校验测试生成选项。

我们建立了仿真软件设万博1manbetx计验证器出口到仿真软件生成的测试用例与测试工具测试文件,使用设置如图9所示。

图9。万博1manbetx仿真软件设计校验结果的选择。

图9。万博1manbetx仿真软件设计校验结果的选择。

一旦我们执行测试用例,并将它们导出,产生一个测试生成报告,描述了模型生成的测试用例和目标。图10显示了一个部分的报告表明多端口切换输入0和极大极小元素3输入2是最大的。

图10。测试生成报告。

图10。测试生成报告。

我们现在应该拥有所需的所有测试用例全面测试软件。

测试软件和测量代码覆盖率

我们从AHRS_voter模型生成代码使用嵌入式编码器®编译成可执行目标编译器使用。现在我们已经准备好测试编译软件和测量代码覆盖率。我们做这两个步骤,首先通过重复仿真情况下需求文档,其次通过运行仿真软件的自动生成的测试用例设计验证器生成和编译软件。万博1manbetx这种方法使我们能够检测到任何错误注入由编译器或目标硬件。

我们建立了一个软件测试环境使用processor-in-the-loop(公益诉讼)能力提供嵌入式编码器。一个API在嵌入式编码允许主机上运行仿真软件下载软件到外部硬件开万博1manbetx发板和与软件来执行它。API可以设置直接与董事会沟通或沟通通过一个集成开发环境(IDE),连接到董事会。最佳实践是使用相同的CPU使用的零件号在董事会最终目标硬件和使用相同的编译器和优化设置为最终目标硬件上。

嵌入式程序员API提供了主机的接口代码,允许模型输入数据发送到一个模型参考块到块董事会运行软件,然后阅读软件的输出在每个时间步的块的输出。万博1manbetx实际上,仿真软件模拟函万博1manbetx数的调用代码。此功能可用于单个模型参考块或参考块的层次结构模型。公益诉讼中运行的代码可以检测代码覆盖使用仿真软件覆盖或LDRA或VectorCAST等第三方工具万博1manbetx®。对代码进行分析,也可以测量完成执行时间逐帧。

现在我们可以重新运行仿真测试,只需切换模型的模式下测试在测试经理公益诉讼(图11)。

图11。Processor-in-the-loop选择。

图11。Processor-in-the-loop选择。

测试是在软件运行时,我们得到的测试结果很像仿真结果报告之前,我们跑。图12显示了软件的测试结果。

图12。软件测试结果。

图12。软件测试结果。

虽然这三个软件测试用例通过,就像模拟情况下,软件的覆盖率结果略有不同。决策和执行覆盖不如为模型,为软件和代码覆盖率表明条件和关系边界范围,而没有在模型中。这些结果并不是由于不同的功能,但是代码和模型之间的语义差异。

代码覆盖率报告澄清一些相似点和不同点。软件实现模型的多端口开关切换实例语句,我们可以看到这种情况下0,相对应的开关输入0,不是测试代码。这预计,因为模型模拟不包括开关控制输入设置为0,但这个测试用例还包括一行代码不执行,导致不到100%声明,或执行,覆盖。这个失踪的报道中突出显示的代码覆盖率报告如图13所示。

图13。失踪的代码覆盖率。

图13。失踪的代码覆盖率。

另一个区别涉及MinMax3块。这3块不见了覆盖元素模型,但没有迹象表明代码覆盖率缺失。原来的代码块完全覆盖,因为代码实现向量操作在一个for循环(图14)。

图14。MinMax3完整的代码覆盖率。

图14。MinMax3完整的代码覆盖率。

在这种情况下,测试用例覆盖模型的标准更严格的比覆盖的代码。

完成软件测试中,我们运行仿真软件验证器生成的测试用例设计和测量覆盖。万博1manbetx万博1manbetx仿真软件设计验证器生成的两个测试用例,以及预期结果,并自动导出仿真软件测试,这样他们可以使用公益诉讼模式运行。图15显示了测试迭代的测试经理。

图15。万博1manbetx匹配仿真软件设计测试用例。

图15。万博1manbetx匹配仿真软件设计测试用例。

我们选择一个绝对宽容1 e -和一个相对宽容的0.1%比较仿真软件模型输出与软件输出。万博1manbetx这些值是由用户选择。

运行这些测试用例测试报告和代码覆盖率结果包含代码覆盖率总结报告(图16)。

图16。万博1manbetx仿真软件设计验证器测试结果报告。

图16。万博1manbetx仿真软件设计验证器测试结果报告。

两个测试用例通过,正如所料,这两个测试用例的代码覆盖率结果相对较低是由于他们的目标达到覆盖率只有多端口切换输入0和极大极小元素最大3输入2。得到的代码覆盖整个测试套件,这两个情况下+ 3例运行之前,我们必须合并覆盖率数据从两个不同的测试运行。

两种类型的覆盖率数据合并时,我们得到的一份报告表明软件的实现结构全覆盖(图17)。

图17。累积代码覆盖率报告。

图17。累积代码覆盖率报告。

测试1是基于需求的测试之前运行的代码。测试2的仿真软件设计校验测试运万博1manbetx行代码。摘要结果表明总报道通过运行两组测试。

总结

我们已经看到如何从需求到设计到代码使用仿真软件模型。万博1manbetx验证活动的过程中,许多自动化,减少人工工作量。结果是一个软件系统,该系统已被完全验证需求,它有完整的代码覆盖率。

这个例子只涉及一小部分的一个真正的系统。相同的过程可以扩展到包括一个完整的系统,如完整的直升机飞行控制系统或固定翼飞机的自动驾驶系统。

2017 - 93162 v00出版