主要内容

考试计划和策略

你可以使用万博1manbetx®测试™对模型和代码进行功能测试。在创建测试之前,请考虑:

确定测试目标

在您编写测试之前,请了解您的目标。你可能有以下一个或多个目标:

模拟测试

如果您的测试只需要一个模型来进行无错误的模拟或执行回归测试,那么您可以运行模拟测试。如果您的模型仍在开发中,或者您有一个包含输入和评估的现有测试模型,并记录相关数据,则模拟测试非常有用。有关示例,请参见测试模拟运行时错误

需求验证

如果您安装了需求工具箱™,您可以通过将一个或多个测试用例链接到需求工具箱中编写的需求来评估模型是否符合需求。您可以通过以下方式验证模型是否满足要求:

  • 创作验证模型或测试工具中的语句或自定义标准脚本。

  • 包括模型验证块在模型或测试装置中。

  • 捕获测试用例中的模拟输出,并将模拟输出与基线数据进行比较。

举个例子验证语句,看到测试变速器控制器的降档点

数据比较

您可以将模拟结果与基线数据或另一个模拟进行比较。你也可以比较不同MATLAB的结果®版本。

在基线测试中,您首先建立基线数据,这是预期的输出。您可以手动定义基线数据,从Excel中导入基线数据®或MAT文件,或从模拟中捕获基线数据。有关更多信息,请参见比较模型输出和基线数据

在等价测试中,您将比较两个模拟,以查看它们是否等价。例如,您可以比较两个求解器的结果,或者比较常规模式模拟的结果与软件在环(SIL)、处理器在环(PIL)或实时硬件在环(HIL)模式下生成的代码。您可以通过运行等效测试来探索不同参数值或校准数据集的影响。有关等效性测试示例,请参见测试两个模拟是否等价

在多版本测试中,您可以在多个已安装的MATLAB版本中运行测试。使用多个版本测试来验证测试是否通过,并在不同版本中产生相同的结果。

SIL和PIL测试

您可以通过在正常模式和SIL或PIL模式下连续运行模拟来验证所生成代码的输出。在正常模式和SIL或PIL模式下运行背靠背测试是等价测试的一种形式。通过迭代MAT或Excel文件中定义的不同测试向量,相同的背靠背测试可以运行多个测试场景。您可以对结果应用公差,以允许模型和生成的代码之间在技术上可接受的值和时间差异。公差也可以应用于在硬件上实时运行的代码。在子系统模型中不能使用SIL或PIL模式。

实时测试

万博1manbetx仿真软件实时™,您可以通过在实时目标计算机上以HIL(硬件在环)模式执行测试来包括物理设备、信号和嵌入式硬件的影响。通过实时运行基线测试,您可以将结果与已知的良好数据进行比较。您还可以在模型、SIL或PIL和实时模拟之间运行一个背靠背的测试。

报道

万博1manbetx仿真软件覆盖™,您可以收集覆盖率数据来帮助量化您的模型或代码被测试的程度。当您为您的测试文件设置覆盖率集合时,测试结果包括测试下系统的覆盖率,以及可选的引用模型。您可以指定要返回的覆盖度量。如果模型参考块、原子子系万博1manbetx统块和顶级模型被配置为软件在环(SIL)或处理器在环(PIL),那么它们的覆盖率将得到支持。覆盖范围不支持SIL或PIL万博1manbetx功能块。

如果你的结果显示不完全覆盖,你可以通过以下方法增加覆盖:

  • 手动向测试文件添加测试用例。

  • 生成测试用例以增加覆盖率,使用万博1manbetxSimulink设计验证器™

在任何一种情况下,您都可以将新的测试用例链接到需求,这是某些认证所需要的。

测试整个模型或特定组件

您可以测试整个模型或模型组件。执行测试的一种方法是首先对组件进行单元测试,然后增加被测试组件的数量,以执行集成和系统级测试。通过使用这个测试方案,您可以更容易地识别和调试测试用例和模型设计问题。如果您想获得聚合的覆盖率,请测试您的整个模型。

使用测试工具

测试工具包含被测试组件的副本,或者,为了测试整个模型,包含对模型的引用。线束还包含用于测试的输入和输出。使用测试工具将被测试的模型或组件与主模型隔离开来,这将使主模型保持干净整洁。

您可以在您的模型文件内部保存这个工具,或者在与模型分离的外部文件中保存。在内部保存工具简化了共享模型和测试,因为工件更少,并且允许您更容易地调试测试问题。在外部保存控制装置可以让您重用和共享控制装置,并清楚地将您的设计与测试工件分开。无论是在模型的内部还是外部,测试束的工作方式都是一样的。有关测试工具的更多信息,请参见测试线束和模型关系而且创建一个测试工具

该图显示了一个测试工具的示例。

测试线束,显示连接到路由子系统的输入。子系统连接到被测试的移位逻辑块,块连接到另一个路由子系统,然后路由子系统连接到输出。

被测试的组件是shift_logic块,它是在集合创建过程中从主模型复制的。的副本shift_logic块链接到主模型。输入是轮廓尺寸块,输出为外港块。垂直子系统包含信号规范块和连接组件接口到输入和输出的路由。

确定输入和输出

考虑使用什么输入信号和信号公差来测试你的模型,以及从哪里获取它们。您可以将Signal Editor块添加到您的测试套件中,以定义输入信号。属性中的输入也可以定义和使用微软®Excel或MAT文件,或测试序列块。如果你有万博1manbetxSimulink设计验证器安装后,您可以自动生成测试输入。

对于测试的输出,请考虑是否希望将测试细节和测试结果数据保存到报告中以进行存档或分发。还可以使用输出作为测试评估块来评估和验证测试结果。对于基线测试,使用输出将实际结果与预期结果进行比较。

优化测试执行时间

优化测试时间的方法包括使用迭代、并行测试和运行测试用例的子集。

当您设计您的测试时,决定您是想要多个测试还是同一个测试的迭代。迭代是测试用例的变体。在迭代中为不同的输入数据集、参数集、配置集、测试场景、基线数据和模拟模式使用迭代。使用迭代的一个优点是您可以使用快速重新启动运行您的测试,这避免了必须为每个迭代重新编译模型,从而减少了模拟时间。

例如,如果您有多个输入数据集,您可以为每个外部输入文件设置一个测试用例迭代。重写参数的另一种方法是使用脚本化的参数扫描,这使您能够遍历许多值。如果您需要独立的配置控制或者每个测试都与不同的需求相关,请使用单独的测试用例;有关迭代的更多信息,请参见测试迭代

如果您有并行计算工具箱™,则可以在本地机器或集群上并行运行测试。如果你有MATLAB并行服务器,可以在远程集群上并行运行测试。当您有大量的测试用例或运行时间较长的测试用例时,并行测试是有用的。看到使用并行执行运行测试

优化测试时间的另一种方法是通过标记要运行的测试来运行测试用例的子集。

有关改进和优化模型仿真的更多信息,请参阅Simulink文档中“仿真”下的“优化性能”部分。万博1manbetx

使用编程或GUI界面

创建并运行测试万博1manbetx仿真软件测试提供了测试管理器,这是一个交互工具,以及您可以在测试脚本和命令行中使用的API命令和函数。使用Test Manager,您可以管理大量的测试,并系统地捕获和管理结果。如果您需要定义新的测试评估,请使用test Manager,因为API中没有此功能。如果您在持续集成环境中工作,请使用API。否则,您可以使用任何您喜欢的选项。

另请参阅

相关的话题