黑盒测试之测试方法

1.等价类划分方法

等价类划分是一种常见的黑盒测试方法,该方法完全不考虑程序的内部结构,只依据程序的规程说明来设计测试用例。

等价类划分把所有可能的输入数据划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。

设计测试用例时注意:
  • 设计一个测试用例,使其尽可能多的覆盖有效等价类,重复这一步骤,直到所有有效等价类都被覆盖
  • 设计一个测试用例,使其仅覆盖一个无效等价类,重复这一步骤,直到所有无效等价类都被覆盖
适用场景:

由于等价类法只是孤立地考虑各个输入数据的测试功效,而没有考虑多个数据的组合效应,可能会遗漏输入数据易于出差的组合情况。

2.边界值分析方法

边界值分析方法是考虑边界条件而选取测试用例的一种黑盒测试方法,是对等价类划分方法的补充。实践证明,软件容易在输入输出域的边界附近出现差错,而不是在输入输出范围的内部,因此针对边界值进行测试,更容易查出问题。

使用边界值分析方法,首先应确定边界情况,选取的测试数据应刚好小于、刚好等于、刚好大于边界值

3.错误推测方法

基于经验和直觉,推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例。

基本思想:列举出程序中所有可能出现问题和容易出现问题的情况,根据列举的情况设计测试用例

常见依据:
  • 在单元测试时列出的常在模块中出现的错误
  • 以前产品测试时发现的问题
  • 容易发生错误的情况,如输入输出为,输入为空格或输入表格只有一行,共享参数的使用等

4.因果图法

因果图法是对等价类划分法的扩展,可以理解为“等价类组合判定表”,着重考虑输入条件的多种组合。

  • 条件与结果之间的关系:
    恒等、非、与、或
  • 条件与条件之间的关系:
    E:最多有一个可能成立
    I:至少有一个必须成立
    O:有且仅有一个成立
    R:一个条件成立,另一个条件也必须成立
    M:一个条件成立时,另一个条件必须不成立
因果图生成步骤:
  • 分析程序说明中的因(输入条件或输入条件的等价类)和果(输出条件)
  • 找出原因与原因之间,原因与结果之间的对应关系,并画出因果图
  • 有些原因与原因,原因与结果之间的组合情况不可能出现,用记号表明约束和限制条件
  • 把因果图转换成判定表
  • 把判定表的每一列作为依据,设计测试用例

5.判定表

判定表可以将所有输入的全部组合情况一一列举出来,简洁明了,避免遗漏。

建立步骤:
  • 确定条件数量,假如有n个条件,每个条件有两个取值(0,1),共用2^n种组合
  • 列出所有的条件桩与动作桩
  • 填入所有条件项与动作项,得到初始判定表
  • 简化合并
  • 把判定表的每一列作为依据,设计测试用例

适用场合:
程序功能说明书中包含输入条件组合的情况

因果图判定表
分析因和果之间的关系后,再转化为判定表分析条件桩与动作桩后,全组合获取条件项

6.正交试验法

依据Galois理论,从大量的数据中挑选适量的、有代表性的测试数据,从而设计测试用例

步骤:

  • 根据需求,分析因子与水平
  • 查正交表
  • 替换因子与水平
  • 转换成测试用例

适应场合:
难从软件需求规格说明中得到原因和结果之间的关系时

例子:
假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览器浏览:(4因子,3水平)
WEB浏览器:Netscape6.2、IE6.0、Opera4.0
插件: 无、RealPlayer、MediaPlayer
应用服务器:IIS、Apache、Netscape Enterprise
操作系统:Windows2000、Windows NT、Linux

7.场景法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。

分析:
场景法既能覆盖条件为真的分支,也能覆盖条件为假的分支。
场景法不能验证每个界面的参数是否正确,验证的是流程,所以需要与开发进行沟通需求,需要在每个界面进行校验,如果错误,直接在当前界面提示信息,所以需要多种方法组合使用。

使用场合:
业务流程较为复杂的情况,只检查流程,不保证单功能的正确

8.状态迁移图法

找出所有的状态,分析各个状态之间的转换条件和转换路径,然后从状态迁移路径覆盖的角度来设计测试用例

步骤:

  • 分析需求,找出状态节点
  • 画出状态迁移图
  • 画出状态迁移树
  • 根据状态迁移树的路径设计测试用例

使用场合:
被测系统的功能依赖于数据的状态

总结

  • 拿到一个测试任务时,先考虑主要功能和业务流程,业务逻辑是否正确实现,考虑使用场景法
  • 需要数据输入的地方,考虑采用等价类划分法,将无限的测试变成有限的
  • 在任何情况下都要采用边界值分析法,能帮助我们发现更多的错误
  • 若程序的功能说明中包含输入数据的组合情况,考虑使用因果图法与判定表法
  • 对应参数配置类的任务,需要考虑参数之间的组合情况,考虑使用正交排列法,用最少的测试用例获得最大的测试覆盖率
  • 依靠测试工程师的经验,采用错误推测方法追加测试用例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值