背景介绍

随着汽车行业的迅速发展,汽车的复杂程度不断增加,越来越多的汽车电子控制系统具有与安全相关的功能,因此对ECU的安全要求也越来越高。复杂的软件功能,将会带来大量的软件风险问题,如何保证软件的安全,保证软件做正确的事情,已经成为汽车行业迫切需要解决的问题。

ISO 26262(道路车辆功能安全标准)是以IEC 61508(电气/电子/可编程电子安全系统功能安全标准)为基础,为满足道路车辆上电子电气系统的特定需求而编写,发布于2011年。ISO 26262能够在管理、开发(软、硬件)、生产、运行、服务、报废等阶段,保证整个生命周期内的安全性。与此同时,ISO 26262也在不断地完善和发展。2018年12月,第二版的ISO 26262也已经对外发布,覆盖范围也已经从3.5吨以下的乘用车扩展到所有的车型,包括商用车和摩托车。

GB/T 34590(道路车辆功能安全国家标准)修改采用ISO 26262,适用于道路车辆上由电子、电气和软件组件组成的安全相关系统在安全生命周期内的所有活动,发布于2017年。目前,功能安全在中国已经得到普遍认可,并逐步进入大规模使用阶段。

本文旨在说明,如何使用TPT完成符合ISO 26262要求的基于模型设计(MBD,Model based Design)的测试。TPT可以支持主流的MBD开发工具Simulink、Targetlink、ASCET。

基于需求的测试

按照ISO 26262推荐的测试方法,基于需求的测试是ASIL-A到ASIL-D高度推荐的测试方法。并且在软件测试阶段,需要实现测试和需求的双向追溯。
TPT-Requirement能够通过简单的操作完成需求、测试用例、测试评估之间的追溯,并能够在报告中体现。
目前TPT-Requirement支持IBM DOORS、Polarion、EXCEL等需求工具。

图1 需求-测试用例链接关系

MiL测试

针对ISO 26262和MBD开发的流程,首先需要完成模型测试。TPT-MATLAB Platform、TPT-ASCET Platform可以通过加载被测模型,自动读取模型的接口和参数,自动生成模型测试环境。

测试用例生成

测试环境搭建完成之后,需要设计测试用例来对模型功能进行测试。ISO 26262推荐了下图2所示的测试用例生成方法。用户需要根据不同的ASIL等级,来明确需要采用的测试用例生成方法。

针对1b基于等价类测试用例生成和1c基于边界值测试用例生成,TPT提供自动化工具箱,可以根据用户设定,自动生成测试用例。

针对1d基于猜错的测试用例,需要结合企业的测试积累和工程师的测试经验,具体情况具体分析,编写测试用例。

图2 ISO26262测试用例生成方法

针对1a基于需求的测试用例生成方法是目前最常用也是最重要的测试用例生成方法。TPT提供了基于图形化的测试用例搭建方法,用以帮助用户实现复杂的测试场景,同时,也方便测试工程师之间互相评审测试用例。

图3 图形化测试用例

便捷的测试评估

在测试用例搭建完成之后,需要添加评估条件来对测试结果进行评估,TPT提供了GUI、python-script、m-script等手段来降低测试评估的难度,实现复杂测试要求下的评估,实现测试过程的自动化。

图4 测试评估界面

可自定义测试报告

TPT生成的报告中,包括了整个测试过程的所有信息,例如测试结果、覆盖度报告、需求报告等。同时,TPT提供可自定义的测试报告,用户可以将测试数据、图片、测试用例说明、测试数据曲线显示在测试报告之中,满足项目的实际需求。

图5 测试报告概览

覆盖度

需求覆盖度

在功能测试中,往往需要根据功能需求来设计测试用例。TPT提供了Requirement Coverage Report,涵盖需求的覆盖情况以及每条需求的测试结果。在测试过程中,需要保证需求覆盖度为100%。

图6 测试需求报告

结构覆盖度

在ISO 26262中,提到了结构覆盖度的概念,并通过覆盖度来评定测试完成度和未测试的功能。针对模型测试,在ISO 26262中列举了如下三种结构覆盖度标准,不同的ASIL等级对覆盖度有不同的要求,ASIL-C、ASIL-D高度推荐MC/DC覆盖度标准。

  • Statement coverage
  • Branch coverage
  • MC/DC coverage

