【软件测试】黑盒测试

1.黑盒测试概述

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性,如图所示。
【软件测试】黑盒测试_第1张图片

黑盒测试主要用于发现以下情况

①是否有不正确或遗漏了的功能
②在接口上,能否正确地接受输入数据,能否产生正确地输出信息
③访问外部信息是否有错
④性能上是否满足要求
⑤界面是否错误,是否不美观
⑥初始化或终止错误

黑盒测试的方法

等价类划分法
边界值分析法
判定表方法
因果图法
场景法
正交试验法
功能图法
错误推测法
1.等价类划分法

其基本思想是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是有意义的、合理的输入数据构成的集合。可检查程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。

设计测试用例的步骤:

1)划分等价类:先考虑数据类型是否合法,再考虑数据范围即区间是否合法
2)建立等价类表:列出所有等价类,并为每个等价类编号
3)设计测试用例,使其尽可能的覆盖所有等价类

NexDate的问题

1)题目描述:
NextDate 函数包含三个变量 month、day和year,函数的输出为输入日期后一天的日期。例如,输入为1989年5月16日,则函数的输出为1989年5月17日。要求输入变量month、day和year均为整数值,并且满足下列条件,也就是有效等价类:

1 ≤month≤12 1≤day≤31 1812≤year≤2012

请同学们根据等价类划分法设计测试用例。
2)题目解答:

  • 划分等价类
    【软件测试】黑盒测试_第2张图片
  • 设计等价类的测试用例
    【软件测试】黑盒测试_第3张图片
2.边界值分析法

定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
与等价划分的区别 :1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
设计方法:1)确定边界情况(输入或输出等价类的边界)
2)选取正好等于、刚刚大于或刚刚小于边界值作为测试数据
边界值分析法原则:
(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
(2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
(3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
(4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
(5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
(6)分析规格说明,找出其它可能的边界条件。

3.判定表/决策表方法

一个判定表由“条件和活动”两部分组成,也就是列出了一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择。
判定表元素:
⦁ 条件桩:列出问题的所有条件
⦁ 动作桩:列出可能针对问题所采取的操作
⦁ 条件项:针对所列条件的具体赋值
⦁ 动作项:列出在条件项(各种取值)组合情况下应该采取的动作。
⦁ 规则:任何一个条件组合的特定取值及其相应要执行的操作。
判定表方法步骤
⦁ 列出所有的条件桩和动作桩;
⦁ 填入条件项;
⦁ 填入动作项,制定初始判定表;
⦁ 简化、合并相似规则或者相同动作

4.因果图法

多种输入条件的组合,产生多种结果设计测试用例。
设计方法:
1)分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标识符。
2)找出原因与结果,原因与原因之间的对应关系,划出因果图
3)在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件
4)根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来
5)把判定表的每一列作为依据设计测试用例。

针对年薪和非年薪员工的过失补偿问题

1)题目描述
某软件的一个模块的需求规 格说明书中描述:
(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
2)题目解答:

  • 分析题目可知:
    【软件测试】黑盒测试_第4张图片
  • 因果图如下:
    【软件测试】黑盒测试_第5张图片
  • 将因果图转化为判定表:
    【软件测试】黑盒测试_第6张图片
  • 测试用例
    【软件测试】黑盒测试_第7张图片
5.场景法

用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。
【软件测试】黑盒测试_第8张图片

应用场景法设计测试用例步骤:

1)确定执行用例场景所需的数据元素
2)构造矩阵
⦁ 确定列内容:除了需要包含执行场景所需的数据元素,还需要包含测试用例标识、被测场景标识或名称
⦁ 确定行内容:
⦁ 根据每一场景,确定与其相关的测试用例输入项,在设计时,须保证每个场景至少包含 一个正面测试用例和一个负面测试用例
⦁ 根据被测场景特征,补充相应测试用例

加油卡的用例

1.题目描述
使用加油卡在某加油站加油,用户出示加油卡,插入机器中,及其读卡信息,校验是否在卡片黑名单中。通过校验用户输入加油量,系统校验加油量是否符合要求,加油完毕,产生卡内金额余额,退出卡片。要求使用场景法设计测试用例。
2.题目解答

  • 用例设计
    【软件测试】黑盒测试_第9张图片
  • 数据设计
    【软件测试】黑盒测试_第10张图片
6.功能图法

⦁ 功能图法就是为了解决动态说明问题的一种测试用例的设计方法
⦁ 功能图由状态迁移图(state transition diagram,STD)和逻辑功能模型(logic function model, LFM)构成
⦁ 状态迁移图:用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态
逻辑功能表:用于表示状态输入条件和输出条件之间的对应关系

小结

【软件测试】黑盒测试_第11张图片

你可能感兴趣的:(软件测试)