夜雨聆风学习资料网

ARTICLE · 1129968

ISO 29119 导读:软件测试国际标准怎么用到 ADAS

ISO 29119 导读:软件测试国际标准怎么用到 ADAS

一、29119 系列的用途划分

ISO/IEC/IEEE 29119 是通用软件测试标准,它规定测试方法与文档,不规定安全等级与功能性能。
这句话决定了它的使用位置。功能安全标准回答「要安全到什么程度」,29119 回答「测试怎么做、文档怎么写」。你在做 ADAS 域的测试体系建设时,29119 提供的是可复用的过程骨架与文档模板,不是验收门槛。把它当成功能标准的替代品,是最常见的一类定位错误。

(一)现行版本与发布节点

五个部分的版本年份并不一致,引用时必须逐个写明年份。
部分
中文名称
现行版本
发布日期
解决的问题
29119-1
概念与定义(General concepts)
2022 版
2022-02-04
统一测试术语与概念模型
29119-2
测试过程(Test processes)
2021 版
2021-10-28
定义组织级、管理级、执行级三层测试过程
29119-3
测试文档(Test documentation)
2021 版
2021-10-28
给出测试文档模板与公共信息项
29119-4
测试技术(Test techniques)
2021 版
2021-10-28
给出三大类测试设计技术与覆盖度度量
29119-5
关键字驱动测试(Keyword-driven testing)
2024 版
2024-12-19
自动化测试的脚本组织方式
除五个正式部分外,系列还有三份技术报告:ISO/IEC TR 29119-6:2021(2021-07-15 发布,敏捷项目中的应用指南)、ISO/IEC TR 29119-11:2020(2020-11-27 发布,基于人工智能的系统测试指南)、ISO/IEC TR 29119-13:2022(2022-11-18 发布,生物特征识别系统测试)。
技术报告是资料性文件,不作符合性依据。其中 TR 29119-11 对感知算法测试有直接参考价值,但你引用时必须与正式部分区分开,写成「参考」而不是「依据」。
国际标准没有「实施日期」这个字段,只有发布日期,这一点与国标不同。国内文件里如果出现「ISO/IEC/IEEE 29119-2:2021 于某年某月实施」的写法,来源本身就可疑。

(二)四个部分解决四个不同问题

四个部分之间是「术语 → 过程 → 文档 → 技术」的承载关系,不按这个顺序读会重复建立概念。
29119-1 定术语。它给出测试、测试项、测试依据、测试覆盖项、测试用例等基础概念的定义。后续三个部分的所有条目的含义都由它锁定。
29119-2 定过程。它给出三层测试过程模型,回答「测试活动由谁在什么层级开展、先后关系是什么」。
29119-3 定文档。它的模板与 29119-2 的过程一一对应,回答「每个过程的输出长什么样、必须包含哪些公共信息项」。
29119-4 定技术。它回答「测试用例按什么方法推导出来、覆盖度怎么算」。
四个部分该按什么顺序读?答案是先读 1 定概念、再读 2 定过程、然后按需读 3 与 4。直接跳到 29119-4 挑技术的团队,通常会在测试文档的字段口径上反复返工。

(三)系列的前身与取代关系

29119 系列取代了此前三套独立标准,老模板不能再作为现行依据。
IEEE 829(测试文档标准)由 29119-3 取代,模板结构已按测试模型重新组织。
IEEE 1008(单元测试)与BS 7925-1(词汇)、BS 7925-2(软件组件测试)由 29119 系列吸收。
29119-4 的附录给出与 BS 7925-2 的映射关系,用于存量文件的平滑迁移。
你的团队会遇到一种情形:测试规范模板沿用 IEEE 829 的章节结构,文件头又写着「依据 ISO 29119-3」。两套结构并不一致,评估或评审时会被要求说明依据版本,这类问题在 ASPICE 评估的 SUP.1 过程里会直接暴露。

二、Part 2 测试过程:唯一与 ASPICE 直接对话的部分

29119-2 定义测试过程的内容结构,它是 ASPICE 验证类过程活动描述的上游方法来源。

(一)三层过程模型与八个过程

三层结构的划分依据是管理范围,不是测试阶段。
层级
过程
条款
主要产出
组织级
组织级测试过程
第 6 章
组织级测试方针、组织级测试策略
管理级
测试计划过程
7.2
测试计划
管理级
测试监控与控制过程
7.3
测试状态报告
管理级
测试完成过程
7.4
测试完成报告
执行级
测试设计与实现过程
8.2
测试模型规范、测试用例规范、测试规程规范
执行级
测试环境建立与维护过程
8.3
测试环境需求、测试环境就绪报告
执行级
测试执行过程
8.4
实际结果与测试结果、测试执行日志
执行级
测试事件报告过程
8.5
测试事件报告
组织级解决「公司层面测试怎么管」,管理级解决「这个项目怎么管」,执行级解决「这一次测试怎么做」。三个层级不是三个阶段,执行级过程在项目里循环往复地跑。

