(1) 概述 如下图所示,ISO26262:2018 Part 6-10是”软件集成和集成验证”。其对应的V模型左边的活动是”Part 6-7软件架构设计”。
ISO26262:2018标准中谈到的与软件集成测试相关的“测试方法”、“测试用例设计方法”、“结构化覆盖度方法”等内容,是本文阐述的主要内容。 说明:本公众号在如下有关软件单元测试的文章中,已经介绍的一些测试相关的内容,在本文中不再进行赘述。 (2) 测试方法
用于确认'集成后的软件”是否实现了分配到“软件架构(软件组件)层面的软件需求”,也就是验证”集成后的软件”是否符合”软件架构设计”。 ASPICE的”SWE.5 软件集成与集成测试”中,提示了软件集成测试的如下测试内容,读者可借鉴下:
接口测试的是为了验证'软件组件之间的接口”、以及”软硬件接口”。 软件集成测试时,验证'集成后的软件”是否符合”软硬件接口设计”,是关注的“软件的接口(与硬件的接口)”。 在系统集成测试(ISO 26262 Part4-7)时,也会验证”软硬件接口”,但此时是关注的软件与硬件之间的接口。
通过注入故障的方式,用于验证在软件架构设计时所设计的”安全机制”的有效性。
用于确认在最坏情况下,资源(CPU时间、ROM、RAM等)的使用情况
是在基于模型开发的场景下,用于确认模型与代码之间的一致性。关于背靠背测试,推荐大家阅读老董的如下两篇文章: (3) 测试用例设计方法 测试用例设计方法的详细说明,参照本公众号中庞伟老师的文章: (4) 结构化覆盖度 如上表格中的结构化覆盖度指标是对组件间”交互”的覆盖度要求。 函数覆盖:每一个函数(接口)被覆盖到。 调用覆盖:组件之间的每一次”调用”被覆盖到。 示例: 下图是软件架构设计中,三个软件组件之间交互的设计: “函数覆盖”的目标是覆盖Error_Handle_1和Error_Handle_2提供的2个接口: “调用覆盖”的目标是覆盖Temp_Check与Error_Handle_1/Error_Handle_2之间的每次调用: (5) 示例 接下来举一个例子,综合考虑:
说明:
(5.1)软件架构设计 (5.2) 需求分析的测试用例设计方法: (考虑“调用覆盖度') 如下图所示,分析组件之间的调用关系,其中①②④是涉及到组件之间的交互。 (5.3) 等价类分析的测试用例设计方法: 根据输入的值域范围,构造等价类,在每个等价类中,选择有代表性的值 注:在选择代表性值时,可尽量采用与'需求分析方法'相同的值,以减少不必要的重复的测试用例。 (5.4) 边界值分析的测试用例设计方法: 基于'等价类分析'中识别的等价类,分析每个等价类的上下边界。之后在每个边界点识别:边界值、比边界略大值、比边界略小值。 至此,软件集成测试的测试用例设计就完成了。 |
|