第 2 章 黑盒测试

Post on 02-Jan-2016

172 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

第 2 章 黑盒测试

2.2 黑盒测试工具

2.1 黑盒测试方法

教学要求:

理解:黑盒测试概念

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

黑盒测试工具 QTP的使用

2.1 黑盒测试方法

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

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

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

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

2.1 黑盒测试方法 (续)

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

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

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

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

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

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

6. 初始化或终止错误。

2.1 黑盒测试方法 (续)

黑盒测试的优点有:

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

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

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

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

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

2.1 黑盒测试方法 (续)

黑盒测试的缺点有:

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

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

2.1 黑盒测试方法 (续)

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

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

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

2.1.1 等价类划分法

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

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

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

2.1.1 等价类划分法 (续)

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

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

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

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

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

2.1.1 等价类划分法 (续)

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

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

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

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

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

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

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

2.1.1 等价类划分法 (续)

2 .确定测试用例

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

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

2.1.1 等价类划分法 (续)

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

2.1.1 等价类划分法 (续)

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

列四种情况之一:

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

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

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

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

2.1.1 等价类划分法 (续)

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

分的名称和内容分别是:

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

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

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位数串

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 点

2.1.1 等价类划分法 (续)

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

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

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

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

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

2.1.2 边界值分析法

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

闭区间

半开半闭区间

开区间

离点 离点

离点离点

离点 离点

上点 上点

上点上点

上点上点

内点

内点

内点

2.1.2 边界值分析法 (续)

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

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

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

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

2.1.2 边界值分析法 (续)

1 .边界条件

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

有问题。

2.1.2 边界值分析法 (续)

2 .次边界条件

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

试仍有必要检查。

2.1.2 边界值分析法 (续)

3 .边界值的选择方法

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

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

等价类边界的测试用例。

2.1.2 边界值分析法 (续)

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

输出:实数

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

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 、输入 { 最大正实数 }

2.1.2 边界值分析法 (续)

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

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

2.1.3 因果图法

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

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

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

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

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

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

要求 强制

2.1.3 因果图法 (续 )

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

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

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

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

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

2.1.3 因果图法 (续 )

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

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

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

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

多个逻辑条件的组合。

2.1.3 因果图法 (续 )

判定表组成

2.1.3 因果图法 (续 )

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

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

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

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

发出提货单

O O O

发出通知单

O

2.1.3 因果图法 (续 )

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

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

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

2.1.3 因果图法 (续 )

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

因果图

2.2 黑盒测试工具

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

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

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

2.2.1 黑盒测试工具介绍

WinRunner

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

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

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

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

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

2.2.2 使用 QTP 进行黑盒测试

一.QuickTest工作流程

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

2. 录制测试脚本

3. 加强测试脚本

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

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

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

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

4. 执行测试脚本

5. 分析测试结果

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

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

1. 检查点的种类

2. 对象检查

3. 网页检查

4. 文字检查

5. 表格检查

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

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

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

1. 定义参数

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

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

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

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

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

实训习题

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

+10000间整数中的最大者

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

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

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

实训习题

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

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

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

Virus

top related