黑盒测试是指将软件看做一个黑色的盒子,不关心软件内部实现,只关心软件的输入输出;
测试的生命周期
描述bug的要素
- 测试版本号
- 测试环境
- 测试步骤
- 预期结果
- 测试结果
bug的生命周期
- New:新发现的bug,未经评审决定是否要发给开发人员进行修改;
- Open:确认是bug,并且认为需要进行修改,指派给给相应的开发人员;
- Fixed:开发人员修改后标识为修改状态,需要测试人员进行回归测试验证;
- Rejected:认为不是bug,拒绝修改;
- Delay:认为暂时不能修改或者暂时修改不了,延后修改;
- Closed:修改状态的bug经测试人员回归检测后通过,关闭bug;
- Reopen:如果经过验证发现bug仍然存在,则开发人员需要重新打开bug修改;
测试方法
等价类
概念:把输入(特殊情况才考虑输出)划分为若干个等价类,从每个等价类中选择一个测试用例,如果该测试用例通过,我们就说这个测试用例代表的等价类通过测试;
目的:为了解决测试用例无法穷举的情况;
分类:
-有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合:
-无效等价类: 根据需求说明书,不满足需求的集合。
例子:网易邮箱的注册
需求:账号和密码都是6-18位字符,以字母开头(可包含数字,字母,下划线)
例子:手机号位数的等价类
边界值
概念:针对输入或者输出的边界进行测试用例设计;
题目:输入[0,100]中的任意一个数字
边界值:-1,1,99,101
因果图
概念:一种逻辑图,用来表示输入和输出之间的关系;
使用场景:某功能有多个输入,输出依赖于不同的输入;
逻辑图:
-
恒等:如果条件为真,那么结果必定为真;
-
与:当且仅当两个条件都为真,则结果为真;
-
或:两个条件只要有一个满足即为真;
-
非:只有原因为假,结果才为真;
做题步骤:
(1)找出所有输入和输出;
(2)理清输入和输出的关系;
(3)画出因果图;
(4)根据因果图画出判定表;
(5)根据判定表写测试用例;
例子:618活动,订单已提交,金额大于300或者有红包,则有优惠;1)找出所有输入和输出:
输入:订单提交(未提交),金额大于300(小于300),有(无)红包; 输出:有优惠或者无优惠;
2)找出所有输入和输出:
①订单已提交,金额大于300,无红包,有优惠; ②订单已提交,金额不足300,有红包,有优惠; ③订单已提交,金额大于300,有红包,有优惠; ④订单已提交,金额小于300,无红包,无优惠; ⑤订单未提交,金额大于300,无红包,无优惠; ⑥订单未提交,金额不足300,有红包,无优惠; ⑦订单未提交,金额大于300,有红包,无优惠; ⑧订单未提交,金额小于300,无红包,无优惠;
3)画因果图:
4)画判定表:
5)根据判定表写测试用例:
测试用例①订单已提交,金额大于300,有红包,有优惠;
根据表以此类推往下写即可;
正交排列
概念:研究多因素多水平的一种方法;
原理:根据正交性,选出输入的最优组合方式,分析这些测试结果,以分析整个实验的结果;
属性:
-
因素:考察的变量;
-
水平:一个变量的取值;
-
因素数:变量的个数,代表正交表列的个数©;
-
水平数:变量的取值,正交表的行数(T);
-
正交表的表示:L=N (CT);
-
正交表的行数:N = (T-1)C+1,适用于变量的水平数相等:
性质:-每一列中各数字出现的次数都一样多;
-任何两列所构成的各有序数对出现的次数都一样多;
做题步骤:
(1)确定有哪些因素(变量);
(2)每个因素有哪几个水平(变量的取值);
(3)选择一个合适的正交表;
(4)把变量的值映射到表中;
(5)把每一行的各因素水平的组合作为一个测试用例;
(6)加上你认为可疑且没有在表中出现的用例组合;
场景分析法
概念:分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法;
优点:实用性强,有效,设计出来的用例有价值
缺点:可能使用的场景不一定能对事件系列进行全面的分析,设计出来的用例不完整。
做题步骤:
(1)根据说明,画出流程图,确定基本流和备选流程;
(2)根据基本流和各项备选流确定场景;
(3)对每一个场景生成测试用例;
(4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值;
错误猜测法
错误猜测法是经验丰富的测试人员喜欢使用的一种测试方法;