基于需求的Simulink测试验证万博1manbetx
概述
基于模型的设计从非正式的文本需求开始,其中可能包括复杂的依赖于时间的信号逻辑,在测试期间难以形式化。本次网络研讨会将解释如何使用Simulink Test以自然语言格式编写具有万博1manbetx精确语义的时间评估。这些评估准确地模拟了复杂的时间依赖行为,包括条件、事件、信号值和延迟。我们将演示基于需求的测试的完整工作流,包括创建、管理和执行测试。
突出了
学习如何:
- 使用基于模型的设计自动化需求
- 将非正式的文本需求转换为具有清晰、定义的语义的明确评估
- 跟踪设计和测试的需求
- 监测内部信号,而不干扰设计或生成的代码与新的观察者块
主讲人简介
Paul Urban是MathWorks的高级产品营销经理,负责验证和验证工具,特别是Requirements Toolbox, Simulink Test和Simulink Check。万博1manbetx他的经验包括将基于模型的设计应用于系统工程、嵌入式软件开发和测试。在2016年加入MathWorks之前,Paul曾在IBM Watson IoT、Telelogic和I-Logix担任产品营销、业务开发、咨询和开发等职务,在那里他与Rhapsody一起致力于基于UML/SysML的解决方案。万博 尤文图斯
记录日期:2019年8月13日
你有多少次把你的设计交付给你的客户,却发现它不是客户所期望的?由于对需求的误解而导致项目失败的行业例子有很多。最初的需求主要是使用容易被误解、不完整或不一致的非正式文本指定的。我的名字是Paul Urban,我在the Math的模型验证和验证产品组工作,在那里我管理Simulink需求、Simulink测试和Simulink检查产品。s manbetx 845万博1manbetx
今天,我将向您展示允许您更早地验证和验证需求的新功能。使用临时评估,您可以将文本需求转换为可以执行的明确的评估。解决方案形成了一个数字线程,将需求与模型中的实现以及验证需求的测试联系起来。您可以从一个汽车客户的引用中看到,基于模型的设计如何帮助更快地分析需求,并缩短满足客户需求的设计交付时间。
在软件基础上包含更多功能和产品的需求不断增长。s manbetx 845这增加了规模和复杂性,并给开发和测试过程带来了额外的压力。在传统的开发过程中,当您从左到右移动时,需求被细化为规范,最终在代码中手动实现。错误是在开发的不同阶段引入的,但研究表明,大多数缺陷是在初始设计时引入的。这些错误贯穿于设计阶段,测试会发现许多错误,但直到过程后期需要返工和进一步测试时才会发现。但最终一些潜在的错误可能仍然存在于软件中,可能只能在现场检测到。这些错误可能会导致安全问题或昂贵的产品召回,这是更大的漏洞需要解决。
此外,研究还表明,发现漏洞的成本会随着时间的推移而增加。例如,在桌面PC上编码时发现软件错误比在现场生产硬件上发现该错误要便宜得多。测试的成本增加了——后来在开发周期中发现了缺陷。我们需要尽早确定是否所有的需求都得到了实现,我是否正确地理解了需求,设计是否能够正确地满足需求?而且,我们还希望能够在不修改设计的情况下测试它。在Simu万博1manbetxlink中,图形化模型用具有精确含义的可执行模型取代了模糊的设计。
它允许您在硬件可用之前更早地在桌面上验证您的设计,这样错误更便宜,更容易识别。万博1manbetxSimulink为工程师提供了一套很好的语言来描述复杂的系统。从物理领域——比如传动系统和电机。到软件领域,比如框图和状态机。这些表示可以让你抽象出不必要的细节,专注于最重要的东西。
非正式的或特别的模拟测试可以通过构建系统的虚拟表示来完成,您可以在桌面上与它进行交互。这是早期了解系统、在构建硬件之前评估设计备选方案的好方法。精炼模型后,Simulink设计可以通过共同生成自动转换为生万博1manbetx产代码。
有了这个完整的基于模型的设计过程,当您将设计模型细化到目标硬件时,可以消除代价高昂、容易出错的手动步骤。模拟是早期验证行为的好方法,但它主要是一个手动过程,而且很大程度上是临时的。为了确定是否所有的需求都得到满足并正常运行,我们需要采用更严格的基于需求的测试方法,根据需求系统地测试我们的模型。在这里,the MathWorks验证和验证工作流有助于自动化测试模型的手动步骤,并建立可重复的验证工作流。现在,我将逐步完成工作流,以执行需求的验证。
通常需求开始于非正式的想法。它们可能来自Word、Excel甚至更结构化的环境,比如门。工程师需要将这些非正式的想法解释为基于模型的设计,然后验证设计是否满足这些要求。当数据在不同的工具中查看和管理时,要正确处理数据是非常具有挑战性的。很难建立需求与设计和测试之间的可追溯性。
为了直接在Simulink中使用来自其他工具的需求,有一个通过Simulink导入Word、Excel、Doo万博1manbetxrs需求的操作。并且还支持标准需求万博1manbetx交换格式——ReqIF。大多数需求管理工具万博1manbetx都支持ReqIF。如果需求在源头发生了变化,然后执行了同步变化的更新操作,Simulink用户可能想要编辑需求或添加更多的细节——比如自定义需求属性。万博1manbetx
默认情况下,外部需求是只读的,但是在最近的19A版本中,解锁需求的能力允许更新需求中的字段。此外,为了导入需求——您也可以直接在Simulink中创建需求,其中Simulink是一个源。万博1manbetx将Simulink编写的需求包万博1manbetx含在整个项目中,并使用19A中介绍的ReqIF进行导出操作。
将导入、更新和导出操作与ReqIF相结合,可以实现与外部需求工具的双向工作流,这些外部需求工具也支持标准。万博1manbetx在Simulink中,有两个主要视图可用于处理需求。万博1manbetx编辑器和透视图。编辑器允许您查看和编辑项目中的所有需求集。透视图提供了需求和设计的视图,允许您在一个视图中使用两者。
下面是需求透视图的详细介绍——Canvas右侧的控件可以打开和关闭透视图。画布上的徽章显示链接存在的位置,您可以选择显示描述。浏览器将显示需求的列表摘要。它包括实现和验证状态,以显示设计和测试的完整性。Property Inspector包含需求的所有细节,比如描述、自定义属性,它还包括需求的链接。
通过将需求包含在Simulink环境中,它允许您在设计环境中使用它们来快速万博1manbetx创建可追溯性链接。模拟提供了一种很好的方法来尽早发现设计错误,但是需要一种更严格和自动化的测试方法来增加对设计的信心。万博1manbetxSimulink测试为您提供了一个系统的方法来测试您的模型。
首先,您可以使用test Harness隔离测试下的组件——允许在不破坏模型的情况下编写测试。可以创建测试用例来验证基于基线的设计或建模代码之间的等价性。您可以使用许多格式来定义输入,例如——MAT文件、Excel、信号字母或文本序列。为了评估结果,您可以与中的基线输出进行比较
MAT或Excel文件。使用MATLAB单元测试编写自定义标准。并使用测试评估博客来定义在线通过和失败的条件。您可以链接到测试工件或需求,以完成需求设计和测试之间的可追溯性。
对链接的分析显示了需求层次结构的实现和验证是如何完成的。彩色条表示存在完整需求覆盖的位置。缺口确定了哪些地方缺少实现或测试,哪些地方需要进一步的工作。我将介绍一个使用热泵的工作流程的例子。它从外部工具中的热泵控制器的一些纹理要求开始。激活热泵的要求包括时序逻辑。当温度大于2度时,泵应激活超过2秒,然后保持激活一段时间。
基于这些要求,控制器需要两个输入——一个用于温度,另一个用于室温。它将输出三个命令来控制总线上的泵。一个打开风扇,另一个打开泵,第三个指定需要加热还是冷却。控制器打开风扇并激活泵进行加热或冷却的行为是使用状态流程图实现的。
为了确保所有的需求都在模型中实现,它们被导入到Simulink需求中。万博1manbetx在透视图中,我可以看到主动热泵的实施状态呈现出差距,它没有任何环节。要创建到模型的链接,我所需要做的就是拖放。我可以显示一个需求注释来查看模型中需求的详细信息。
注意,链接被创建,实现状态被更新以显示其实现。添加链接或注释不会弄脏模型。使用单独的文件来维护这些工件。现在,我将转向需求的验证。控制器包含在一个可以模拟其运行的加热器和房屋热特性的植物模型中。我只想测试控制器,而不破坏模型的其余部分。我将通过创建一个Test Harness来做到这一点。
我选择命令来创建Test Harness,然后您可以为该Harness提供许多操作。特别是,您可以选择不同类型的源和不同的同步。我们选择一个测试序列来驱动控制器的输入,这就创建了一个新的测试集模型,它只包含控制器和一个测试序列块。如果有任何更改,测试中的组件将与主模型保持同步。
测试序列块允许您生成测试输入,并将评估定义为一系列步骤。您可以将其视为Stateflow的简化版本。它允许您描述复杂的时间测试序列。对于为控制器创建的Test Harness,使用斜坡函数的一系列步骤随着时间的推移改变室温的范围,以进入控制器的所有模式。
第一步初始化控制器,然后外部步骤的代码降低室温使控制器处于加热模式。外面的热步骤测试控制器如何冷却房间。最后,控制器回到空闲状态。测试序列提供了一种创建复杂的测试步骤序列来驱动测试输入的方法。
让我们来看看激活热泵的这个要求。这是一个简单的概念——当某个条件为真,那么另一个条件一定在一段时间内为真。但正式评估——捕捉到的时间条件可能很难。让我们看看如何使用新的时间评估编辑器来改变这个需求。在测试管理器中,我使用热泵模型的test Harness打开一个测试用例,并添加评估。我使用预定义的模式构建评估。该需求指定了一个触发器响应模式。我为评估命名——然后我需要为触发条件选择一个模式。
在我的例子中,我希望在温差高于某个阈值超过两秒时触发测试。我输入一个与触发条件相对应的表达式,并指定条件必须为真的最短时间。请注意,所有符号最初都被标记为未解析,并自动添加到符号表中。它们被映射到模型中的信号或表达式。然后,选择一个与必须评估响应条件的时间相对应的时间参考。最后选取响应条件的模式,填充条件和最小时间。
我可以将评估分解,以看到可读且精确的需求描述。我可以创建到正在测试的需求的链接。而且,为了查看需求,我可以使用链接直接导航到它。注意,创建了一个经过验证的链接,状态显示为黄色,表示测试还没有运行。因此,我们将评估符号映射到模型,现在就可以运行测试用例了。我们可以运行直接从需求链接的测试。
测试运行,状态自动更新,显示测试失败。有一个链接可以直接导航到测试结果。评估结果显示了预期的行为和评估失败的实际结果。文本解释告诉我们,泵应该在13秒启动。表达式树解释了关于失败的更多细节,并允许我调试它。我们可以使用数据游标来查看泵直到后来才启动,这是不正确的。
为了调试错误,我们可以使用链接导航到模型中的实现。在检查转换逻辑之后,我们可以很快发现条件使用了错误的阈值。我在模型中纠正了这一点,现在我可以从模型导航回测试,然后重新运行测试。测试通过了,现在——导航回需求编辑器,我可以看到验证结果自动更新为绿色表示通过。
为了总结我们所看到的——使用临时评估编辑器,我们能够使用基于表单的编辑器将文本需求转换为正式的评估。评估可以用一个可读的英文句子来查看。评估结果窗口允许我检查和调试结果。然后,测试结果可以追溯到需求和设计。要查看整体状态并识别差距,您可以显示实现和验证状态,以衡量设计和测试的整体完整性。
在实现状态中,蓝色表示有链路存在。浅蓝色表示有一个理由,闪烁表示缺少一个链接。对于验证状态,绿色表示测试通过,红色表示失败,黄色表示没有结果。眨眼表示缺少测试的链接。测试工具是隔离被测组件的一种方法,但是为了验证设计,您可能需要访问模型层次结构深处的一些信号。但是您不希望仅仅为了测试目的而修改设计或其界面。
新的观察者组允许您监视模型的信号,同时保留设计的动态响应和接口。您可以将验证逻辑从设计中分离出来,并在不修改接口的情况下访问任何层次的任何信号,也不会影响系统的动态响应。它有助于避免用仅用于测试的额外信号使模型变得混乱。您可以获取验证逻辑,并将其定位到与您的被测模型共同模拟的单独模型中。
测试可重复用于SIL、PIL或HIL的等效测试。SIL (Software In the Loop测试)指的是重用模型中的测试以在桌面PC上执行生成的代码,然后将结果与仿真结果进行比较。您还可以测量代码覆盖率,以查看生成的代码是否经过了完整的测试。PIL或Processor In the Loop测试指的是交叉编译
为目标处理器生成代码。在目标处理器上执行该代码,然后比较来自目标的结果和模拟结果。还有第三种循环测试,称为HIL或硬件在循环中。在这种情况下,测试使用Simulink real time和Speedgoat检查设计和代码的实时行为。万博1manbetx
我们有许多客户使用VNV工作流。举个例子,埃利斯汽车是韩国最大的汽车开关和零部件一级供应商之一。他们需要满足oem对更快交付更多功能和符合ISO 262标准的生产系统日益增长的需求。Ellis Automotive与The MathWorks咨询公司合作,采用基于MATLAB和Simulink的模型设计,以减少他们的后视镜和动力窗控件的开发时间。万博1manbetx
他们通过模拟和Simulink发现了客户的规格错误万博1manbetx。但幸运的是,这些问题相对容易解决,因为它们在开发的早期就被发现了。他们能够消除手工编码错误并减少开发时间。要了解更多关于埃利斯汽车和其他客户的信息,请访问我们的网站。
总之,基于模型的设计使您能够点击Play按钮来更早地验证和验证设计,并在硬件可用之前捕获错误。新的测试评估语言使您能够用精确的语义将非正式的文本需求转换为明确的评估。它们可以被视为自然语言句子,以便更好地理解。
有了这个解决方案,我们能够从需求到设计,再到测试——允许我们很容易地确定需求是在哪里实现的,以及它是如何被测试的。这也使我们能够确定,如果我们的需求发生变化,什么将受到影响。要了解有关MathWorks验证和验证工作流的更多信息,请查看今天讨论的产品的产品页面或www.tianjin-qmedu.com上的解决方案页面s manbetx 845
相关产品s manbetx 845
了解更多
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。