【软件测试】黑盒测试

黑盒测试:测试者在不考虑程序内部结构的情况下,仅一句程序功能的需求规范来设计测试用例。

  • 测试用例:是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
  • 测试用例表:是用来提前设计出所有测试用例,再根据测试用例表,慢慢核实每一行是否满足需求

主要分为等价类划分边界值分析、决策表法、因果图分析法与正交实验设计法五种测试方法:

等价类划分

等价类划分:把程序划分成为若干个部分,从每个部分选取少许代表性数据当测试用例。

划分:

  • 有效等价类:合理的、有意义的输入数据结构的集合。
  • 无效等价类:不合理的、无意义的输入数据结构的集合。

设计测试用例的步骤:

  1. 为每个等价类规定唯一的编号
  2. 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步知道所有的有效等价类都被覆盖为止。
  3. 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

测试用例等价类表:

输入条件 有效等价类 编号 无效等价类 编号

测试用例表:

测试用例编号 输入 期望输出 覆盖的等价类

例子

在某网站申请免费信箱时,要求用户必须输入用户名、密码以及确认密码,对每一项输入条件的要求如下:

  • 用户名:要求为4~10位,可使用英文字母、数字、-、_,并且首字母必须为字母或数字;
  • 密码:要求位6~10位,只能使用英文字母、数字、-、_;
  • 确认密码:区分大小写。

等价类表:

输入条件 有效等价类 编号 无效等价类 编号
用户名 4~10位 1 少于4位 7
多于10位 8
首字符为字母 2 首字符为除字母、数字之外的其他字符 9
首字符为数字 3 组合中含有除英文字母、数字、-、_之外的其他特殊字符 10
密码 6~10位 4 少于6位 11
多于10位 12
英文字母、数字、-、_组合 5 组合中含有除英文字母、数字、-、_之外的其他特殊字符 13
确认密码 内容与密码相同 6 内容与密码不同 14

测试用例表:

测试用例编号 用户名 密码 确认密码 预期输出 覆盖的等价类
T1 NEMO_-2020 NEMO_-123 NEMO_-123 注册成功 1,2,4,5
T2 2020_-NEMO NEMO_-123 NEMO_-123 注册成功 1,3,4,5
T3 NEM 12345678 12345678 用户名要求4~10位 7
T4 NEMO1234567 12345678 12345678 用户名要求4~10位 8
T5 _NEMO 12345678 12345678 用户名首字符必须为字母或数字 9
T6 NEMO& 12345678 12345678 用户名中含有非法字符 10
T7 NEMO 123 123 密码要求6~10位 11
T8 NEMO 12345678910 12345678910 密码要求6~10位 12
T9 NEMO 12345678& 12345678& 密码中含有非法字符 13
T10 NEMO NEMOOO nemooo 确认密码不一致 14

注意:等价类表→测试用例表→上机测试。

边界值分析

边界值分析法:是对等价类划分的进一步补充,通过选择等价类边界值的测试用例来发现更多的错误,因为大量的错误大多发生在输入输出与边界,而不是其取值范围内。

设计测试用例的步骤:(其实就是针对小于、等于和大于边界值的测试用例进行测试)(画个数轴最省事

例如,【软件测试】黑盒测试_第1张图片
取值范围-4~-1
边界值-4、-1
小于-4:取-5
等于-4:取-4
大于-4:取-1,这里不用取-3了,-1就够了,当然-3也行
小于-1:取-4
等于-1:取-1
大于-1:取0
所以最终取:-5、-4、-1、0(即 刚好达到该范围的边界值,以及刚刚超过这个范围的边界值)

  1. 如果输入条件规定取值的范围,则选取刚好达到该范围的边界值,以及刚刚超过这个范围的边界值;

    例如,若输入值的范围是“-0.1~1.0”,则可选取“-1.001”、“-1.0”、“1.0”、“1.001”作为测试输入数据。

  2. 如果规定的是输入值的个数,则选取最大个数,最小个数,以及比最大个数大一个的个数和比最小个数小一个的数;

    例如,一个输入文件可有1~255个记录,则可以分别设计有1个记录、255个记录以及0个记录和256个记录的输入文件。

  3. 如果规定的是输入域或输出域的有序集合,则选取集合的第一个元素和最后一个元素最为实验用例;

    注意:是“有序”集合,所以取第一个和最后一个。

  4. 如果程序中使用了一个内部数据结构,则应当选取这个内部数据结构的边界值;

    例如,如果程序中定义了一个数组,其元素下标的下界是0,上界是100,那么应该选择达到这个数组下标边界的值,如0和100作为测试用例.

  5. 分析规格说明书,找出其他可能的边界值条件。

测试用例表:

测试用例编号 输入 预期输出

例子

持卡人境外消费交易单笔金额满2000元人民币或等值外币,即可享20元人民币或等价外币返现;
境外消费单笔满3000元人民币或等值外币,即可享30元人民币或等价外币返现;
境外消费单笔满5000元人民币或等值外币,即可享50元人民币或等价外币返现;
每张卡片每个自然月最高返现500元人民币或等值外币。每笔消费交易返现一次,并且单笔消费额不包含货币转换费。

测试用例表:(取值范围0~N+)

测试用例编号 输入(消费)(RMB) 预期输出
Test1 单笔消费-1 错误,单笔消费不得小于0
Test2 单笔消费0 没有返现
Test3 单笔消费2000 返现20
Test4 单笔消费2001 返现20
Test5 单笔消费3000 返现30
Test6 单笔消费3001 返现30
Test7 单笔消费5000 返现50
Test8 单笔消费5001 返现50
Test9 当月消费0 返现0
Test10 当月消费50000 返现500
Test11 当月消费50001 返现500

注意:以上所有的一切都只是准备测试用例,即 接下来该测试什么,而不是说黑盒测试就是画个表就完了。
设计完测试用例之后,再一个一个上机对着测试用例输入进行测试,看看是否符合期望输出。

决策表法

由于前两种较为常见,所以先介绍这么多,后面的待日后补充。

因果图分析法

正交实验设计法

你可能感兴趣的:(【软件测试】黑盒测试)