44
第 2 第 第第第第 2.2 黑黑黑黑黑黑 2.1 黑黑黑黑黑黑

第 2 章 黑盒测试

Embed Size (px)

DESCRIPTION

第 2 章 黑盒测试. 2.1 黑盒测试方法. 2.2 黑盒测试工具. 教学要求:. 理解:黑盒测试概念 掌握:等价类划分、边界值分析和因果图等方法、黑盒测试工具 QTP 的使用. 2.1 黑盒测试方法. 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。. 2.1 黑盒测试方法 (续). 黑盒测试主要试图发现下列几类错误: 是否有不正确或遗漏了的功能 在接口上,能否正确地接受输入数据,能否产生正确地输出信息 访问外部信息是否有错; - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章 黑盒测试

第 2 章 黑盒测试

2.2 黑盒测试工具

2.1 黑盒测试方法

Page 2: 第 2 章 黑盒测试

教学要求:

理解:黑盒测试概念

掌握:等价类划分、边界值分析和因果图等方法、

黑盒测试工具 QTP的使用

Page 3: 第 2 章 黑盒测试

2.1 黑盒测试方法

黑盒测试也称功能测试,它是通过测试来检测每

个功能是否都能正常使用。

黑盒测试着眼于程序外部结构,不考虑内部逻辑

结构,主要针对软件界面和软件功能进行测试。

Page 4: 第 2 章 黑盒测试

2.1 黑盒测试方法 (续)

黑盒测试主要试图发现下列几类错误:

1. 是否有不正确或遗漏了的功能

2. 在接口上,能否正确地接受输入数据,能否产生正确地输出信息

3. 访问外部信息是否有错;

4. 性能上是否满足要求;

5. 界面是否错误,是否不美观;

6. 初始化或终止错误。

Page 5: 第 2 章 黑盒测试

2.1 黑盒测试方法 (续)

黑盒测试的优点有:

1 )比较简单,不需要了解程序内部的代码及实现;

2 )与软件的内部实现无关;

3 )从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4 )基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

5 )在做软件自动化测试时较为方便。

Page 6: 第 2 章 黑盒测试

2.1 黑盒测试方法 (续)

黑盒测试的缺点有:

1 )不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30% ;

2 )自动化测试的复用性较低。

Page 7: 第 2 章 黑盒测试

2.1 黑盒测试方法 (续)

具体的黑盒测试用例设计方法包括等价类划分

法、边界值分析法、错误推测法、因果图法、

判定表驱动法、正交试验设计法、功能图法等。

Page 8: 第 2 章 黑盒测试

2.1.1 等价类划分法

等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。

每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表

Page 9: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

1 .划分等价类和列出等价类表 等价类是指某个输入域的子集合。在该子集合中,各个输

入数据对于揭露程序中的错误都是等效的。

等价类划分:有效等价类和无效等价类。

有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。

无效等价类:与有效等价类的定义恰巧相反。

Page 10: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

确定等价类的原则: 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价

类和两个无效等价类。 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,

可以确立一个有效等价类和一个无效等价类。 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等

价类。 在规定了输入数据的一组值(假定 n 个),并且程序要对每一个输入值分

别处理的情况下,可确立 n 个有效等价类和一个无效等价类。 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符

合规则)和若干个无效等价类(从不同角度违反规则)。 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则

应再将该等价类进一步地划分为更小的等价类。

Page 11: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

2 .确定测试用例

为每个等价类规定一个惟一的编号。

设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。

Page 12: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

例 2-1 某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … ”。用等价类划分方法为该程序进行测试用例设计。

Page 13: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

分析: ( 1 )整数 ( 2 )三个数 ( 3 )非零数 ( 4 )正数 ( 5 )两边之和大于第三边 ( 6 )等腰 ( 7 )等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下

列四种情况之一:

1. 如果不满足条件( 5 ),则程序输出为 " 非三角形 " 。

2. 如果三条边相等即满足条件( 7 ),则程序输出为 " 等边三角形 " 。

3. 如果只有两条边相等、即满足条件( 6 ),则程序输出为 " 等腰三角形 " 。

4. 如果三条边都不相等,则程序输出为 " 一般三角形 " 。

Page 14: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

例 2-3 城市的电话号码由两部分组成。这两部

分的名称和内容分别是:

地区码:以 0 开头的三位或者四位数字(包括0 );

电话号码:以非 0 、非 1 开头的七位或者八位数字。

Page 15: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

划分等价类 输入数据 有效等价类 无效等价类

地区码以 0 开头的 3位数串

以 0 开头的 4位数串

以 0 开头的含有非数字字符的串

以 0 开头的小于 3位的数串

以 0 开头的大于 4位的数串

以非 0 开头的数串

电话号码以非 0 、非 1 开头的 7位数串

以非 0 、非 1 开头的 8位数串

以 0 开头的数串

以 1 开头的数串

