3、需求分析与测试用例设计:需求可追溯性矩阵(RTM)、等价类划分与边界值分析、正交实验法在逆变器参数测试中的应用

各位同行,咱们今天聊聊测试用例设计。说实话,很多刚入行的工程师觉得写测试用例就是「对着需求文档点点点」。但真正做过逆变器项目的人都知道,一个参数没测到位,现场可能就炸机了。

我个人习惯,拿到需求后第一件事不是写用例,而是先做一件事——建立需求可追溯性矩阵(RTM)。这玩意儿说白了就是一张表,把「需求编号」和「测试用例编号」一一对应起来。别小看它,我在项目中遇到过好几次,开发说「这个功能我改了」,测试说「我不知道啊」,最后漏测了。有了RTM,谁也别想甩锅。

3.1 需求可追溯性矩阵(RTM)

RTM长什么样?我给你看个实际例子。这是某款单相逆变器「过压保护」需求的追溯矩阵:

需求ID 需求描述 测试用例ID 测试结果
REQ-OVP-001 直流母线电压超过450V时,逆变器应在100ms内停机 TC-OVP-001 Pass
REQ-OVP-002 电压恢复至400V以下后,逆变器应自动重启 TC-OVP-002 Pass
REQ-OVP-003 过压故障记录应保存至EEPROM,断电不丢失 TC-OVP-003 Fail

你想想看,如果没有这张表,你测了TC-OVP-001和002,但忘了003,那现场出现故障后查不到记录,售后就得背锅。嗯,这里要注意:RTM不是一次性写完就完事了。需求变更时,矩阵必须同步更新。我曾经吃过这个亏——需求改了三次,矩阵还是第一版,结果漏测了一个关键场景。

核心原则:每个需求至少对应一个测试用例,每个测试用例必须追溯到至少一个需求。双向覆盖,缺一不可。

3.2 等价类划分与边界值分析

接下来聊等价类划分。这方法听起来高大上,其实很简单。比如逆变器有个参数叫「并网电压范围」,要求是180V~260V。你不可能从180V到260V每个电压都测一遍,对吧?那得测到猴年马月去。

等价类划分就是把这个范围分成几个「类」:

  • 有效等价类:180V~260V(正常并网)
  • 无效等价类:<180V(欠压)、>260V(过压)

每个等价类里选一个代表值测就行了。比如选220V代表正常范围,选170V代表欠压,选270V代表过压。但光这样够吗?不够。为什么?因为边界最容易出问题

边界值分析就是专门盯着边界测。还是这个例子,边界值有:179V、180V、181V(下边界),259V、260V、261V(上边界)。我建议你把这些点全测了。为什么?因为代码里最常见的bug就是「<=写成了<」或者「>=写成了>」。我在项目中遇到过,一个工程师把「if(voltage >= 180)」写成了「if(voltage > 180)」,结果电压刚好180V时,逆变器死活不启动。查了两天才找到原因,你说冤不冤?

小技巧:对于枚举型参数(比如工作模式:并网模式、离网模式、待机模式),每个枚举值都是一个等价类,全部都要测。别偷懒,我见过有人只测了并网模式,结果离网模式下有个中断没处理,现场直接炸了。

3.3 正交实验法在逆变器参数测试中的应用

最后说说正交实验法。这方法在逆变器测试里特别实用,尤其是当你面对多个参数组合时。

举个例子,逆变器有个「MPPT(最大功率点跟踪)参数整定」测试。影响MPPT效率的因素有:

  • 光伏板开路电压(Voc):300V、400V、500V
  • 光伏板短路电流(Isc):5A、10A、15A
  • 环境温度:-20℃、25℃、60℃
  • 光照变化速率:慢、中、快

如果全组合测试,3×3×3×3 = 81种情况。测完黄花菜都凉了。正交实验法能帮你用最少的组合覆盖最多的场景。

我常用的正交表是L9(3^4),也就是9次实验覆盖4个3水平因子。你看这个表:

实验号 Voc Isc 温度 光照变化
1 300V 5A -20℃
2 300V 10A 25℃
3 300V 15A 60℃
4 400V 5A 25℃
5 400V 10A 60℃
6 400V 15A -20℃
7 500V 5A 60℃
8 500V 10A -20℃
9 500V 15A 25℃

9次实验,覆盖了所有参数的组合情况。你仔细看,每个参数的每个水平都出现了3次,而且任意两个参数的组合都出现了1次。这就是正交实验法的精髓——均匀分散,齐整可比

注意:正交实验法只能帮你发现「有没有问题」,不能帮你定位「是哪个参数导致的问题」。如果第5组实验失败了,你需要单独做一次「控制变量法」来排查。我一般先用正交表做一轮快速筛选,发现问题后再针对性地做单因子实验。

好了,总结一下今天的内容。RTM保证需求全覆盖,等价类和边界值保证参数范围测到位,正交实验法解决多参数组合爆炸的问题。这三板斧用好了,逆变器测试的覆盖率至少能到95%以上。剩下的5%?嗯,那是现场才会暴露的玄学问题,咱们下节课再聊。