1. 前言
软件测试中很多思想,尤其是对边界值的处理,还是值得借鉴的,因此进行一下简单的复习。
2. 黑盒测试
- 等价类划分法,一类情况用一两个值来覆盖。这里得到的点主要是,在测试无效等价类时,不考虑条件的相互叠加,从而减少测试用例。这里的启发是,不但条件的测试,条件的设计也应该不考虑叠加地设计;
- 判定表法,其实我觉得是为分类讨论提供一种表的格式而已,确实这种分类讨论表相当实用;
- 边界值法,其实在写程序时也经常遇到,异常处理就是边界值法的思维,异常都是优先考虑边界的;
- 错误推测法,就是经验法,拍脑袋法的正规名称;
3. 白盒测试
暂不复习路径覆盖。
用到的例子:
- 语句覆盖,就是每个语句都能执行到,例子中判断全为T即可达成:
- 判定覆盖,每个判定的T、F都能执行到:
- 条件覆盖,将判定分解成 条件(条件通过||,&&组合成判定),然后对条件进行覆盖:
判定:(A > 1) && (B == 0),(A == 2) || (X > 1)
条件:设T1为A > 1,T2为B == 0,T3为A == 2,T4为X > 1
- 条件判定覆盖,有可能进行完条件覆盖后,判定覆盖的要求未能达成:
思考方法,应该先满足其中一个覆盖(例如条件覆盖),然后再补充测试案例满足另外一个。
- 条件组合覆盖,同理,先处理一个判定(如(A > 1) && (B == 0))的组合情况,进行添加使另一个判定的条件组合情况被覆盖到:
先考虑(A > 1) && (B == 0)的条件覆盖:
由于A与(A == 2) || (X > 1)也具有关联,对T3(A == 2)观察得,
在A == 2时,T3被覆盖到,
在A == 1时,-T3被覆盖到,
再考虑独立的T4(X > 1)的情况,最终得:
从这里其实能得到这样的启示:其实测试员可以看作一种很特殊的使用者,也就是使用者在考虑边界条件时,是逐条边界条件考虑的。符合第一条之后,再看看是否符合第二条,如不符合在之前的基础上修补。