(二)与 ASPICE 验证过程的分工

29119-2 定义过程的内容,ASPICE 评估过程的能力,两者叠加使用而不是二选一。
ASPICE 4.0 的五个验证类过程共用一套五步骨架,讲的是「要交哪些信息项证据」;29119-2 讲的是「这些证据背后的活动应该怎么组织」。同一次台架或场地测试,在 ASPICE 里体现为 03-50 验证措施数据与 15-52 验证结果,在 29119-3 里体现为实际结果与测试结果、测试执行日志、测试事件报告。
对应关系可以这样理解:29119-2 的 8.2 测试设计与实现过程,供给了 ASPICE 的 08-60 验证措施与 08-58 验证措施选择集;8.4 测试执行过程与 8.5 测试事件报告过程,供给了 03-50 与 15-52。你在准备评估样本时,如果测试规程、执行日志、事件报告三件齐备,8.2 到 8.5 的链条自然完整;缺了执行日志,29119-2 的执行过程就落不了地。

(三)测试模型替代测试条件

2021 版用测试模型替代 2013 版的测试条件,测试设计的可追溯链条由四步收敛为三步。
2013 版要求先识别测试条件、再映射到测试覆盖项,一个测试条件常对应多个覆盖项,链条不够清晰。2021 版以测试模型(状态图、判定表、等价类划分)为起点,从模型直接识别测试覆盖项,再派生测试用例与测试规程。你在设计 AEB 场景用例时,如果把「场景要素组合表」直接作为测试模型,覆盖项的边界会立刻清晰:模型里每一个等价类区间、每一条状态转换,都是一个可点数的覆盖项。

三、Part 3 与 Part 4:文档模板与测试技术

这两部分是本系列在 ADAS 项目里落地最直接的两个部分,一个管文件长什么样,一个管用例怎么推出来。

(一)Part 3 的文档清单

29119-3 按三层过程组织文档模板,模板与过程一一对应,不做跨层合并。
层级
文档
条款
组织级
测试方针、组织级测试实践
6.2、6.3
管理级
测试计划(项目级、层级级、类型级)
7.2
管理级
测试状态报告
7.3
管理级
测试完成报告
7.4
执行级
测试模型规范
8.2
执行级
测试用例规范
8.3
执行级
测试规程规范
8.4
执行级
测试数据需求、测试环境需求
8.5、8.6
执行级
测试数据就绪报告、测试环境就绪报告
8.7、8.8
执行级
实际结果与测试结果、测试执行日志
8.9、8.10
执行级
测试事件报告
8.11
标准同时规定了公共信息项,包括唯一标识、发布组织、批准人、变更历史、状态、范围、引用文件、术语表。这几项是评估与评审最先抽查的位置,测试报告缺唯一标识或缺批准状态,等于把受控性直接暴露出去。
测试计划的规范内容可以归纳为十三块:测试上下文、测试沟通、风险登记表、测试策略、测试交付物、测试设计技术、完成准则(入口与出口)、度量、测试数据与环境、重测与回归、暂停与恢复、人员、进度。你在写 ADAS 项目的测试计划时,最容易缺失的是风险登记表与暂停恢复准则,这两项恰恰是评审关注的重点。

(二)Part 4 的三大类测试技术

29119-4 把测试设计技术分为基于规格说明、基于结构、基于经验三类,三类的测试依据各不相同。
类别
测试依据
代表技术
覆盖度度量
主要适用层级
基于规格说明
需求、规格、模型
等价类划分、边界值分析、分类树法、判定表、状态转换、语法测试、组合技术、蜕变测试、基于需求的测试、场景测试、随机测试
等价类覆盖度、边界值覆盖度、判定规则覆盖度
系统测试、验收测试
基于结构
源代码、控制流
语句测试、分支测试、判定测试、分支条件测试、修正条件判定覆盖(MC/DC)、数据流测试
语句覆盖度、分支覆盖度、判定覆盖度
单元测试、集成测试
基于经验
测试人员经验、缺陷清单
错误推测
无标准化度量
任意阶段,作补充
标准对各项技术给出统一的覆盖度计算式:C=(N/T)×100%,其中 N 为已执行的覆盖项数,T 为覆盖项总数,不可执行的覆盖项可以排除。三项基于结构的技术与 29119-4 的度量口径,和 GB/T 34590.6—2022 第 9.4.4 条结构覆盖率的推荐度要求可以并行使用,但两者回答的问题不同:前者给算法,后者给该做到多少。

