hirain123的个人空间 https://blog.eetop.cn/1720296 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

符合ISO 26262标准的模型验证技术

已有 1175 次阅读| 2020-5-21 13:29 |个人分类:研发工具|系统分类:硬件设计| ISO, 26262

 

        2020年,疫情影响着我们每个人的生活。
        这一年,终将被历史记住。
        这一年,每个人戴上防护口罩,保护自己和家国。
        这一年,很多人参与线上学习,get新技能为工作加油。
        这一年,蛮多人关注汽车ISO26262,坚定践行道路安全卫士。
        汽车行业,越来越多企业取得了ISO26262流程认证、产品认证。随着软件功能比重加大,符合ISO26262标准的软件开发过程,借助MBD技术构建模型,软件的验证当然也要考虑模型的静态验证(基于模型的规范检查)、模型的动态验证(基于模型的动态测试)。
        这一篇,我们介绍下,符合ISO26262标准软件要求,采用MBD开发方式,如何进行模型的验证,如何做好软件的“防护服”或“防护口罩”,进而提升软件安全性。与大家分享结合模型形式的ISO 26262软件验证要求、验证流程及实践。

软件验证“口罩防护”,功能安全“绿码通行”

ISO 26262 软件验证要求

软件开发启动阶段建模指南要求
——摘自ISO 26262-6:2018,Table1
•  1a执行低复杂性:通过多个度量指标,来度量模型的复杂性,比如:
    ♦  Number of subsystems(子系统个数)
    ♦  Number of blocks(模块个数)
    ♦  Number of linked library(链接库的个数)
    ♦  Number of charts(Chart个数)
    ♦  Number of all objects in the chart(Chart中对象个数)
    ♦  Number of states(状态个数)
    ♦  Number of transitions(转移个数)
    ♦  Number of MATLAB function(ML函数个数)
    ♦  Number of stateflow code lines(SF代码行数)
    ♦  Effective lines of MATLAB function code metric(ML代码有效行数)
    ♦  Subsystem depth(子系统深度)
    ♦  Data and structure layer separation(数据和结构分层)
    ♦  Cyclomatic Complexity (Local, Global)(圈复杂度)
        其中,圈复杂度是备受企业关注的模型度量指标,它表征着模型中独立路径的个数。该指标的阈值约束,能够指导模型优化,有利于降低模型的负载率。
•  1b使用语言子集、1c使用强数据类型、并发(2018版新增)等其他要求,更多细节展示,请关注5月21日在线研讨会,将为大家一一阐述。

ISO 26262 软件验证流程

        软件验证分为静态验证、动态验证2个方面,我们重点来看看如何对模型进行静态验证、动态验证。
•  模型静态验证,概要理解为模型规范检查。
    ♦  模型静态验证要求:
静态验证方法
——摘自ISO 26262-6:2018,Table7
        1b结对编程(2018版新增),可以通过2人组合方式火花碰撞解决潜在问题。
        1d半形式验证,通过语法分析,借助自动化工具,快速进行模型规范检查,修改。更多细节展示,请关注5月21日在线研讨会,将为大家一一阐述。
    ♦  模型静态验证工作流程:
Step1:定建模规范集合,借助企业经验/行业标准规范/第三方推荐,定制出符合项目/产品要求的建模规范。行业标准规范,比如MAAB/HIS/MISAR_AC_SLSF等。
Step2:搭建建模规范自动化工具,把Step1中定义的建模规范集合,通过静态的模型语法分析进行自动化分析。规范检查工具,比如用户自定义开发脚本/第三方专业工具如MI等。
Step3:发布及应用,导出模型规范检查报告。
Step4:根据报告追溯模型不符合规范之处,变更模型。
Step5:重复Step2,最终按Step3终版报告。
模型静态验证—工作流
•  动态验证方面,即我们经常会做的一项活动,动态测试。
    ♦  模型动态验证要求:以模型为测试对象,通过测试要求、测试方法、测试用例、覆盖率要求进行一些约束。以单元验证为例,需要满足以下要求。
动态验证方法
——摘自ISO 26262-6:2018,Table7
        1n模型代码间的背靠背测试,模型作为一个“背”,模型自动生成的代码作为一个“背”,给与两个同样的激励,来对比输出结果。
        其他方面,1j基于需求测试、1k接口测试、1l故障注入测试 等,更多细节展示,请关注5月21日在线研讨会,将为大家一一阐述。
动态验证生成测试用例方法
——摘自ISO 26262-6:2018,Table8
        模型动态验证,需要通过一定的方法,来分析test case。比如1c边界值法,可以根据需求的边界,比如有上边界a、下边界b,一般可以取:下边界略小、下边界、下边界略大、边界间普通值、上边界略小、上边界、上边界略大值,生成test case。
        其他方面,1a基于需求分析、1b等价类生成与分析等,更多细节展示,请关注5月21日在线研讨会,将为大家一一阐述。
结构覆盖率要求
——摘自ISO 26262-6:2018,Table9
        评价动态验证是否充分,首要满足需求覆盖率。其次,要考虑结构覆盖率指标。如不满足,需要提供充分的证据来说明达不到覆盖率的原因。
        1b分支覆盖,结合模型来理解,也叫判定覆盖(DC),使得模型中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。以下图模型为例:
分析模型结构覆盖率
        可以通过以下测试用例,达到分支覆盖率要求:
测试用例
        其他方面,1a 语句覆盖、1c MC/DC覆盖等,更多细节展示,请关注5月21日在线研讨会,将为大家一一阐述。
    ♦  模型动态验证工作流程:
Step1:制定测试计划、策略
Step2:编写测试用例
Step3:构建测试工程
Step4:导出测试报告(问题清单)
Step5:根据报告/问题修改模型
Step5:重复Step2(补充测试用例)- Step5
Step6:导出最终测试报告
        在模型动态验证过程中,可以选择不同的测试环境,来执行测试。
选择不同的模型动态验证环境

ISO 26262 软件验证实践

        在此,也结合ISO 26262 的V流程,小编也给大家分享下模型静态验证 模型动态验证的项目实践总览,欢迎大家围观。
•  帮助用户构建模型静态验证规范集合及辅助环境:
模型静态验证规范集合及辅助环境
模型静态验证—工程化
•  帮助用户安全功能安全要求,构建一体化基于模型动态验证(动态测试)平台:
符合功能安全的一体化基于模型动态验证(动态测试)平台

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 11

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 11

    粉丝
  • 0

    好友
  • 4

    获赞
  • 18

    评论
  • 20147

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 04:38 , Processed in 0.017816 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部