440 likes | 725 Views
第 2 章 黑盒测试. 2.1 黑盒测试方法. 2.2 黑盒测试工具. 教学要求:. 理解:黑盒测试概念 掌握:等价类划分、边界值分析和因果图等方法、黑盒测试工具 QTP 的使用. 2.1 黑盒测试方法. 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。. 2.1 黑盒测试方法 (续). 黑盒测试主要试图发现下列几类错误: 是否有不正确或遗漏了的功能 在接口上,能否正确地接受输入数据,能否产生正确地输出信息 访问外部信息是否有错;
E N D
第2章 黑盒测试 2.1 黑盒测试方法 2.2 黑盒测试工具
教学要求: • 理解:黑盒测试概念 • 掌握:等价类划分、边界值分析和因果图等方法、黑盒测试工具QTP的使用
2.1 黑盒测试方法 • 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 • 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
2.1 黑盒测试方法 (续) • 黑盒测试主要试图发现下列几类错误: • 是否有不正确或遗漏了的功能 • 在接口上,能否正确地接受输入数据,能否产生正确地输出信息 • 访问外部信息是否有错; • 性能上是否满足要求; • 界面是否错误,是否不美观; • 初始化或终止错误。
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 ),则输出下列四种情况之一: • 如果不满足条件(5),则程序输出为 " 非三角形 " 。 • 如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 • 如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 • 如果三条边都不相等,则程序输出为 " 一般三角形 " 。
2.1.1 等价类划分法 (续) • 例2-3 城市的电话号码由两部分组成。这两部分的名称和内容分别是: • 地区码:以0开头的三位或者四位数字(包括0); • 电话号码:以非0、非1开头的七位或者八位数字。
2.1.1 等价类划分法 (续) • 划分等价类
2.1.1 等价类划分法 (续) • 例2-4 保险公司计算保费费率的程序 • 某保险公司的人寿保险的保费计算方式为:投保额×保险费率 • 其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下所示:
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”表示某状态出现。
2.1.3 因果图法 (续) • 因果图设计步骤如下: • 分析程序规格说明的描述中,哪些是原因,哪些是结果。并给每个原因和结果赋予一个标识符。 • 分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。 • 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。 • 把因果图转换成判定表。 • 把判定表的每一列拿出来作为依据,设计测试用例。
2.1.3 因果图法 (续) • 判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具。 • 利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合。
2.1.3 因果图法 (续) • 判定表组成
2.1.3 因果图法 (续) • 例2-9 订购单的检查。如果金额超过500元,又未过期,则发出批准单和提货单;如果金额超过500元,但过期了,则不发批准单;如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。 • 将这段需求进行判定表分析,可以得到如下判定表
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工作流程 • 录制测试脚本前的准备 • 录制测试脚本 • 加强测试脚本
2.2.2 使用QTP进行黑盒测试(续) • 测试脚本 • 当浏览网站或使用应用程序时,QuickTest会纪录你的操作步骤,并产生测试脚本。当停止录制后,会看到QuickTest在Keyword View中以表格的方式显示测试脚本的操作步骤。 • 录制测试前的准备 • 录制测试脚本 • 分析录制的测试脚本 • 执行测试脚本 • 分析测试结果
2.2.2 使用QTP进行黑盒测试(续) • 建立检查点 • 检查点是将指定属性的当前值与该属性的期望值进行比较的验证点。 • 检查点的种类 • 对象检查 • 网页检查 • 文字检查 • 表格检查 • 执行并分析使用检查点的测试脚本
2.2.2 使用QTP进行黑盒测试(续) • 参数化测试脚本 • 参数化测试脚本包括数据输入的参数化和检测点的参数化 • 定义参数 • 修正受到参数化影响的步骤 • 执行并分析使用参数的测试脚本
2.2.2 使用QTP进行黑盒测试(续) • 输出值的测试 • 创建输出值 • 执行并分析使用输出值的测试脚本
实训习题 • 现有一个小程序,能够求出三个在-10000到+10000间整数中的最大者 • 有一个文本框要输入我们国家的身份证号,请设计相应的测试用例。 • 现在要测试一个程序,在文本框中输入一个日期,能够显示出这个日期的下一天的日期。例如,在文本框中输入2006-5-1,能够显示出2006-5-2。请写出该程序的测试用例。
实训习题 4.下面是医院管理系统中的入院管理模块的需求说明,请根据需求说明写出测试用例。 • 1)病人基本资料表录入、修改、删除、复制 • 2)病人基本资料查询。 • 3)病人预交款资料查询。 5. 实现QTP运行时从EXCEL文件中循环读取手机号码,自动生成唯一的随机密码(需要查询数据库),若生成密码在数据库中不唯一则重新生成,直到密码唯一后方可执行下一步操作。设置检查点,检查充值是否成功,若不成功则需要重新充值,直到充值成功为止;为满足业务要求不使用QTP自带的检查点功能;为了使脚本能在不同机器上正常运行,不使用QTP对象库中生成的对象而使用手工编写对象识别。