一、总分类
注意这章讲的是方法,不是测试,是黑白盒方法,不是黑白盒测试,黑白盒测试用的是黑白盒方法完成的测试。
还有就是测试不光测试异常值,还要输入正常值,一定要有正常值。
二、基于输入域的方法
注意本方法只关注边界值,不考虑为空,或者要求不能输入数字,你偏输入数字这些情况,只关注给的值的边界,其他的可通过等价类法、正交表法、随机测试进行补充测试。
1.边界值分析法
(1)穷举法:穷举法测试所有可能的输入组合。
(2)典型值法:选取具有代表性的输入进行测试。
穷举法和典型值法都是针对所有输入数据而言的,只有跟下面三个加到一块用才会出现“边界”这个限定条件。
(3)强边界法:输入范围的边界值及其附近值。
(4)弱边界法:仅测试输入范围的边界值,不涉及边界附近的值。
(5)全边界法:强边界+弱边界。
上面这三个都是针对边界范围来说的,例如(a-1,a+1)是边界值(a,b)的一个边界范围范围。
(6)一般都是采用“典型值法+弱边界法”,这样简单省事,代表性强。
2.例题:第二日问题
先是针对个体输入域,即不考虑条件组合。
(1)边界和测试数据确定:
(2)测试用例设计:
(3)然后针对整体输入域,即考虑组合条件
(比如本题月日,实际都和年进行捆绑,但是这里面没有考虑2月的问题,或者说闰年的问题,因为边界测试只管边界,日期上边界就是1-31):
(4)测试分析,检查是否有遗漏。
PS:个体输入域和整体输入域,写哪个都行(看题目要求,没要求都行),其他题同理。
3.例题:酒水销售佣金问题
(针对输出域的边界值测试,输出域的边界值测试带来了额外的测试不确定性,不过这题确实难算的,考试应该不考,这里只是举个例子)
题目:
月末,各销售员向酒水销售公司上报他所在区域的销售业绩,酒水销售公司根据其销售额计算该销售员的佣金,并作为奖金发放。最终将由佣金计算系统生成月销售报告,对当月售出的白酒、红酒和啤酒总数进行汇总,并计算销售公司的总销售额和各销售员的佣金。
①其中白酒、红酒和啤酒的单价分别为168元/瓶、 120元/瓶、5元/瓶。
②每个销售员,白酒每月的最高供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶;
③各销售员每月至少需售出白酒50瓶,红酒30瓶,啤酒300瓶;
④销售员的佣金计算方法如下(不超出的按上一档):
2万元以下(含):4%;
2万元(不含)~4.5万元(含):1%;
4.5万元以上(不含):0.5%。
答:(1)先写出输入域,下列输入域每个都分别有俩边界点,没写出来。
(2)以提成变化作为边界点。
4.等价类划分法
(1)将输入数据分成若干个等价类,从每个等价类选一个代表性数据作为测试用例。
(2)分为有效等价类(合理的数据)和无效等价类(异常的数据)
(3)要求全覆盖(子集并在一块是全集),无冗余(就是子集不相交)
(4)适用于有数据输入的情况;不适用于相互有依赖关系的变量。
(5)强组合方式——完全组合;弱组合方式——仅需让每一个等价类都亮个相即可。
5.例题:第二日问题
下列这俩都是针对个体输入域的。
先演示错误写法,简便但风险极高,因为没有考虑特殊情况,不这样写。
(1)等价类划分(重点,注意每个等价类前面的编号,后续用例中要写上)
(2)无效等价类的测试用例:
(3)有效等价类的测试用例:
然后是正确写法,只针对有效等价类即可写出,同时拥有正确输入和错误输入的用例。
(1)等价类划分(重点,注意每个等价类前面的编号,后续用例中要写上)
(2)有效等价类的测试用例(需要2 * 3 * 5 = 30个测试用例)
再然后演示的是整体输入域
(1)等价类划分(重点,注意每个等价类前面的编号,后续用例中要写上)
(2)有效等价类的测试用例(缩减到了6个)
6.例题:酒水销售佣金问题(针对输出域)
(1)等价类划分(重点,注意每个等价类前面的编号,后续用例中要写上)
(2)有效等价类的测试用例:
7.弱一般等价类
8.强一般等价类
9.弱健壮等价类
10.强健壮等价类
8.例题:余额宝(涉及多次执行的问题)
应该不考,闲的话可以看看
余额宝中的零钱不可以直接消费,当需要使用时,可将余额宝的钱提现。余额宝的提现功能有2种方式:
a.快速到账(2小时内):每日最高提现额度为10000元;
b.普通到账:可提取金额为余额宝最大余额,但到账时间会慢一些。
答:(1)设计等价类(错误的示范):
(2)改进等价类(正确的示范):
(3)有效等价类的测试用例(假如现在余额宝中有50000元):
三、习题
1.等价类划分时,需要满足什么要求以保证测试的完备性和无冗余性?
划分准确
- 等价类应当准确地反映输入域的特性。每个等价类内的所有值应当在程序中表现出相同的行为。
完整覆盖
- 所有的输入域都应该被划分到一个或多个等价类中,确保没有遗漏任何可能的输入情况。
相互独立
- 各等价类之间应当是相互独立的,即一个输入值不应同时属于两个等价类。这可以避免冗余测试用例的产生。
有效与无效等价类
- 划分出有效等价类和无效等价类。有效等价类包含所有合法的输入值,无效等价类包含所有非法的输入值。测试应当覆盖所有有效和无效等价类。