在TPT-MATLAB Platform可以统计测试用例所能达到的覆盖度,借助生成的报告,可以直观地发现未覆盖的路径,从而可以补充测试用例,来提升覆盖度指标。

针对模型的结构覆盖度,TPT提供TASMO工具箱,能够分析模型结构,自动生成结构化的测试用例,来测试模型是否存在不可达分支,帮助开发人员在早期发现问题。

Back-to-Back Testing

因为软件在不同的运行环境当中,会存在因为运行环境或者数据类型定义而引起的软件运行错误。因此,ISO 26262罗列了如下的几种不同测试阶段:
MiL ➔ SiL ➔ PiL ➔ HiL
ISO 26262高度推荐在ASIL-C、ASIL-D,采用Back-to-Back测试。

  • 针对SiL测试,TPT可以调用Simulink来根据客户配置生成代码,然后将其封装成dll文件,进行测试。运行时,首先运行MiL阶段的测试用例,记录测试结果,再运行SiL阶段的测试用例,将SiL的执行结果与MiL阶段进行对比。

图7 背靠背测试评估对比

  • 针对PiL测试,TPT目前支持Lauterbach和PLS UDE两款调试器,可以对软件的执行时间和资源占用情况进行测试。
  • 针对HiL测试,TPT支持目前主流的HiL平台,比如dSPACE、ETAS、Speedgoat、NI Veristand、Concurrent等平台。

Tool Qualification

ISO 26262-8指定了支持过程的需求,包括配置管理、版本管理、报告等,TPT可以通过对于SVN的支持和自身的管理功能,来帮助实现如上要求。

这一部分也规定了需要对项目使用工具进行置信度等级评定。这里需要强调的是,用户需要结合自己的具体项目来对工具的置信度等级进行评定,而非软件提供商。

TPT提供了Qualification Kit,里面包括TPT典型使用,验证方法,置信度等级的确认方法等。目前,TPT通过了TÜV 的认证,可以满足ASIL A到ASIL-D等级对软件的测试要求。

正如上文所述,TPT的使用者需要在具体的项目中来确定工具的置信度等级,鉴于TPT强大的功能,典型的使用方法仅仅是TPT部分功能。如果用户的使用超出了常规使用,PikeTec也会提供额外的支持来帮助用户确定实际项目的置信度等级,协助出具Qualification报告。

图8 项目认证流程

目前,已经有全球领先的汽车整车厂和零部件供应商,利用TPT Qualification Kit完成了项目的ISO 26262认证工作。

图9 TPT Qualification Kit客户

关于PikeTec

PikeTec公司是全球知名的基于模型的嵌入式系统测试工具TPT的软件供应商,总部位于德国柏林,其创始人均在戴姆勒公司拥有十多年的软件测试经验。TPT产品曾被评为2005年戴姆勒最佳创新软件,并在戴姆勒、大众、奥迪、保时捷、通用等汽车整车厂及多家零部件企业(博世、大陆、海拉等)中得到广泛应用,如戴姆勒的多个车型的混合动力汽车的动力总成、电池管理控制器的测试,博世的汽油机和柴油机控制系统测试等。

北汇信息作为PikeTec的中国合作伙伴,将帮助中国客户提升嵌入式控制系统的开发效率。

参考文献
[1] [ISO 26262] ISO 26262:2011-11: Road vehicles - Functional safety. International Standard, Part 1-9, 15.11.2011
[2] [TPT Qualification] TPT - Qualification in accordance with ISO 26262, Analysis and Qualification measures. Version 1.6, PikeTec, March 2017

