主要内容

评估ISO 26262的基于需求的测试

您可以使用模型测试仪表板来根据ISO 26262- 6:18 2018评估基于需求的测试活动的质量和完整性。仪表板通过监视需求、测试和测试结果之间的可跟踪性,并通过提供测试完整性和结构覆盖率的摘要,促进了此活动。仪表板分析项目中的实现和验证工件,并提供:

  • 根据ISO 26262- 6:18 2018,条款9.4.3的基于需求的测试用例的完整性和质量度量

  • 符合ISO 26262- 6:18 2018第9.4.4条要求的基于需求的测试结果的完整性和质量度量

  • 项目中的工件列表,按单元组织

为了评估您基于需求的测试活动的完整性,使用模型测试仪表板遵循这些自动的和手动的评审步骤。

打开模型测试仪表板并收集度量结果

要使用模型测试仪表板分析测试工件:

  1. 打开一个包含您的模型和测试工件的项目。或者在MATLAB中为仪表板加载一个示例项目®命令窗口中,输入:

    dashboardCCProjectStart (“不完整”

  2. 打开仪表板。要打开模型测试仪表板,使用以下方法之一:

    • 项目选项卡上,单击模型试验仪表板

    • 在MATLAB命令行中,输入:

      modelTestingDashboard

  3. 工件面板,仪表板组织工件,如需求,测试用例,和测试结果在它们跟踪到的单元下。查看单位的度量结果db_DriverSwRequest在示例项目中,在项目面板中,单击db_DriverSwRequest.仪表板收集度量结果,并用单元的度量数据填充小部件。

    请注意

    如果您不指定被认为是单元的模型,那么如果模型测试仪表板不引用其他模型,则将模型视为单元。您可以通过在您的项目中标记它们并配置模型测试仪表板来识别这些标签来控制哪些模型作为单元和组件出现。有关更多信息,请参见将模型指定为组件和单元

模型测试仪表板显示单元db_DriverSwRequest的结果

仪表板小部件为每个单元的测试工件总结了可跟踪性和完整性度量。度量结果显示为红色不一致的覆盖图标指出您可能需要解决的问题,以完成单元的基于需求的测试。如果结果显示了完全的可追溯性,测试完成,或者模型覆盖,那么结果就是符合的。要查看度量的遵从性阈值,请指向覆盖图标。要更详细地查看数据,请单击单个指标小部件。对于所选的度量,一个表显示了工件和每个工件的度量值。该表提供了打开工件的超链接,以便您可以获得详细的度量结果并修复有问题的工件。有关使用模型测试仪表板的更多信息,请参见使用模型测试仪表板探索测试活动的状态和质量

测试用例评审

为了验证一个单元满足它的需求,您基于需求为单元创建测试用例。ISO 26262-6,第9.4.3条要求单元的测试用例是从需求派生出来的。当您为需求创建一个测试用例时,您在测试用例和需求之间添加一个可跟踪性链接,如链接到测试的要求(需求工具箱)而在建立测试的需求可追溯性(仿真软件测试).可追溯性允许您跟踪您的测试验证了哪些需求,并识别模型不满足的需求。第9.4.3条要求需求和测试用例之间的可追溯性,以及对测试用例正确性和完整性的评审。为了评估一个单元的测试用例的正确性和完整性,使用测试用例分析模型测试仪表板的部分。

以下是一个示例检查表,以帮助审核ISO 26262-6测试用例的正确性和完整性。对于每个问题,使用相应的仪表板度量执行评审活动,并应用相应的修复。此检查表是作为示例提供的,应该对其进行检查和修改,以满足您的应用程序需求。

清单项目 评审活动 仪表盘指标 修复
是否每个测试用例都追溯到一个需求?

中的小部件,检查单元的测试用例是否100%链接到需求与需求链接的测试部分。

与需求链接的测试

度量小部件指示满足需求的测试的百分比,计数小部件指示一个未链接的测试

度量ID -TestCaseWithRequirementPercentage

有关更多信息,请参见测试链接到需求百分比

对于每个未链接的测试用例,向测试用例验证的需求添加一个链接,如修复基于需求的测试问题

2 -每个测试用例都追溯到正确的需求吗?

对于每个测试用例,手动验证它链接到的需求是正确的。单击测试需求小部件来查看测试用例的表。来查看测试用例所追踪到的需求工件列中,单击测试用例名称左侧的箭头。

与需求链接的测试

测试用例和关联需求的表

度量ID -TestCaseWithRequirement

有关更多信息,请参见与需求链接的测试

对于每个指向不正确需求的链接,请删除该链接。如果测试用例缺少到正确需求的链接,则添加正确的链接。

3 -测试用例是否涵盖了所有的需求?

中的小部件,检查单元的需求是否100%链接到测试用例与测试关联的需求部分。

与测试关联的需求

度量小部件指示测试用例需求的百分比,计数小部件指示未链接的需求

度量ID -RequirementWithTestCasePercentage

有关更多信息,请参见测试用例的百分比需求

对于每个未链接的需求,添加一个链接到验证它的测试用例,如修复基于需求的测试问题

测试用例是否定义了包括通过/失败标准在内的预期结果? 手动检查每种类型的测试用例。中的小部件单击测试的类型节查看每种类型的测试用例表:模拟等价,基线.中的超链接在测试管理器中打开每个测试用例工件列。基线测试用例必须定义基线标准。对于模拟测试用例,回顾每个测试用例通过使用评估定义通过/失败标准,如评估模拟和比较输出数据(仿真软件测试)

测试的类型

表,列出了每个测试用例及其类型

度量ID -TestCaseType

有关更多信息,请参见测试用例类型

对于没有定义预期结果的每个测试用例,单击工件列以在测试管理器中打开测试用例,然后添加预期的测试定义和通过/失败标准。
5 -每个测试用例是否正确地测试它所追踪到的需求?

手动检查每个测试用例的需求链接和内容。单击测试需求小部件来查看测试用例的表。来查看测试用例所追踪到的需求工件列中,单击测试用例名称左侧的箭头。使用超链接打开测试用例和需求,并检查测试用例是否正确地测试了需求。

与需求链接的测试

测试用例和关联需求的表

度量ID -TestCaseWithRequirement

有关更多信息,请参见与需求链接的测试

对于每个没有正确测试它跟踪到的需求的测试用例,单击工件列以在测试管理器中打开测试用例,然后更新测试用例。或者,添加进一步测试需求的测试用例。

测试结果评估

在单元上运行测试之后,您必须检查结果,以检查执行的测试、通过的测试以及对单元的充分测试。ISO 26262- 6:18 2018第9.4.4条要求您分析每个单元的需求覆盖率。检查每个测试用例是否测试了预期的模型并通过。此外,通过收集测试中的模型覆盖率结果来度量单元的覆盖率。为了评估单元需求的测试覆盖率,使用模拟测试结果分析模型测试仪表板的部分。

提供了以下检查表,以方便使用仪表板分析和审查测试结果。对于每个问题,使用相应的仪表板度量执行评审活动,并应用相应的修复。此检查表是作为示例提供的,应该对其进行检查和修改,以满足您的应用程序需求。

清单项目 评审活动 仪表盘指标 修复
是否每个测试结果都追溯到一个测试用例? 只使用显示在仪表板中的测试结果。没有跟踪到测试用例的测试结果不会出现在仪表板中。中的小部件单击模型试验状态部分查看测试用例的表以及追溯到它们的结果。

模型试验状态

失败的测试用例表

度量ID -TestCaseStatusDistribution

有关更多信息,请参见测试用例状态分布

打开指标详细信息并单击中的超链接工件列以在测试管理器中打开测试用例。重新运行结果应跟踪到的测试,并导出新的结果。
是否每个测试用例都追溯到一个测试结果? 检查是否有0个测试用例未测试,并且有0个测试用例被禁用。

模型试验状态

显示未测试和禁用测试用例计数的小部件

度量ID -TestCaseStatusDistribution

有关更多信息,请参见测试用例状态分布

对于每个禁用或未测试的测试用例,在测试管理器中启用并运行测试。
是否执行了所有的测试用例? 检查是否有0个测试用例未测试,并且有0个测试用例被禁用。

模型试验状态

显示未测试和禁用测试用例的计数的小部件

度量ID -TestCaseStatusDistribution

有关更多信息,请参见测试用例状态分布

对于每个禁用的或未测试的测试用例,在测试管理器中,启用并运行测试。
4 -所有测试用例都通过了吗?

检查单元的测试用例是否100%通过。

模型试验状态

度量小部件指示通过的测试用例的百分比

度量ID -TestCaseStatusPercentage

有关更多信息,请参见测试用例状态百分比

对于每个测试失败,在测试管理器中检查失败,并在模型中固定相应的测试用例或设计元素。
所有测试结果是否包括覆盖率结果? 在测试管理器中手动检查每个测试结果,以检查它是否包含覆盖结果。 不适用 对于每个不包含覆盖的测试结果,在测试管理器中打开测试用例,然后启用覆盖收集。再次运行测试用例。
每个单位是否达到所需的结构覆盖率目标? 检查测试是否达到了单元测试所需的覆盖类型的100%模型覆盖率。要确定所需的覆盖类型,请考虑您的软件单元的安全级别,并使用ISO 26262- 6:18 2018第9.4.4条中的表9。

模型覆盖

模型覆盖结果图

度量ID -ExecutionCoverageBreakdown

度量ID -ConditionCoverageBreakdown

度量ID -DecisionCoverageBreakdown

度量ID -MCDCCoverageBreakdown

欲了解更多信息,请参见:

对于没有覆盖的每个设计元素,分析以确定遗漏覆盖的原因。分析可以揭示测试、需求或实现中的缺陷。如果合适,添加测试以覆盖元素。或者,添加一个证明过滤器来证明遗漏的覆盖率,如中所述创建、编辑和查看覆盖率筛选规则(仿真软件覆盖)
7 -所有实现的覆盖是否都来自基于需求的测试? 检查100%实现的总体覆盖率来自基于需求的测试。

中查看度量结果实现覆盖率仪表板的分段。单击下面的小部件基于需求的测试有关每种保险类型的总体已实现覆盖率来源的信息。

基于需求的测试图

有关相关的度量id,请参见单元基于需求测试的度量

对于任何不是来自基于需求的测试的总体覆盖率,添加到测试用例验证的需求的链接。

8 -总体实现的覆盖率是否来自适当测试单元的测试用例? 手动检查每个测试用例的内容。检查来自单元边界测试的总体已实现覆盖率的百分比。

中查看度量结果实现覆盖率仪表板的分段。单击下面的小部件Unit-Boundary测试有关每种保险类型的总体已实现覆盖率来源的信息。

Unit-boundary测试图

有关相关的度量id,请参见单元边界测试的度量

对于任何不是来自单元边界测试的全面实现的覆盖,要么添加一个测试整个单元的测试,要么重新考虑单元模型定义。
缺陷是否被证明是合理的?

手动审查覆盖理由。中的一个栏单击模型覆盖节以查看对应覆盖率类型的结果表。要在测试管理器中打开测试结果以进行进一步检查,请单击中的超链接工件列。

模型覆盖

决策覆盖结果表

度量ID -ExecutionCoverageBreakdown

度量ID -ConditionCoverageBreakdown

度量ID -DecisionCoverageBreakdown

度量ID -MCDCCoverageBreakdown

欲了解更多信息,请参见:

对于每个不能接受的保险缺口,更新缺失保险的理由。或者,添加测试用例来填补空白。

根据ISO 26262进行单元验证

模型测试仪表板提供了关于基于单元需求的测试活动的质量和完整性的信息。为了符合ISO 26262- 6:18 2018,您还必须在其他体系结构级别上测试您的软件。ISO 26262- 6:18 2018描述了这些测试级别的符合性要求:

  • 软件单元测试如表7,方法1j

  • 表10中的软件集成测试,方法1a

  • 表14中的嵌入式软件测试,方法1a

ISO 26262-8:2018中详细描述的通用验证过程第9条包含了关于如何通过使用测试的计划、规范、执行、评估和文档来系统地实现这些级别的测试的附加信息。此表显示了模型测试仪表板如何应用于ISO 26262-8:2018中关于单元测试级别的第9条的要求,以及为显示符合性所需执行的补充活动。

要求 合规的论点 互补的活动
9.4.1 -核查活动的范围 模型测试仪表板适用于所有与安全相关和非安全相关的软件单元。 不适用
9.4.2 -验证方法 模型测试仪表板提供了基于需求的测试完成的摘要(表7,方法1j),包括测试结果的视图。

在适用的情况下,应用一种或多种其他验证方法:

  • 手工评审和分析检查表

  • 应用其他工具,例如静态代码分析、控制流分析和数据流分析

  • 开发额外的测试,例如接口测试、故障注入测试和背对背比较

9.4.3 -派生测试用例的方法 模型测试仪表板提供了几种遍历软件单元需求和相关测试的方法,这有助于您从需求中获得测试用例。 您还可以通过使用其他工具来派生测试用例,例如动态仿真模块®设计验证器™
9.4.4 -需求和结构覆盖范围

模型测试仪表板有助于显示:

  • 需求覆盖的完整性

  • 通过测试实现分支/语句和MCDC模型覆盖率

  • 已实现覆盖率的充分理由

仪表板仅在模型级别提供结构覆盖。您可以使用其他工具在代码级别跟踪结构覆盖率。
9.4.5 -测试环境 模型测试仪表板帮助在模型级别进行基于需求的测试。 应用背靠背比较测试来验证模型的行为与生成的代码是等价的。

引用:

  • 道路车辆-功能安全-第4部分:系统级产品开发,国际标准化组织

  • 国际标准化组织,道路车辆-功能安全-第6部分:软件级别的产品开发

  • 国际标准化组织,道路车辆-功能安全-第8部分:辅助工艺

另请参阅

相关的话题

Baidu
map