有丰富的测试理论知识,才能在测试工作中成为测试专家。
测试用例常见的设计方法有:
等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法等。
一、等价类划分法
等价类划分法:就是将测试的范围划分成几个互不相交的子集,它们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
举例:我们要测试一个用户名是否合法,用户名的定义为:11位数字组成的字符。
我们可以先划分5个子集:
1、空;
2、1-10位数字;
3、11位数字;
4、12位或以上数字;
5、非数字;
然后从每个子集选出若干个有代表性的值:
空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
1-10位数字:“1234567890” (无效等价类实例)
11位数字:”00000000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
12位或以上数字:”123456789012” (无效等价类实例)
非数字:”abc&!!!” (无效等价类实例)
以上5个用例,就是用等价类划分选出的测试用例。实际上,对于1-10位数字的子集来说,选“11111111111”和“12345”没有本质的区别。
等价类的划分,最关键的是子集的划分。如果想把子集划分的更细一点,非数字还可以继续划分子集:字母,特殊字符。
二、边界值分析法
平时测试工作:大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
举例:如果 X 为整数,数据范围10≤X≤20,那么 X 在测试中应该取的边界值为:10,11,19,20。
正常值为:10-20之间的任意整数
三.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到,并没有特别多的理论可以写出来。
四、判定表法
是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
绘制的决策表如下:
条件桩:列出所有可能的条件
条件项:列出所有的条件取值组合
动作桩:列出所有可能的操作
条件项:列出在每一种条件取值组合的情况下,执行动作桩中的哪些动作。
规则:一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则。条件组合的数目就是规则的数目。
条件桩 |
条件项 |
规 则 |
|
动作桩 |
动作项 |
|
举例:某公司对客户分类标准如下:
顾客每次订货额在1000元以上(含1000元),信誉好的,订单设“优先”标志;
信誉不好,但是老客户的,订单设“优先”标志;
信誉不好,但是新客户的,订单设“正常”标志;
每次订货额在 1000元以下,订单设“正常”标志。
条件桩:
1、顾客每次订货额在1000元以上(含1000元)/每次订货额在 1000元以下
2、信誉好的/信誉不好
3、老客户/新客户
动作桩:
1、优先
2、正常
|
|
1 |
2 |
3 |
4 |
5 |
6 |
条件桩 |
顾客每次订货额在1000元以上(含1000元)Y?100元以下N |
Y |
Y |
Y |
N |
N |
N |
信誉好吗?好Y,不好N |
Y |
N |
N |
Y |
N |
N |
|
老客户Y?新客户N? |
Y |
Y |
N |
Y |
Y |
N |
|
动作桩 |
优先 |
√ |
√ |
|
|
√ |
|
正常 |
|
|
√ |
√ |
|
√ |
这个用例有冗余,自己写着玩。。。。。。。。。。。。。。。
五.正交实验法
在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。