使用基于模型的测试执行 ISO 26262 验证活动的示例

  ISO 26262-6 提出了许多推荐或是高度推荐的开发和测试活动执行方法。举例来说,表 1 列出了 ISO 26262-6 推荐的软件单元测试方法。根据 ISO 26262 A 到 ISO 26262 D 对项目的汽车安全整合等级 (ASIL) 提出的要求(其中 D 表示关键性高的等级),您需要使用表 1 中的部分或全部方法来实现合规性。这些方法包括基于需求的测试、接口测试、错误注入测试、资源使用测试和背对背的对比测试。

  表 1. 表 1. ISO 26262-6 推荐的汽车安全整合等级 (ASIL) 单元测试方法

  ASIL A 到 ASIL D 高度推荐执行基于需求的测试。换句话说,基于需求的测试是必备的。因此,基于需求的测试也是 Rational Rhapsody 参考工作流中的一项重要验证活动。

  图 2. 通过 Rational Rhapsody TestConductor Add On 执行基于需求的测试

  在基于需求的测试过程中,您需要系统性地验证所测试的系统 (SUT) 的行为是否与为该系统定义的需求中指定的行为相符。对于每项需求,必须定义一个或多个测试用例,以便检查 SUT 的行为。IBM Rational Rhapsody 提供了四种不同的方法来执行测试用例的行为:顺序图、状态图、活动图和纯文本代码。根据要检查的需求不同,这些方法中的某种方法可能比其他方法更为适用。举例来说,假设 SUT 是一款某个型号的码表。码表有这样一项需求:

  “REQ_INIT:After starting the stopwatch, the stopwatch shall display 0 minutes and 0 seconds (0:0)"(启动码表后,码表应显示 0 分 0 秒 (0:0))。

  为使用 IBM Rational Rhapsody 验证和测试此需求,您可以创建如图 3 所示的顺序图测试。首先,将此输入发送给 SUT:

  evPressKey(KeyVal=1)

  此输入表示码表已经启动。对于预期的反应,顺序图指定 SUT 应发出此事件:

  evShow(m=0,s=0,b=FALSE)

  表示码表应显示时间 0:0。

  图 3. 使用顺序图定义测试用例的行为