第4章 用例设计方法论:等价类划分、边界值分析、正交实验法在UI定制中的应用

说到UI定制回归测试,我最头疼的不是功能逻辑,而是那些看似简单、实则藏坑的界面配置项。你想想看,一个主题色选择器,光颜色值就几百万种可能,难道真要一个个测?显然不现实。这时候就需要靠方法论来救命了。

我个人习惯把这三种方法看作“三件套”——等价类划分管范围,边界值分析抓边缘,正交实验法治组合爆炸。下面我结合项目的坑,一个个跟你聊透。

核心思想:用最少用例覆盖最多问题,而不是追求100%覆盖。

UI定制回归测试用例设计方法论 用例设计方法论 等价类划分 边界值分析 正交实验法 有效/无效等价类 UI属性值域 上点/离点/内点 因子/水平/正交表 组合覆盖 实际使用时三种方法常常结合: 先用等价类划定范围 → 再补充边界值 → 最后用正交表处理多因素组合 例如:字体大小(1~72)、颜色(16进制)、背景(三选一),正交表可大幅降低用例数

4.1 等价类划分:先把“大饼”切成几块

等价类划分的思想很简单:把输入域分成若干“等价”的区间,每个区间里挑一个代表值测就行。为什么?因为同一个区间内的值,程序处理逻辑大概率一致。如果测了字号72没问题,那测69、70、71大概率也没问题——除非你遇到了边界。

在UI定制中,我最常用的场景是:

  • 字体大小(1-72磅)
  • 颜色十六进制码(#000000 ~ #FFFFFF)
  • 圆角半径(0-50像素)
  • 间距值(0-100)

举个例子。我们做过一个系统主题定制,字号输入框允许1到72。我这么划分:

等价类代表值预期结果
有效:1 ~ 7212(随便选一个)成功设置
无效:小于10提示“请输入1-72之间的整数”
无效:大于72100同上
无效:非数字"abc"格式校验提示

注意:我曾经过度依赖等价类划分,结果漏掉了空字符串和特殊字符。那一次测试环境里没报错,但线上用户输入了空格,UI直接崩了。嗯,后来我学乖了:等价类划分时,一定要把“空”“空格”“超长”这些都算作单独的无效类。

4.2 边界值分析:bug最容易藏在“边上”

其实说白了,边界值分析就是等价类划分的“升级版”。开发人员写if语句时,if (value >= 1 && value <= 72)这种逻辑,最容易在1和72这两个边界处出问题。为什么要单独拿出来讲?因为我见过太多测试只测中间值,结果边界全炸的情况。

典型边界取法:上点(边界本身)、离点(紧挨边界的值)、内点(有效区间内的任意值)。

拿上面字号例子,边界值应该测:

  • 上点:1、72
  • 离点:0(小于1)、73(大于72)
  • 内点:36(中间随便选一个)

你可能会问,为什么等价类已经测了0和100,这里还要测0和73?因为边界值分析强调“紧邻边界”的值,而等价类划分更关注大类。两个方法结合,相当于给边界区域加了双保险。

个人经验:我记得有一次测滑动条控件,最小0、最大100,步长1。我本来只测了0、50、100(等价类思路)。结果用户反馈说拖动到1的时候UI闪了一下。复现后发现,开发在value == 1时有个特殊动画,没处理好。如果之前用边界值分析测了1这个点,就能提前发现。从那以后,凡是连续值的UI控件,我必定加上边界值用例。

4.3 正交实验法:解决“组合爆炸”的终极武器

UI定制经常涉及多个维度的配置。比如字体、颜色、背景图片、主题模式、圆角大小……如果全面测试,组合数会像原子弹一样爆炸。假设有4个选项,每个选项有3种值,全组合就是3⁴=81种。你测得过来吗?反正我测不过来。

正交实验法用“正交表”来挑选最有代表性的组合。这些组合具有“均匀分散,齐整可比”的特性,能覆盖两两组合的交互,大幅减少用例数。

具体操作步骤:

  1. 确定因子(UI定制项)和水平(各选项的值)
  2. 选择合适的正交表(比如L₉(3⁴)、L₄(2³))
  3. 把因子映射到正交表列,生成测试用例
  4. 补充你认为重要的业务逻辑组合(可选)

举个例子。我们曾经测试一个“组件自定义面板”,涉及三个参数:

因子水平1水平2
A: 字体大小12px16px
B: 文字颜色#333#666
C: 背景颜色#FFF#F5F5F5

全组合需要2³=8种。但使用L₄(2³)正交表,只需要4种组合:

用例1: A1(12px) B1(#333) C1(#FFF)
用例2: A1(12px) B2(#666) C2(#F5F5F5)
用例3: A2(16px) B1(#333) C2(#F5F5F5)
用例4: A2(16px) B2(#666) C1(#FFF)

这4个用例覆盖了所有两两组合。比如“A与B”的组合有(12px,#333)、(12px,#666)、(16px,#333)、(16px,#666)——恰好都被覆盖了。实际跑下来,我们发现例3的背景和字体颜色对比度不足,这个bug在8个全组合里也会被测到,但4个就足够了,节省了一半工作量。

我建议在UI定制回归测试中,先找出所有可变的“配置项”,然后对每一项做等价类和边界值分析(单因子),再用正交表覆盖多因子组合。这样三步走,基本不会漏掉重大缺陷。

小结:三种方法怎么搭?

说到底,这三种方法不是互相替代,而是互补。等价类划分帮我们划好地盘,边界值分析盯着边角,正交实验法处理交叉路口。我在实际项目中,通常这样用:

  • 每个UI输入框/下拉框/滑块先做等价类和边界值 → 确保单因子正确
  • 遇到3个以上定制项联动时 → 建正交表,生成组合用例
  • 最后补充自己的业务直觉(比如某些组合是用户常用场景)

这样下来,用例数量可控,质量也过硬。你不妨回头看看自己项目里的UI定制模块,照着这个思路重新梳理一遍,说不定能发现之前漏掉的边界哦。