以非 0 、非 1 开头的含有非法字符 7 或者 8位数串

以非 0 、非 1 开头的小于 7位数串

以非 0 、非 1 开头的大于 8位数串

Page 16: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

例 2-4 保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为:投保额 ×保险费率 其中,保险费率依点数不同而有别, 10 点及 10 点以上保险费率为

0.6%, 10 点以下保险费率为 0.1% ;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下所示:

年龄 性别 婚姻 抚养人数

20~39 40~59 其它 M F 已婚 未婚 1人扣 0.5 点

最多扣 3 点

(四舍五入取整) 6 点 4 点 2 点 5 点 3 点 3 点 5 点

Page 17: 第 2 章 黑盒测试

2.1.1 等价类划分法 (续)

分析:年龄:一位或两位非零整数,值的有效范围为1~99

性别:一位英文字符,只能取值‘ M’ 或’ F’

婚姻:字符,只能取值‘已婚’或‘未婚’

抚养人数:空白或一位非零整数( 1~9 )

点数 :一位或两位非零整数,值的范围为 1~99

Page 18: 第 2 章 黑盒测试

2.1.2 边界值分析法

边界点: 边界点分为上点、内点和离点

闭区间

半开半闭区间

开区间

离点 离点

离点离点

离点 离点

上点 上点

上点上点

上点上点

内点

内点

内点

Page 19: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

边界值分析方法的原则: 如果输入(输出)条件规定了取值范围,则应该以该

范围的边界值及边界附近的值作为测试数据; 如果输入(输出)条件规定了值的个数,则用最大个

数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据;

如果程序规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试数据;

Page 20: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

1 .边界条件

就是特殊情况,因为编程从根本上说不怀疑边界

有问题。

Page 21: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

2 .次边界条件

在软件内部,最终用户几乎看不到,但是软件测

试仍有必要检查。

Page 22: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

3 .边界值的选择方法

边界值分析是一种补充等价划分的测试用例设计

技术,它不是选择等价类的任意元素,而是选择

等价类边界的测试用例。

Page 23: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

例 2-6 :测试计算平方根的函数 输入:实数

输出:实数

规格说明:当输入一个 0 或比 0 大的数的时候,返回其正平方根;当输入一个小于 0 的数时,显示错误信息 "平方根非法 - 输入值小于 0" 并返回 0 ;库函数 Print-Line 可以用来输出错误信息。

Page 24: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

1) 等价类划分: I. 可以考虑作出如下划分: a 、输入 (i)<0 和 (ii)>=0 b 、输出 (a)>=0 和 (b) Error II. 测试用例有两个: a 、输入 4 ,输出 2 。对应于 (ii) 和 (a) 。 b 、输入 -10 ,输出 0 和错误提示。对应于 (i) 和 (b) 。 2) 边界值分析: 划分 (ii) 的边界为 0 和最大正实数;划分 (i) 的边界为最小负实数和 0 。 a 、输入 { 最小负实数 }

b 、输入 {绝对值很小的负数 }

c 、输入 0 d 、输入 {绝对值很小的正数 }

e 、输入 { 最大正实数 }

Page 25: 第 2 章 黑盒测试

2.1.2 边界值分析法 (续)

例 2-6 现有一个学生标准化考试批阅试卷 ,产生成绩报告的程序。

其规格说明如下 : 程序的输入文件由一些有 80 个字符的记录组成 ,

Page 26: 第 2 章 黑盒测试

2.1.3 因果图法

因果图法是从用自然语言书写的程序规格说明的

描述中找出因(输入条件)和果(输出或程序状

态的改变),通过因果图转换为判定表。

因果图方法最终生成的就是判定表,它适合于检

查程序输入条件的各种组合情况。

Page 27: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

用 c 表示原因, e 表示结果,。各结点表

示状态,可取“ 0” 或“ 1” 值。“ 0” 表

示某状态不出现,“ 1” 表示某状态出现。 c1 e1 e1

c2

c3

e1 c2

C1

c1

c1 c1

(a)恒等 (b)非

V

(c)或

A

(d)与

a a a

a a

b b b

b b

c

E

异I

O

唯一

R M

要求 强制

Page 28: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

因果图设计步骤如下: 分析程序规格说明的描述中,哪些是原因,哪些是结果。并给每个原

因和结果赋予一个标识符。 分析软件规格说明描述中的语义,找出原因与结果之间 , 原因与原

因之间对应的关系,根据这些关系 , 画出因果图。 由于语法或环境限制 , 有些原因与原因之间 , 原因与结果之间的组

合情况不可能出现,为表明这些特殊情况 , 在因果图上用一些记号表明约束或限制条件。

把因果图转换成判定表。 把判定表的每一列拿出来作为依据 , 设计测试用例。

Page 29: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

判定表( Decision Table )是分析和表达多

逻辑条件下执行不同操作的情况下的工具。

利用判定表能够设计出完整的测试用例集合。在

