如何做好软件的“防护服”或“防护口罩”:符合 ISO26262要求MBD开发方式如何进行模型验证
| 注明:本图与文无关,转摘自经纬恒润官网,仅供学习参考!
汽车行业, 越来越多企业取得了 ISO26262 流程认证、产品认证。随着软件功能比重加大, 符合 ISO26262 标准的软件开发过程, 借助MBD 技术构建模型, 软件的验证当然也要 考虑模型的静态验证(基于模型的规范检查) 、 模型的动态验证(基于模型的动态测试) 。
本篇, 我们介绍下符合 ISO26262 标准软件要求, 采用 MBD 开发方式, 如何进行 模型的验证, 如何做好软件的“防护服”或“防护口罩”, 进而提升软件安全性。与大家分享结 合模型形式的 ISO 26262 软件验证要求、 验证流程及实践。
ISO 26262 软件验证要求
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 使用强数据类型、 并发(201 8 版新增) 等其他要求。
ISO 26262 软件验证流程
软件验证分为静态验证、 动态验证 2 个方面, 我们重点来看看如何对模型进行静态验 证、 动态验证。
? 模型静态验证, 概要理解为模型规范检查。
? 模型静态验证要求:
1b 结对编程(2018 版新增) , 可以通过 2 人组合方式火花碰撞解决潜在问题。1d 半形式验证, 通过语法分析, 借助自动化工具, 快速进行模型规范检查, 修改。
? 模型静态验证工作流程:
Step1:定建模规范集合, 借助企业经验/行业标准规范/第三方推荐, 定制出符合项目/ 产品要求的建模规范。行业标准规范, 比如 MAAB/HIS/MISAR_AC_SLSF 等。
Step2:搭建建模规范自动化工具, 把 Step1 中定义的建模规范集合, 通过静态的模型 语法分析进行自动化分析。规范检查工具, 比如用户自定义开发脚本/第三方专业工具如 MI 等。
Step3:发布及应用, 导出模型规范检查报告。
Step4:根据报告追溯模型不符合规范之处, 变更模型。
Step5:重复 Step2, 最终按 Step3 终版报告。
? 动态验证方面, 即我们经常会做的一项活动, 动态测试。
? 模型动态验证要求:以模型为测试对象, 通过测试要求、 测试方法、 测试用例、 覆盖率要求进行一些约束。以单元验证为例, 需要满足以下要求。
1n 模型代码间的背靠背测试, 模型作为一个“背”, 模型自动生成的代码作为一个“背”, 给与两个同样的激励, 来对比输出结果。
其他方面, 1j 基于需求测试、 1k 接口测试、 1l 故障注入测试 等。
模型动态验证, 需要通过一定的方法, 来分析 test case。比如 1 c 边界值法, 可以根据 需求的边界, 比如有上边界 a、 下边界 b, 一般可以取:下边界略小、 下边界、 下边界略大、 边界间普通值、 上边界略小、 上边界、 上边界略大值, 生成 test case。其他方面, 1a 基于需求分析、 1b 等价类生成与分析等。
评价动态验证是否充分, 首要满足需求覆盖率。其次, 要考虑结构覆盖率指标。如不满 足, 需要提供充分的证据来说明达不到覆盖率的原因。
1b 分支覆盖, 结合模型来理解, 也叫判定覆盖(DC) , 使得模型中每个判断的取真分 支和取假分支至少经历一次, 即判断的真假均曾被满足。以下图模型为例:
其他方面, 1 a 语句覆盖、 1c MC/DC 覆盖等。
? 模型动态验证工作流程:
Step1 :制定测试计划、 策略
Step2:编写测试用例
Step3:构建测试工程
Step4:导出测试报告(问题清单)
Step5:根据报告/问题修改模型
Step5:重复 Step2(补充测试用例) - Step5
Step6:导出最终测试报告
在模型动态验证过程中, 可以选择不同的测试环境, 来执行测试。
ISO 26262 软件验证实践
在此, 也结合 ISO 26262 的 V 流程, 小编也给大家分享下模型静态验证+模型动态验 证的项目实践总览, 欢迎大家围观。
? 帮助用户构建模型静态验证规范集合及辅助环境:
声明:本信息来自互联网转载,本站仅仅分享信息不保证真实性、实时性、有效性、准确性,信息仅供参考。建议大家不信遥不传遥。若有来源标注错误或侵犯了您的合法权益又或者信息不真实等情况请发邮件到2435147949@qq.com 告知,本站会第一时间删除!谢谢!