基于需求的验证与仿真软件测试
概述
基于模型的设计开始于非正式文本需求可能包括复杂的套牢信号逻辑难以形式化的测试期间。这次研讨会的作者解释如何使用仿真软件测试时间评估与精确的语义自然语言格式。这些评估准确模型复杂的套牢行为条件下,事件,信号值,和延迟。我们将演示的完整工作流程与创作基于需求的测试,管理和执行测试。
突出了
学习如何:
- 基于自动化需求与基于模型的设计
- 非正式文本需求转化为明确的评估与清晰,语义定义
- 跟踪需求到设计和测试
- 监控内部信号无干扰的设计或与新观察生成的代码块
的主持人
保罗城市MathWorks高级产品营销经理负责验证和验证工具,具体需求工具箱、模型试验和仿真软件检查。他的经验包括广泛应用基于模型的系统工程设计,嵌入式软件开发和测试。加入2016年MathWorks之前,保罗举行角色在产品营销、业务开发、咨询、和发展在IBM华生物联网,Telelogic I-Logix并致力于解决方案基于UML / SysML狂想曲。
记录:2019年8月13日
多久你交付设计客户只发现它不是客户所期望的?有许多行业项目失败的例子,由于误解需求。初始需求的挑战,主要是指定使用非正式文本容易误解,不完整或不一致。我的名字是保罗城市,我在模型验证和验证工作产品组在我管理的数学模型要求,模型试验和仿真软件检查产品。2022世界杯八强谁会赢?
今天,我将向您展示新功能允许您验证和验证需求。使用时间的评估,可以将文本需求转化为明确的评估,可以执行。解决方案形式数字螺纹连接需求模型中实现并测试验证的要求。从这句话可以看出从汽车客户,基于模型的设计如何帮助分析需求更快、缩短设计满足客户需求的交付。
有不断增加的需求,包括更多的基于软件的功能和产品。2022世界杯八强谁会赢?这增加的规模和复杂性和在开发和测试过程带来了额外的压力。在传统的开发过程,从左向右移动,需求提炼成规范,最终得到手动实现代码。介绍了错误在不同的发展阶段,但研究表明,大部分的初始设计中引入的缺陷。这些错误是通过设计阶段和测试发现的许多错误,但直到晚在返工的流程,并进一步测试是必需的。但最后在软件和一些潜在的错误可能仍然只能检测到。这些错误可能导致安全问题或昂贵的产品召回解决更大的缺陷。
此外,研究还表明,发现一个错误的成本增加。例如,找到软件缺陷而编码在桌面电脑比发现错误在生产便宜的硬件。测试的成本增加,后来发现的缺陷在开发周期中。我们需要能够确定尽早实现如果所有的需求,我正确地理解需求,是一种设计行为正确的要求吗?我们也希望能够测试设计,无需修改。与仿真软件,图形模型代替模糊的设计与可执行的模型,精确的含义。
它允许您验证您的设计在桌面硬件可用之前早些时候错误更便宜、更易于识别。仿真软件给工程师一个伟大的语言来描述复杂系统。从物理域——就像开火车,和电机。软件领域,比如方框图和状态机。这些表示允许抽象不必要的细节关注最重要的事情。
非正式的或临时的模拟测试可以通过构建一个虚拟表示形式的系统,你可以与桌面进行交互。这是一个很好的办法提前对您的系统的理解,之前评价设计方案的硬件建设。精炼后您的模型仿真软件设计可以自动转换成通过热电联产生产代码。
这个完整的基于模型的设计流程,你消除昂贵的容易出错的手动步骤,优化设计模型到你的目标硬件。仿真是一个伟大的方式来验证早期行为但它主要是一个手动过程,很大程度上是特别的。确定所有的需求得到满足和正常,我们需要更严格的方法和基于需求的测试系统的测试模型的需求。这就是MathWorks验证和验证工作流帮助自动化的手动步骤测试模型和建立一个可重复验证工作流。现在我将逐步介绍工作流执行的验证要求。
通常要求开始非正式的想法。他们可能来自Word、Excel或更结构化的环境像门一样。工程师需要解释这些非正式的创意转化为基于模型的设计,然后验证设计满足这些需求。这可以非常具有挑战性的查看和管理数据时在不同的工具。很难建立之间的可追溯性要求,设计和测试。
直接从其他工具使用要求在仿真软件中,有一个词,通过仿真软件导入操作要求Excel,门。也支持标准交换格式——ReqIF。ReqIF支持大多数需求管理工具。如果需求变更来源,然后一个执行更新操作,同步变化,仿真软件的用户可能想要编辑需求或添加更多的细节,如自定义属性的要求。
默认是将外部需求为只读但最近19日发布,能够解锁需求使内部字段的更新需求。此外,进口需求,您还可以创建需求直接在仿真软件仿真软件是一个来源。包括仿真软件编写需求在整个项目中引入和导出操作使用ReqIF 19。
结合导入、更新和出口操作与ReqIF使往返工作流与外部需求的工具还支持标准。主要有两种观点在仿真软件可用来处理需求。编辑器和视角。编辑器,您可以查看和编辑所有的需求设置在您的项目。角度来说,提供了一个共同的需求和设计视图,允许您在一个视图。
这是仔细看看需求角度,控制合适的画布的转动角度。徽章在画布上显示链接存在的地方,你可以选择显示的描述。浏览器显示一个表格汇总的需求。它包括一个实现和验证状态显示设计和测试的完整性。需求的属性检查器包括所有的细节,如描述,自定义属性,它还包括要求的链接。
通过需求包含在仿真软件环境,它允许您与他们合作设计环境中快速创建的可追溯性链接。模拟提供了一个很好的方式捕获设计错误,但是一个更严格的和自动的测试方法是在设计需要增加信心。仿真软件测试给你一个系统的方法来测试您的模型。
首先,可以进行测试的组件隔离使用测试工具——允许编写测试模型没有弄脏。可以创建测试用例来验证设计针对基线或等效建模代码之间。您可以使用许多格式定义的输入,如垫文件,Excel,字母或文字信号序列。评估结果,可以对基准输出进行比较
垫或Excel文件。使用MATLAB编写自定义标准单元测试。和使用博客来定义在线测试评估通过失败条件。你可以链接到测试工件或要求完成需求设计和测试之间的可追溯性。
链接的分析显示了完整的实现和验证需求的层次结构。一个完整的彩色栏显示完整的需求覆盖存在的地方。的差距确定失踪实现或测试,哪些地方需要进一步的工作。我将展示一个例子使用热泵工作流。它始于一些热泵控制器结构要求在一个外部工具。激活热泵要求包括时序逻辑。泵应该激活当温度大于2度超过两秒钟,然后在一段时间内保持活跃。
根据这些要求,控制器需要两个输入,一个温度,另一个用于室温。它将输出三个命令来控制泵上公共汽车。一把风扇,另一个泵,第三个指定是否需要加热或冷却。控制器的行为打开风扇,去激活泵使用Stateflow图实现加热或冷却。
以确保所有的需求是在模型中实现的,他们导入仿真软件需求。的角度来看,我可以看到实现的状态积极热泵显示了一个缺口,它没有任何链接。创建一个链接到模型中,所有我需要做的就是拖拽。我可以带一个需求模型中的注释视图的细节要求。
注意,创建链接,和实现状态更新为显示其实施。添加链接或注释不肮脏的模型。使用单独的文件来维护这些构件。现在,我将继续验证的要求。控制器是包括在植物模型房子的加热器和热性能,可以模拟操作。我只想测试控制器模型的其余部分没有弄脏。为此,我将创建一个测试工具。
我选择命令创建测试工具,然后有很多的操作可以提供利用。特别是,您可以选择不同的来源和不同的同步。我们选择一个测试序列驱动控制器的输入,这将创建一个新的测试工具模型只包含控制器和一个测试序列块。在测试的组件将保持同步与主模型是否有变化。
测试序列块允许您生成测试输入和评估定义为一系列的步骤。你可以把它作为Stateflow的简化版本。它允许您描述复杂的时序测试序列。为控制器,测试工具创建的一系列步骤使用斜坡函数随时间变化房间的温度范围输入控制器的所有模式。
初始化控制器的第一步,那么代码外一步降低室温控制器在加热模式。外热一步测试控制器冷却室。最后,控制器回到空闲状态。测试序列提供了一种方法来创建一个复杂的测试步骤序列来驱动测试输入。
让我们来看看这个需求激活热泵。这是一个简单的概念——当一些条件为真,那么其他条件一定是真正的一段时间。但是形式化评估——很难捕获的时间条件。让我们看看我们如何能改变这个要求使用新的时间评估编辑器。测试经理,我打开一个测试用例使用测试利用热泵模型并添加评估。我使用预定义的模式构建的评估。要求指定触发器响应模式。我名字的评估,然后我需要选择触发条件的模式。
在我的例子中,我想要测试时触发温度差异高于某个阈值超过两秒。我输入一个表达式对应的触发条件和指定的最小时间条件必须是真实的。注意,所有的符号都是最初标记为未解决的,并自动添加到符号表中。这些映射到信号的模型或表达式。然后,我选择一个时间参考相应响应条件必须评估的时候。最后我选择一个模式的响应条件,条件和最小时间。
我可以崩溃评估可读的精确描述的要求。我可以创建一个链接到被测试的要求。看需求,我可以使用链接直接导航到它。注意,创建一个验证链接和状态显示黄色,表明测试尚未运行。所以我们我们的评估符号映射到模型,现在可以运行测试用例。我们可以运行测试链接直接从需求。
测试运行和状态自动更新显示测试失败了。有一个直接链接导航测试结果。评估结果显示了预期行为和评估的实际结果失败了。一个文本的解释告诉我们,泵应该在13秒激活。表达式树的解释更详细的失败,让我调试它。我们可以使用一个数据光标看到泵才打开后,这是不正确的。
调试错误,我们可以通过使用链接导航到实现模型中。经检查转移逻辑,我们可以很快看到,使用错误的阈值条件。我正确的模型,现在我可以返回的测试模型,然后重新运行测试。测试通过,现在——导航回需求编辑器,我可以看到验证结果是通过自动更新显示绿色。
总结我们所看到的,使用时间评估编辑器,我们可以翻译文本要求一个正式的评估使用基于表单的编辑器。评估可以从这样一个可读的英语句子。评估结果窗口允许我检查和调试结果。然后,测试结果是可追踪的需求和设计。看到总体状况,识别差距可以显示一个实现和验证状态测量的整体完整性设计和测试。
实施状态,蓝色表示链接的存在。浅蓝色表示有一个理由,一个眨眼表明一个链接是失踪。验证状态,绿色表示测试通过,红色代表失败,和黄色显示没有结果。,眨眼之间显示一个链接到一个测试是失踪。测试工具是一种隔离测试下一个组件,但是来验证设计,你可能需要访问一些深埋在模型层次结构的信号。但是你不想修改设计或其接口只是为了测试目的。
新的观察者集团允许您监控的信号模型,同时保留设计动态响应和接口。你可以单独的验证逻辑设计和访问任何信号在任何层次无需修改接口,也不会影响系统动态响应。它有助于避免模型与额外的信号只需要进行测试。你可以把验证逻辑,并将它在一个单独的模型,co-simulates测试下您的模型。
测试可以重用为银执行等效测试,公益诉讼或边境。银,或软件的循环测试,是指从模型重用测试执行生成的代码在桌面电脑,然后比较结果和仿真结果。你也可以测量代码覆盖率看到生成的代码是完全测试。公益诉讼或处理器循环测试指的是交叉编译
生成的代码为目标处理器。目标处理器上执行该代码,然后比较结果从目标和仿真结果。还有第三个循环测试称为边境或硬件的循环。在这种情况下,测试检查的实时行为设计和代码使用实时仿真软件和Speedgoat。
我们有很多客户使用VNV工作流。下面是一个例子-埃利斯汽车是最大的一级供应商之一在韩国汽车开关和组件。他们需要满足日益增长的需求oem厂商更快地交付更多的功能和符合ISO 262标准的生产系统。埃利斯汽车与MathWorks咨询与MATLAB和Simulink采用基于模型的设计,减少开发时间的镜子和电动窗控制。
他们透露客户规范的模拟和仿真软件错误。但是,幸运的是这些都是比较容易解决,因为他们已经被确认在发展早期。他们能够消除手动编码错误和降低开发时间。更多地了解埃利斯汽车和其他客户访问我们的网站。
总之,基于模型的设计使您可以点击播放按钮来验证和验证设计,在硬件可用之前捕获错误。新的测试评估语言使您能够将非正式文本需求转化为明确的评估与精确的语义。他们可以被看作是自然语言句子更好的可理解性。
这个解决方案,我们能够跟踪从需求,设计,测试,让我们轻松地确定一个需求是被测试,以及它是如何实现的。这也使我们能够确定什么会影响如果有变化我们的要求。学习更多关于MathWorks验证和确认工作流程,检查产品页面今天讨论的产品或解决方案在www.ru-cchi.com页面2022世界杯八强谁会赢?
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。