(三)与 GB/T 34590.4—2022 用例导出方法的对应关系

两套方法的清单高度重叠,但覆盖要求的强制程度完全不同。
GB/T 34590.4—2022 第 7.4.1.6 条(表 3)列出 9 项测试用例导出方法,与 29119-4 的技术分类可以做如下映射:
GB/T 34590.4—2022 表 3 用例导出方法
ISO/IEC/IEEE 29119-4 对应技术
需求分析
基于规格说明(基于需求的测试)
内外接口分析
基于规格说明(基于需求的测试)
等价类
基于规格说明(等价类划分)
边界值
基于规格说明(边界值分析)
错误推测
基于经验(错误推测)
功能依赖
基于规格说明(判定表测试、状态转换测试)
共因限制条件与依赖失效源
无直接对应,见 GB/T 34590.9—2022 第 7 章
环境与操作场景
基于规格说明(场景测试)
现场经验
基于经验
这张表的用法是补位:29119-4 给的是技术全集与度量算法,GB/T 34590.4—2022 给的是在某个 ASIL 等级下哪些方法属于高度推荐、哪些属于推荐。并非两套清单可以互相替代,而是 29119-4 决定技术怎么用,GB/T 34590.4 决定该用哪几种、要不要给理由。

四、工程判断难点:覆盖度公式在场景测试里失效

覆盖度公式的适用前提是覆盖项可穷举,场景参数空间不具备这个前提。

(一)一个真实的工程判断难点

你在设计 AEB 城市场景的测试充分性论证时,会遇到一个直接冲突:29119-4 要求给出覆盖度度量,而场景要素参数化之后覆盖项总数无法收敛。以纵向场景为例,自车速度取 10~80km/h、目标车速度取 0~60km/h、相对距离取 5~150m、路面附着系数取 0.3~0.9、光照取 6 档,仅这五个维度按 1km/h、1m、0.1、1 档离散,组合数已达 10⁷ 量级;再叠加目标物类型与切入角度,穷举不可行。此时若直接套用 C=(N/T)×100%,分母只能是从中截取的有限集,得出的百分比不具备论证价值。可行的做法是把覆盖度论证拆成两层:第一层用 29119-4 的技术清单证明方法完备,说明等价类划分、边界值分析、判定表、状态转换在场景模型上都已使用;第二层用风险排序证明高覆盖贡献场景 100% 执行完毕。把「覆盖度百分比」换成「高风险场景全覆盖」的陈述,论证才站得住。

(二)三条使用边界

29119 的三条边界决定了它不能单独支撑安全论证。
不含危害分析与 ASIL。安全目标与汽车安全完整性等级(ASIL)由 GB/T 34590.3—2022 第 6 章、第 7 章确定,29119 不涉及。
不含场景与运行设计域。场景分类与运行设计域(ODD)规范分别由 ISO 34504:2024 与 ISO 34503:2023 规定,29119 只是把场景测试列为一种技术。
不含执行环境与目标物。目标物规格由 ISO 19206 系列规定,试验布置与判定准则由功能标准规定,29119 不涉及。

(三)没有等效中国国家标准

ASPICE 与 ISO 29119 都无等效国标,汽车行业直接采用国际版本。
你在国内评审场合提交测试方案时,引用 29119 需要额外说明采用理由,标准写法是「企业测试体系依据 ISO/IEC/IEEE 29119-2:2021 建立,国内暂无对应国家标准,故直接引用国际版本」。不要把 GB/T 34590 的国标逻辑套到这条线上,更不要虚构对应编号。

五、四个容易踩的坑

测试方法线的失误集中在定位、替代、模板三方与覆盖度四处。
坑一:把 29119 当成汽车行业标准。并非 29119 规定 ADAS 功能性能与安全等级,而是它只规定测试过程、测试文档与测试设计技术。
坑二:把 29119-2 与 ASPICE 验证过程当成二选一。并非两者内容重复可互相替代,而是 29119-2 提供过程内容、ASPICE 提供能力判据,评估时两套口径都要能对上。
坑三:沿用 IEEE 829 模板并声称符合 29119-3。并非两套模板章节结构兼容,而是 29119-3 已按测试模型重新组织文档结构,并以测试用例规范、测试规程规范替代旧的层次划分。
坑四:用覆盖度百分比替代安全论证。并非覆盖度越高残余风险越低,而是场景空间不可穷举时,覆盖度只反映抽样比例,不反映风险覆盖。

相关学习资料