第四章:测试策略与计划:制定符合ASPICE要求的测试策略,编写测试计划

好,我们进入第四章。这一章,说白了就是整个测试工作的“总指挥图”。

很多团队一上来就写测试用例,结果测到一半发现资源不够、环境没有、需求变了。嗯,这就是典型的“没有策略,只有蛮干”。

ASPICE 对测试策略和计划的要求,其实就一句话:你得想清楚再动手,而且要把怎么想的写下来

4.1 测试策略:你的“作战地图”

测试策略不是一张表格,而是一套决策逻辑。它回答三个问题:

  • 测什么?(范围)
  • 怎么测?(方法)
  • 测到什么程度算够?(退出准则)

我个人习惯,在项目启动的第一周,就把测试策略文档的骨架搭好。哪怕内容先空着,框架必须立住。

4.1.1 测试层次的划分

ASPICE 明确要求测试要分层。我见过最典型的错误,就是“单元测试当集成测试做,集成测试当系统测试做”。

测试层次 测试对象 典型方法 ASPICE 关联过程
单元测试 单个函数/模块 白盒测试、MC/DC覆盖 SWE.6
集成测试 模块间接口 接口测试、桩/驱动 SWE.7
系统测试 完整ECU/系统 黑盒测试、功能测试 SWE.8
验收测试 客户需求 场景测试、实车测试 VAL.1

这里有个坑。我曾经在一个项目中,客户要求“所有单元测试必须达到100%语句覆盖”。听起来很严格对吧?但实际上一测才发现,很多底层驱动代码根本没法做MC/DC覆盖——因为硬件寄存器读操作是“读一次变一次”。

⚠️ 注意: 测试策略里必须写明“覆盖率的例外处理规则”。比如:对硬件抽象层代码,允许使用“需求-测试用例”双向追溯代替覆盖率指标。

4.1.2 测试方法的选型

测试方法不是越高级越好,而是越匹配越好。我一般按这个优先级来选:

  1. 基于需求的测试(必须做,ASPICE 硬性要求)
  2. 等价类划分 + 边界值分析(对付数值型输入,效率最高)
  3. 状态转换测试(对付有状态机的模块,比如CAN协议栈)
  4. 决策表测试(对付多条件组合逻辑)

你想想看,如果一个模块有5个布尔输入,用穷举法要测32种组合。但用决策表,可能只需要8-12条用例。这就是策略的价值。

4.2 测试计划:把策略变成可执行的“日程表”

测试计划不是写给别人看的,是给自己用的。ASPICE 要求测试计划至少包含:

  • 测试范围与不测范围
  • 测试环境与工具链
  • 资源分配(谁、什么时候、做什么)
  • 风险与缓解措施
  • 里程碑与交付物

4.2.1 测试环境规划——最容易翻车的地方

我见过最惨的一次,项目都到Sprint 3了,测试环境还没搭好。为什么?因为硬件采购周期是12周,而项目经理只给了4周准备时间。

所以我的建议是:测试计划里,环境准备必须单独列一个风险项

✅ 环境规划清单(我自己的模板):

  • 硬件:开发板/ECU数量、调试器、负载箱
  • 软件:编译器版本、调试工具、覆盖率工具
  • 自动化:测试框架(如Vector CAST、Tessy)、持续集成服务器
  • 数据:测试用例库、基线版本、缺陷跟踪系统

4.2.2 测试用例的优先级排序

资源永远不够,所以必须排序。我一般用“风险优先级”来排:

优先级 定义 示例
P0 安全关键功能,不通过则不能发布 刹车灯控制、安全气囊触发
P1 核心业务功能,不通过则影响用户体验 车窗升降、空调温度调节
P2 次要功能,可延迟修复 氛围灯颜色切换、仪表盘主题
P3 边缘场景,低概率发生 极端温度下的显示刷新率

嗯,这里要注意:P0的用例必须100%执行,P3的用例可以抽样执行。但抽样比例必须在测试计划里写清楚,否则审计时会被挑战。

4.3 测试策略文档的“避坑指南”

我曾经在一个ASPICE CL2的预审中,被审核员问了一个问题:“你的测试策略里写了‘使用等价类划分’,但你能证明你确实用了这个方法吗?”

我当时一愣。后来才明白,光写“用什么方法”不够,还得写“怎么用”

💡 我的改进方法:

在测试策略文档里,对每个测试方法都附一个“应用示例”。比如:

方法:等价类划分
应用对象:车速传感器输入(0-300 km/h)
有效等价类:0-300(正常范围)
无效等价类:<0(负值)、>300(超范围)
边界值:0、1、299、300

这样审核员一看就明白,你不是在“抄模板”,而是真的在应用。

4.4 测试计划的“动态调整”机制

测试计划不是一成不变的。ASPICE 允许你调整,但要求你记录调整的原因

我个人的做法是:每周五下午花30分钟,检查测试计划的执行偏差。如果发现某个模块的缺陷率异常高,就临时增加一轮“回归测试”。这个决策必须记录在测试计划变更日志里。

举个例子:

变更记录 V1.2
日期:2025-03-15
变更内容:增加CAN通信模块的集成测试轮次(从2轮增至3轮)
原因:前两轮发现3个接口时序问题,风险等级高
影响:测试周期延长2天,但可避免系统测试阶段返工

你看,这样写,既满足了ASPICE的“可追溯性”,又保护了自己——万一项目延期,你能拿出证据说“这是为了质量做的理性决策”。

4.5 小结:测试策略与计划的“黄金三要素”

最后,我总结一下。一个能过ASPICE审核的测试策略与计划,必须包含这三样东西:

  1. 清晰的层次划分——单元、集成、系统、验收,各司其职
  2. 可验证的方法说明——不光写“用什么”,还要写“怎么用”
  3. 动态调整的机制——计划是活的,变更要有记录

说实话,很多团队把测试计划写成了“流水账”,结果审核时被问得哑口无言。你想想看,如果你自己都说不清楚“为什么这么测”,那审核员凭什么相信你测对了?

下一章,我们会深入测试用例的设计——怎么写出“一个顶十个”的高效用例。到时候我会分享一个我压箱底的“测试用例模板”,保证让你少走弯路。


公众号:蓝海资料掘金营,微信deep3321