如何完成符合ISO 26262要求的基于模型设计(MBD)的测试的更多相关文章

  1. 功能更新 | medini analyze — 符合ISO 26262的功能安全平台工具

            汽车电子电气系统的功能安全随着智能驾驶.新能源等新兴技术的发展而愈发受到重视.在国际功能安全标准ISO 26262的落地过程中遇到了很多的棘手问题:如何正确而有效地实施HARA以得到合 ...

  2. 汽车芯片如何高效符合ISO 26262功能安全标准

      汽车芯片和集成电路(IC)是高级驾驶员辅助系统(advanced driver assistance systems-ADAS)和联网自动驾驶汽车(connected autonomous veh ...

  3. 保证软件开发过程遵循ISO 26262功能安全标准的十个主要进阶步骤

    保证软件开发过程遵循ISO 26262功能安全标准的十个主要进阶步骤 为保障汽车软件质量,使软件开发符合ISO 26262功能安全标准,需要我们对开发流程做出改进,并与2018年的更新同步. 本视频课 ...

  4. 基于soapUI构建WebService测试框架

    基于soapUI构建WebService测试框架 http://www.docin.com/p-775523285.html

  5. 强大的API测试工具Hitchhiker v0.9 基于UI的断言测试,回顾2017

    v0.9是Hitchhiker在2017农历年的最后一个版本,而起点正是刚过完2016农历年,农历2018即将到来,一年轮回,今天写点东西稍微回顾下hitchhiker的2017. 先还是说v0.9, ...

  6. ELM:ELM基于近红外光谱的汽油测试集辛烷值含量预测结果对比—Jason niu

    %ELM:ELM基于近红外光谱的汽油测试集辛烷值含量预测结果对比—Jason niu load spectra_data.mat temp = randperm(size(NIR,1)); P_tra ...

  7. 转:基于Jmeter的MQTT测试插件

    基于Jmeter的MQTT测试插件-上 1. Jmeter插件简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.下载 用于对软件做压力测试,它最初被设计用于Web应用 ...

  8. 《软件测试自动化之道》读书笔记 之 基于反射的UI测试

    <软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  ...

  9. 《软件测试自动化之道》读书笔记 之 基于Windows的UI测试

    <软件测试自动化之道>读书笔记 之 基于Windows的UI测试 2014-09-25 测试自动化程序的任务待测程序测试程序  启动待测程序  获得待测程序主窗体的句柄  获得有名字控件的 ...

随机推荐

  1. [bzoj1109]堆积木

    用f[i]表示前i个数,i必须被贡献的答案,考虑转移,枚举下一个被贡献的数j,那么j需要满足:1.$j<i$:2.$a[j]<a[i]$:3.$a[i]-(i-j+1)\le a[j]$, ...

  2. git分支切换的一些问题

    关于git切换分支后该分支的修改会在另一个分支里面一起修改的问题 修改分支后导致稳定版的主分支里面的文件连带修改. 原因:切换分支前原分支没有提交,导致新建的文件或者文件夹,没有纳入版本管理,所以会被 ...

  3. Linux查看进程

    1.ps 有很多参数,不需要全部记住,只需要记住最有用的那些参数. unix风格的参数 比如:ps -ef查看系统上运行的所有进程 ps -l 会产生一个长格式的输出   >UID:启动这些进程 ...

  4. jmeter链接数据库,信息全部填写正确,运行之后没有结果

    之前遇到一个很苦恼的问题,jmeter链接数据库,数据库填写的资料全部都没有问题,在其他电脑jmeter上都可以正常链接,但是在我的电脑上运行却总是不出结果, 用mysql链接数据库也一切正常,一直找 ...

  5. python检验代理ip是否可用、代理ip检验

    python检验代理ip是否可用.代理ip检验 安装相关模块: pip install requests 验证代理IP是否可用脚本: import random import telnetlib im ...

  6. 毕业设计之zabbix集合

    lnmp环境请查看https://www.cnblogs.com/betterquan/p/12285956.html 但是!!!注意php的编译: https://www.zabbix.com/do ...

  7. account, accomplish, accumulate

    account account从词源和count(数数)有关,和computer也有点关系.calculate则和'stone used in counting'有关.先看两个汉语的例子:1. 回头再 ...

  8. Fllin(七)【Flink CDC实践】

    目录 FlinkCDC 1.简介 2.依赖 3.flink stream api 4.flink sql 5.自定义反序列化器 6.打包测试 FlinkCDC 1.简介 CDC是Change Data ...

  9. 零基础学习java------day17------缓冲字节流,转换字节流,简化流,缓冲字符流,序列化和对象流

    1. 缓冲字节流 缓冲区:缓冲区实质上是一个数组.通常它是一个字节数组,但是也可以使用其他种类的数组.但是一个缓冲区不 仅仅 是一个数组.缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读/写进程 ...

  10. 手淘lib-flexible布局适配方案

    前置知识:什么是rem CSS3新增的一个相对单位rem(root em,根em).rem是相对于根节点(或者是html节点).如果根节点设置了font-size:10px;那么font-size:1 ...