以下部分描述了一个示例模型,即巡航控制测试生成。这个例子演示了如何使用万博1manbetx®设计Verifier™生成实现完整模型覆盖的测试用例。通过这个示例,您将了解如何使用万博1manbetx仿真软件设计验证器并解释结果。
打开巡航控制测试生成模型,在MATLAB中进行®提示,输入:
要为Cruise Control test Generation模型生成测试用例,打开模型窗口并双击标记的块运行.
万博1manbetx仿真软件设计验证器开始分析模型以生成测试用例,并且万博1manbetx仿真软件设计验证器打开“结果汇总”窗口。“结果汇总”窗口显示运行日志,显示分析的进度。
如果您需要在运行时终止分析,请单击停止.软件会询问你是否想要产生结果。如果您点击是的,该软件根据目前所取得的结果创建一个数据文件。数据文件的路径名称出现在“结果摘要”窗口中。
数据文件是一个mat文件,它包含一个名为sldvData
.该结构存储软件在分析过程中收集和生成的数据。
有关更多信息,请参见万博1manbetxSimulink设计验证器数据文件.
当万博1manbetx仿真软件设计验证器完成其分析sldvdemo_cruise_control.
模型时,“结果摘要”窗口显示几个选项:
突出模型的分析结果
生成详细的分析报告
创建线束模型
模拟测试并生成模型覆盖率报告
请注意
当您分析其他模型时,根据分析结果,您可能会看到这四个选项的子集。
下面的章节将详细描述这些选项。
在里面万博1manbetx仿真软件设计验证器结果摘要窗口,如果您单击突出模型的分析结果,软件根据分析结果,将模型中的对象用三种不同的颜色突出显示:
当您突出显示模型上的分析结果时,万博1manbetx仿真软件设计验证器结果检查员打开。当您单击模型中具有分析结果的对象时,results Inspector将显示该对象的结果摘要。
格林:目标满意。绿色大纲表示分析为该块的所有目标生成的测试用例。如果块是一个子系统或状态流®原子子图,绿色的轮廓表示分析为与子对象相关联的所有目标生成的测试用例。
例如,在sldvdemo_cruise_control.
模型,绿色轮廓表明PI控制器子系统满足所有测试目标。结果检查员列出PI控制器子系统的两个满足的测试目标。
橙色:目标未定。橙色轮廓表示分析不能确定一个目标是否令人满意。这种情况可能发生在以下情况:
分析超时
软件满足测试目标而不生成测试用例,原因如下:
自动损坏错误
分析引擎的局限性
在以下示例中,分析在它可以确定分离时Integretator块的目标是否满足之前定时。
红色:目标未能偿还的。红色大纲表示分析发现了一些无法生成测试用例的目标,很可能是由于模型中不可达的设计元素。
在下面的例子中,输入2总是满足开关块,所以开关Block从不通过输入3的值。
在里面万博1manbetx仿真软件设计验证器结果摘要窗口,如果您单击生成详细的分析报告,软件保存,然后打开详细的分析报告。报告的路径是:
< current_folder >/ sldv_output /…sldvdemo_cruise_control / sldvdemo_cruise_control_report.html
HTML报告包括以下章节。
有关每个报告章节的描述,请参阅:
总结。在里面目录,点击概括显示“摘要”章节,其中包括以下信息:
型号名称
分析模式(测试生成、性能证明、设计错误检测)
分析现状
分析的长度以秒为单位
满足的目标数量
分析信息。在里面目录,点击分析信息显示有关分析模型和分析选项的信息。
测试目标的地位。在里面目录,点击测试目标状态显示已满足的目标表。下图显示了巡航控制测试生成模型中所满足的部分目标列表。
目标状态
的目标满意表列出了模型的以下信息:
#——目标数量
类型——目标类型
模型项目- 测试目标的模型中的元素。单击此链接以显示突出显示此元素的模型。
描述—目标的描述信息
测试用例-达到目标的测试用例。单击此链接以获得关于该测试用例的更多信息。
在目标34的行中,单击测试用例编号(7)以在报告中显示关于测试用例7的更多信息测试用例一章。
测试案例7.
在该示例中,测试案例7满足一个目标,集成结果大于或等于上限T
在离散时间积分器块中。该表列出了从时间0到时间0.06的6个信号的值。
模型项目。在里面目录,点击模型项目查看定义覆盖率目标的模型中每一项的详细信息。该表包括分析结束时目标的状态。单击表格中的链接可获得关于已满足目标的详细信息。
型号项目-控制器/交换机3
型号项目-控制器/交换机2
测试用例。在里面目录,点击测试用例要显示有关每个生成的测试用例的详细信息,包括:
执行测试用例的时间长度
满足的目标数量
关于满意目标的详细信息
输入数据
例如,请参阅中测试用例7部分测试目标状态.
在里面万博1manbetx仿真软件设计验证器结果摘要窗口,如果您单击创建线束模型,该软件创建并打开名为sldvdemo_cruise_control_harness
.
线束模型包含以下模块:
测试用例解释块是DocBlock块,它记录生成的测试用例。双击测试用例解释块来查看测试用例满足的目标的每个测试用例的描述。
测试单元块是子系统块包含软件分析的原始模型的副本。双击测试单元块以查看其内容并确认它是巡航控制测试生成模型的副本。
请注意
您可以配置利用模型来引用您正在使用模型块而不是使用子系统。在“配置参数”对话框中,单击设计验证器>窗格中,选择分析后生成单独的线束模型和生成线束中的参考输入模型.
输入块是信号生成器块,该块包含生成的测试用例信号。双击Inputs块以打开Signal Builder对话框并查看八个测试用例信号。
Size-Type块是一个子系统,它将信号从输入块传输到测试单元块。这个块验证信号的大小和数据类型是否与Test Unit块一致。
信号构建器对话框包含八个测试用例。
要查看测试用例7,请从活跃组列表中,选择测试案例7.
.
在测试案例7时0.01秒:
enable和inc信号保持为1。
制动器和DEC信号保持0。
设置信号从1到0转换。
速度信号从100到0转换。
在里面信号生成器块,信号组满足测试用例解释块中描述的测试目标。
确认万博1manbetx仿真软件设计验证器实现了完整的模型覆盖范围,使用所有测试用例模拟线束模型。在“信号构建器”对话框中,单击“运行全部并产生覆盖范围按钮.
Simu万博1manbetxlink软件模拟了所有的测试用例。的万博1manbetx仿真软件覆盖™软件为线束模型收集覆盖率数据,并显示覆盖率报告。报告摘要显示sldvdemo_cruise_control_harness
模型达到100%覆盖。
概括
在里面万博1manbetx仿真软件设计验证器结果摘要窗口,如果您单击模拟测试并生成模型覆盖率报告,该软件模拟该模型并生成覆盖率报告sldvdemo_cruise_control.
模型。软件以以下名称存储报告:
< current_folder >/ sldv_output / sldvdemo_cruise_control /…sldvdemo_cruise_control_report.html
当你点击运行全部并产生覆盖范围要在利用模型中模拟测试,您可能会看到此覆盖率报告与您为模型本身生成的报告之间的以下差异:
控制模型覆盖率报告可能包含额外的时间步骤。当您为控制模型收集覆盖率时,模型停止时间等于最长测试用例的停止时间。因此,当您模拟较短的测试用例时,您可能会获得额外的覆盖率。
由于装具模型的结构,装具模型中Test Unit子系统的圈复杂度覆盖率可能与模型本身的覆盖率不同。
如果您喜欢检查合并到更少数量的测试用例中的结果,则设置测试套件的优化参数LongTestcases
.当你使用的时候LongTestcases
优化,分析生成更少,但更长,每个满足多个测试目标的测试用例。
打开sldvdemo_cruise_control.
的建模和重新运行分析LongTestcases
优化:
在设计验证器标签,在准备部分中,从模式设置的下拉菜单中单击设置.
在“配置参数”对话框中选择树在左边,在设计验证器类别,选择测试生成.
设置测试套件的优化参数LongTestcases
.
点击应用和行关闭“配置参数”对话框。
在里面sldvdemo_cruise_control.
模型,双击标记的块运行.
在结果摘要窗口中,单击创建线束模型.
在脊甲模型中信号生成器块和测试用例解释块现在包含一个较长的测试用例,而不是前面创建的八个较短的测试用例生成测试用例.
点击运行全部并产生覆盖范围收集覆盖范围。
分析仍然满足所有34个目标。