测试基础理论:黑盒白盒测试、边界值分析、等价类划分、正交实验法在硬件中的应用

做硬件量产测试这些年,我见过太多人一上来就铺测试用例,结果测了半天,该漏的漏,该重测的重测。说白了,测试不是靠堆人力,而是靠方法论。今天咱们就把四个最基础、也最实用的测试理论掰开揉碎,看看它们在硬件里到底怎么用。

2.1 黑盒测试 vs 白盒测试:你站在哪一边?

先问个问题:你拿到一块待测板卡,你关心的是它内部怎么跑的,还是只看输入输出对不对?

这就是黑盒和白盒的核心区别。

对比维度 黑盒测试 白盒测试
关注点 功能是否符合规格 内部逻辑、路径、时序
测试依据 需求文档、规格书 原理图、代码、时序图
典型场景 按键功能、接口通信 寄存器读写、状态机跳转
谁来做 功能测试、QA 硬件工程师、固件工程师
覆盖率 功能覆盖 逻辑覆盖、路径覆盖

我个人习惯,量产测试阶段以黑盒为主。为什么?因为产线上几百块板子同时跑,你不可能每块都拿示波器去量内部信号。黑盒测试效率高,适合快速筛出坏板。

但白盒测试也不能丢。我记得有一次做电源管理芯片的量产测试,黑盒测下来所有输出电压都正常,结果到了客户手里,低温环境下频繁重启。后来一查,是内部欠压保护逻辑的时序窗口没覆盖到。这就是白盒该管的事。

我的建议: 量产测试用黑盒做主力,白盒做抽检和问题定位。两者互补,别偏废。

2.2 边界值分析:Bug 最爱藏在边边上

你想想看,一个电压输入范围是 0V 到 5V,你测了 2.5V 和 3.3V,觉得没问题。但实际出问题的往往是 0V、5V、5.01V 这些边界点。

边界值分析的核心就一句话:测试边界,而不是中间。

具体怎么用?我一般按这个步骤来:

  1. 确定边界:从规格书里找出所有输入/输出的上下限。
  2. 选点:取边界值、边界值±一个最小步进、边界值±一个容差。
  3. 组合:多个边界同时出现时,做交叉测试。

举个例子,一个 ADC 输入范围 0~3.3V,分辨率 12bit,最小步进约 0.8mV。我会这样选测试点:

测试点 理论值 预期结果
下边界 0V 输出 0x000
下边界+步进 0.8mV 输出 0x001
上边界 3.3V 输出 0xFFF
上边界-步进 3.2992V 输出 0xFFE
超上边界 3.5V 饱和输出或保护
避坑指南: 我曾经遇到过一块板卡,规格书上写输入范围 0~5V,但实际电路里用了 3.3V 的 ADC。边界值分析时只测了 0V 和 5V,结果 3.3V 以上的值全部被截断,产线上漏了一大批。所以边界值一定要结合实际电路来定,别光看规格书。

2.3 等价类划分:用最少的用例覆盖最多的场景

等价类划分,说白了就是把输入空间分成几个「类」,每个类里选一个代表来测。如果这个代表通过了,那整个类里的其他值大概率也没问题。

我刚开始做测试时,总想把所有值都测一遍。后来发现根本测不完——一个 12bit 的 ADC 就有 4096 个码值,全测一遍产线就别干了。

等价类划分的步骤很简单:

  1. 找有效等价类:符合规格的输入范围。
  2. 找无效等价类:超出规格的输入范围。
  3. 每个类选一个代表值:通常选中间值或典型值。

举个例子,一个串口波特率支持 9600、19200、38400、115200。有效等价类就是这四个值,无效等价类就是其他所有值。测试时,每个有效类测一个,无效类挑几个典型的测一下,比如 2400 和 921600。

关键点: 等价类划分和边界值分析经常一起用。等价类负责「面」,边界值负责「点」。面点结合,覆盖率才高。

2.4 正交实验法:当组合爆炸时,救星来了

假设你要测一个板卡,有 4 个因素,每个因素有 3 个水平。全组合测试需要 3⁴ = 81 个用例。产线上哪有时间跑 81 遍?

正交实验法就是干这个的——用最少的组合,覆盖最大的交互效应。

我常用的正交表是 L9(3⁴),也就是 9 个用例覆盖 4 个因素 3 个水平。怎么用?

  1. 列出因素和水平:比如电压、温度、负载、频率。
  2. 选正交表:根据因素数和水平数选合适的表。
  3. 填表:把因素和水平对应到正交表的列上。
  4. 执行:按正交表的每一行生成测试用例。

举个例子,一个电源模块的测试:

因素 水平1 水平2 水平3
输入电压 4.5V 5.0V 5.5V
环境温度 -20°C 25°C 85°C
负载电流 0.5A 1.0A 1.5A
开关频率 100kHz 200kHz 300kHz

用 L9(3⁴) 正交表,9 个用例就能覆盖所有两两组合。全组合要 81 个,效率差了 9 倍。

我的经验: 正交实验法特别适合「多因素、多水平、交互效应未知」的场景。但要注意,它只保证两两组合覆盖,三因素以上的交互效应可能会漏。如果关键交互已知,可以手动补充几个用例。

2.5 四种方法怎么搭?一张图说清楚

这四种方法不是孤立的,实际项目中我通常这样组合使用:

硬件测试方法组合框架 待测硬件 测试策略选择 黑盒/白盒 (策略选择) 边界值分析 (边界覆盖) 等价类划分 (范围覆盖) 正交实验法 (组合优化) 测试用例集 先选黑盒/白盒策略 → 用边界值和等价类确定测试点 → 用正交法优化组合 → 输出最终用例集

实际项目中,我一般先判断这个测试项适合黑盒还是白盒。然后对每个输入参数做边界值分析和等价类划分,确定关键测试点。最后用正交实验法把多个参数组合起来,生成最终的测试用例集。

总结一下: 黑盒白盒定方向,边界等价定范围,正交实验定组合。四招用好了,量产测试的效率和覆盖率都能上一个台阶。