一些数据处理问题当中,某些操作的实施依赖于

多个逻辑条件的组合。

Page 30: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

判定表组成

Page 31: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

例 2-9 订购单的检查。如果金额超过 500 元,又未过期,则发出批准单和提货单;如果金额超过500 元,但过期了,则不发批准单;如果金额低于 500 元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。

将这段需求进行判定表分析,可以得到如下判定表

金额 >500 >500 <=500 <=500

状态 未过期 已过期 未过期 已过期发出批准单 O O O

发出提货单

O O O

发出通知单

O

Page 32: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

例 2-10 有一个处理单价为 1元 5 角钱的盒装饮料的自动售货机软件。若投入 1元 5 角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还 5 角硬币。

原因: 投入 1元 5 角硬币; 投入 2 元硬币; 按“可乐”按钮; 按“雪碧”按钮; 按“红茶”按钮。 中间状态: 已投币; 已按钮。

结果:退还 5角硬币;送出“可乐”饮料;送出“雪碧”饮料;送出“红茶”饮料。

Page 33: 第 2 章 黑盒测试

2.1.3 因果图法 (续 )

根据原因和结果,设计这样一个

因果图

Page 34: 第 2 章 黑盒测试

2.2 黑盒测试工具

常用的黑盒测试工具包括:

功能测试工具。用于检测程序能否达到预期的功能呢要求并正常运行。

性能测试工具。用于确定软件和系统的性能。

Page 35: 第 2 章 黑盒测试

2.2.1 黑盒测试工具介绍

WinRunner

Mercury Interactive 公司的WinRunner 是一种企业级的功能测试工具,用于检测应用程序

Page 36: 第 2 章 黑盒测试

2.2.1 黑盒测试工具介绍 (续)

QTP是 quicktest Professional 的简称,是一种自动测试工具。

QTP 是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样, QTP

不能完全取代测试人员的手工操作,但是在某个功能点上,使用 QTP 的确能够帮助测试人员做很多工作。

Page 37: 第 2 章 黑盒测试

2.2.2 使用 QTP 进行黑盒测试

一.QuickTest工作流程

1. 录制测试脚本前的准备

2. 录制测试脚本

3. 加强测试脚本

Page 38: 第 2 章 黑盒测试

2.2.2 使用 QTP 进行黑盒测试(续)

二.测试脚本 当浏览网站或使用应用程序时, QuickTest 会纪录你

的操作步骤,并产生测试脚本。当停止录制后,会看到QuickTest在 Keyword View 中以表格的方式显示测试脚本的操作步骤。

1. 录制测试前的准备2. 录制测试脚本3. 分析录制的测试脚本

4. 执行测试脚本

5. 分析测试结果

Page 39: 第 2 章 黑盒测试

2.2.2 使用 QTP 进行黑盒测试(续)

三.建立检查点 检查点是将指定属性的当前值与该属性的期望值进行比较的验证点。

1. 检查点的种类

2. 对象检查

3. 网页检查

4. 文字检查

5. 表格检查

6. 执行并分析使用检查点的测试脚本

Page 40: 第 2 章 黑盒测试

2.2.2 使用 QTP 进行黑盒测试(续)

四.参数化测试脚本 参数化测试脚本包括数据输入的参数化和检测点的参数

1. 定义参数

2. 修正受到参数化影响的步骤

3. 执行并分析使用参数的测试脚本

Page 41: 第 2 章 黑盒测试

2.2.2 使用 QTP 进行黑盒测试(续)

五.输出值的测试1. 创建输出值

2. 执行并分析使用输出值的测试脚本

Page 42: 第 2 章 黑盒测试

实训习题

1. 现有一个小程序,能够求出三个在 -10000到

+10000间整数中的最大者

2. 有一个文本框要输入我们国家的身份证号,请设计相应的测试用例。

3. 现在要测试一个程序,在文本框中输入一个日期,能够显示出这个日期的下一天的日期。例如,在文本框中输入 2006-5-1 ,能够显示出 2006-

5-2 。请写出该程序的测试用例。

Page 43: 第 2 章 黑盒测试

实训习题

4. 下面是医院管理系统中的入院管理模块的需求说明,请根据需求说明写出测试用例。

1 )病人基本资料表录入、修改、删除、复制 2 )病人基本资料查询。 3 )病人预交款资料查询。

5. 实现 QTP运行时从 EXCEL 文件中循环读取手机号码,自动生成唯一的随机密码(需要查询数据库),若生成密码在数据库中不唯一则重新生成,直到密码唯一后方可执行下一步操作。设置检查点,检查充值是否成功,若不成功则需要重新充值,直到充值成功为止;为满足业务要求不使用 QTP 自带的检查点功能;为了使脚本能在不同机器上正常运行,不使用 QTP 对象库中生成的对象而使用手工编写对象识别。

Page 44: 第 2 章 黑盒测试

Virus