测试理论--黑白盒测试

设计测试用例的常见方法主要有黑白盒

黑盒测试

黑盒测试是一种基于证明功能需求和用户最终需求的测试方法

测试方法

常用测试方法有:等价类、边界值、场景法和错误推测

1.等价类

(1)定义:是把所有的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。是一种非常重要的、常用的黑盒测试用例设计方法。

(2)划分为两种:有效等价类、无效等价类
划分等价类的标准:

  • 完备性:划分的子集合的并集是整个集合;
  • 无冗余性:子集互不相交;
  • 等价性:属于同一等价类的测试数据,映射到”相同的执行路径"。

(3)设计测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类 无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

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

案例 :要求用户输入年份,年份限定在1980年~2020年,由4位数字表示。
使用等价类划分法,首先确定有效等价类:4位数字字符且年份为1980~2020,然后确定无效等价类:如输入的类型和长度不合理,年份超出范围等,具体如下表所示:

在这里插入图片描述
在这里插入图片描述

2.边界值

1、定义:边界值是对等价类划分方法的补充,多用于对数据进行测试,在数据测试的时候, 除了要关注边界值还要关注默认值,空白,空值,零值和无。除上述常规数据外, 非常规的数据还要关注非法值、错误值、不正确值和垃圾数据,即所有可能的无效等价类数据。

2、使用步骤
1) 测试需求分析,找出全部条件(显示、隐示)(条件之间不能交叉或者组合,到设计用例的时候再考虑多条件的组合)
2) 划分等价类
划分依据:相同的处理方式(路径)
分类:有效等价类、无效等价类
3)使用边界值补充(有序、有范围的)等价类
内容:上点、离点、内点
要求:上点、内点与区间开闭无关,离点和上点互为有效
分类:将边界值分为有效边界和无效边界,填入等价类表格
4)对每个等价类进行唯一的编号
5)设计用例的输入
原则:有效等价类,一对多
无效等价类,一对一

示例
在这里插入图片描述

1、测试需求分析

  1. 内容:字母、数字、下划线
  2. 长度:[6,18]
  3. 约束:字母开头、字母或数字结尾、 不允许重名、不允许使用保留字、自动去除首尾空格

2、等价类划分
在这里插入图片描述

3、用例设计

3.场景法

1、定义:场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。在冒烟测试时也主要采用场景法进行测试。
场景法一般包含基本流、备用流和异常流:

  • 基本流表示通过业务流程时输入都正确,能达到目标;
  • 备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到能达到目标;
  • 异常流是指通过业务流程时输入错误(或者操作错误)产生异常终止流程 。

2、基本流和备选流的识别原则

  • 一个业务只存在一个基本流;
  • 基本流只有一个起点,一个终点;
  • 基本流是主流,备选流是支流;
  • 备选流可以起始于基本流,也可以起始于其它备选流;
  • 备选流的终点可以是一个流程的出口,也可以是回到基本流,还可以是汇入其它的备选流;

3. 场景法设计测试用例步骤
画出需要测试路径的流程图(一般选择工具Office Visio)
分析基本流和备选流
根据基本流和备选流设计测试用例

当使用场景测试程序没有问题时,再使用边界值、等价类进行更加细致、完整的测试。

4.错误推测

1、定义:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试方法。
错误推测法和目前非常流行的“探索式测试方法”的基本思想和理念是不谋而合的,这类方法在目前的敏捷开发模式下的投入产出比很高,因此被广泛应用。但是,这个方法的缺点也显而易见,那就是难以系统化,并且过度依赖个人能力。

2、错误推测方法分类
(1) 输入数据测试方面

  • 输入非法数据:非法类型、非法范围/长度、非法格式
    注意错误信息检查:包括错误信息与错误要对应一致、错误信息不能为空、错误信息不能包含开发代码等等…
  • 输入默认值:接受软件的默认值、键入空值、把默认值改为另一个值、把默认值改为另一个值,再变为空值
  • 输入特殊字符(集):根据被测软件所处的操作系统、程序设计语言、后台数据库以及具体业务等信息列出表格,进行讨论,标明哪些需要测试,哪些需要剔除。(了解具体行业知识,具体问题具体分析)
  • 通过复制粘贴强制输入程序不允许输入的数据

(2) 输出数据方面

  • 同一个输入产生多种输出
  • 验证输出结果的正确性

(3) 数据结构方面的错误推测

  • 数据结构溢出
    eg: 变量:上溢->值太大; 下溢->值太小
    数组:上溢->数据量太多; 下溢->数据量太少
  • 计算结果溢出:输入非法值或很小与很大数据,强制结果产生下溢或上溢
  • 操作数和操作符不符

(4)文件系统方面的错误推测

  • 使文件系统超载, 适用于数据存储到硬盘中时;测试方法:
    – 创建满容量或近乎满容量的文件系统,然后强制执行各种通过输入或输出访问文件系统的操作。
    – 打开足够多的文件,文件打开时会强制创建备份副本,从而占用双倍的存储空间。
    – 使用工具 Canned Heat,模拟文件系统超载。

  • 更改文件访问权限

  • 使介质忙或不可用
    在这里插入图片描述

  • 介质损坏

5.决策表

决策表的 分析步骤

  1. 需求分析:分析输入和输出–》 用等价类划分分析输入的各种情况、输出的各种情况
  2. 画判定表
  3. 分析与简化判定表

案例:测试两位数加法计算器
在这里插入图片描述
在这里插入图片描述

6.因果图法

等价类划分和边界值方法都是着重考虑输入条件,而因果图考虑输入条件的各种组合
特点:考虑输入条件的相互制约及组合关系;考虑输出条件对输入条件的依赖关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.判定表法

因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例

条件桩(Condition Stub):列出了问题的所有条件.通常认为列出的条件的次序无关紧要.
动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.
条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.
在这里插入图片描述

测试方法选择的综合策略

1.首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效方法。
2.在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。
3.用错误推测法再追加一些测试用例。
4.对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
5.对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。

主要测试的错误类型有:

①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。

黑盒测试优缺点

优点:

  • 从产品功能角度测试可以最大程度满足用户的需求。
  • 相同动作可重复执行,最枯燥的部分可由机器完成。
  • 依据测试用例针对性地找寻问题,定位更为准确,容易生成测试数据。
  • 将测试直接和程序/系统要完成的操作相关联。

缺点:

  • 代码得不到测试
  • 如果规格说明设计有误,很难发现
  • 测试不能充分的进行
  • 结果取决于测试用例的设计

测试用例的设计方法

# 白盒测试 待补充....
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值