首页 > 代码库 > 软件测试(六):黑盒测试

软件测试(六):黑盒测试

1.常见黑盒测试用例设计方法

等价类划分法、边界值分析法、因果图法、状态迁移法、判定表法、流程分析法、正交试验法、错误猜测法、输入/输出域测试法、异常分析法、

2.等价类划分法

  概念:某个输入域的集合,在这个集合中每个输入条件都是等效的。

 原则:

A.规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类

B.规定了输入值的集合,或是规定了必须如何的条件,则可确定一个有效等价类和一个无效等价类

C.布尔量,则可确定一个有效等价类和一个无效等价类

D.输入数据的一组值假定N个,并且程序要对每一个输入值分别处理,则可确定N个有效等价类和一个无效等价类

E.输入数据必须遵守什么的情况下,则可确定一个有效等价类和若干个无效等价类

F.已划好了等价类,各元素在程序处理中的方式不同,则应该进一步的划分

步骤:

  1. 划分等价类
  2. 为有效等价类设计测试用例
  3. 为每一个无效等价类至少设计一个测试用例

3.边界值分析法

  边界值使用条件:

  1. 输入条件明确了一个值的取值范围,或是规定了值的个数
  2. 输入条件明确了一个有序集合      

  边值点定义:上点、离点、内点

        原则:

  1. 输出条件规定了取值范围或个数,则应该选边界内或边界附近的值
  2. 输出条件规定了值的个数,则最大值、最小值、最大值+1、最小值-1、
  3. 输出条件是一个有序的集合,则集合的第一个和最后一个
  4. 若使用了内部数据,则应选择这个内部数据的边界值

步骤:

  1. 分析输入参数的类型(从SRS中)
  2. 等价类划分(可选)
  3. 确定边界
  4. 相关性分析(可选)
  5. 形成测试项

4.等价类+边界值

  适用范围:输入与输入之间、输出与输出之间各项无牵制关系的情况。

例如:用户注册

适用的测试类型:功能测试、性能测试、GUI测试、配置测试等

5.判定表法

概念:是分析和表达多逻辑条件下执行不同操作的情况的工具。

应用:

  1. 基于判定表的测试是最为严格、最具有逻辑性的
  2. 针对不同逻辑条件的组合值

组成:条件桩、条件项、动作桩、动作项

步骤:

  1. 确定规则的个数
  2. 列出所有的条件项桩和动作桩
  3. 填入条件项
  4. 填入动作项,得到初始决策表
  5. 简化决策表,合并相似规则(可选)
  6. 将每条规则转化为用例

优点:能把复杂的问题按各种可能的情况一一列举出不,简明而易于理解,可避免遗漏。

缺点:合并存在漏测。

适用范围:

  1. 规格说明以判定表的形式给出,或很容易转换成判定表
  2. 条件、规则的排列顺序不影响执行结果
  3. 每条规则都相对独立
  4. 一条规则可以转化成一条或多条用例,规则的用例数取决于转化的条件

6.因果图法

是把规格转化为判定表的系统化方法。它适合检查输入条件的各种组合情况。

步骤:  1.把大的系统规格划分解成可以测试的规格片段(可选)

      2.找出哪些是原因,哪些是结果

3.画出因果图

4.将因果图转换为判定表

5.简化判定表(可选)

6.生成测试用例

优点:

  1. 等价类中多个输入条件组合起来出错的情况被忽略
  2. 设计多个输入条件组合用例
  3. 能指出程序规格说明描述中存在什么问题

缺点:

  1. 输入条件与输出结果的因果关系,有时难以从SRS中得到
  2. 即使得到了因果关系,也会因为因果关系复杂导致用例数目及其庞大

条件与结果:恒等、非、或、与

  1. 恒等关系:当输入项发生,会产生对应输出,当输入项不发生,不会产生对应输出
  2. 非关系:与恒等关系相反(误区:如果前者不发生,则发生后者,前者发生,不发生后者)
  3. 或关系:多个输入条件中,只要有一个发生,则会产生对应输出
  4. 与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出

条件与条件:异、唯一、要求、或

  1. 异:最多一个输入条件发生
  2. 或:至少一个输入条件发生
  3. 唯一:所有输入中有且仅有一个发生

要求:只要其中一个输入发生,其他输入也会发生(误区:为什么充值和充值成功不是这个,因为他们不是同属输入条件,而是由先后条件,没什么关系)

7.流程分析法

这是从白盒测试中路径覆盖分析法中推广到黑盒测试中来的测试分析方法。

步骤:

  1. 画出业务流程图
  2. 定义状态节点和条件分支
  3. 确定测试路径
  4. 构造测试用例

总结:重点在测试流程,流程测试没有问题并不能说明系统功能就没有问题

8.状态迁移图法

  1. 状态机的测试主要关注在测试状态转移的正确性上面。
  2. 用这种方法可以设计逆向的测试用例,如状态和事件的非法组合。

概念:状态迁移法实际上是测试了各种状态的转换,这些状态转换的测试在实际工作中是很容易遗漏的,只要将这些状态的转换测试到,是不是采用状态迁移法并不重要,因为状态迁移图只不过是给出一种将多个状态的转换串起来进行测试的思路

步骤:

1.画出状态迁移图

2.列出状态-事件表

3.画出状态转换树(列出每个状态,画出所有从这个状态出发的状态)

4.从状态转换树推导出测试路径

5.根据测试路径编写合法测试用例

6.编写非法测试用例

9.正交试验法

概念:是从大量和试验点中挑出适量的、有代表性的点,应用迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法

相关概念:指标、因子、因子的状态

步骤:

  1. 构造因子状态表
  2. 选择正交表(当因子状态数没有时,选择因子+1,去掉多的列)
  3. 对号入座
  4. 合并
  5. 映射
  6. 写用例

总结:不考虑实际取值的意义,故删除无效的组合,补充漏掉的常见组合。

10.输入域测试法

只需要在使用完等价类、边界值的基础上再考虑特殊值和长时间输入

11.输出域覆盖法

期望达到输出或等价类覆盖

12.异常分析法

容错能力、故障恢复能力

13.错误猜测法

根据经验猜想。只能作为测试设计的补充,而不能单独用来设计测试用例。

14.用例设计方法总结

方法名称

特点

不足

测试类型

系统类型

备注

等价类,边界值

分类、覆盖

不考虑组合

所有类型

所有系统

需要关注数据背后的信息

判定表因果图

全排列组合、人工化简

比较繁琐

功能测试

控制系统、游戏

用于测试比较复杂的处理过程

正交试验

两两组合、自动选取

不关心组合的实际意义

功能测试、配置测试

所有系统

关键是正交表的选取

状态迁移

测试修改

 

功能测试

手机、MP3

编辑修改功能也可采用

流程分析

测试流程

 

功能测试、安装测试

金融系统、物流系统、电子 商务系统

业务流程复杂的系统适用,只检查流程,不保证单功能正确

软件测试(六):黑盒测试