软件工程黑盒测试_第1页
软件工程黑盒测试_第2页
软件工程黑盒测试_第3页
软件工程黑盒测试_第4页
软件工程黑盒测试_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、15.4黑盒测试的测试用例设计 5.4.1 等价类划分法(等价分配) 把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别或等价区间),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同. 可从每个子集中选取一组数据来测试程序2例:某报表处理系统要求用户输入处理报表 的日期,日期限制在2003年1月至2008年 12月,即系统只能对该段期间内的报表 进行处理,如日期不在此范围内,则显 示输入错误信息。 系统日期规定由年、月的6位数字字符组 成,前四位代表年,后两位代表月。 如何用等价类划分法设计测试用例, 来测试程序的日期检查功能?3如何划分等价类?

2、有效等价类(合理等价类)无效等价类(不合理等价类) 划分等价类的标准:覆盖不相交代表性4划分等价类的规则 (1)如果输入条件规定了取值范围,可定义一个有 效等价类和两个无效等价类。例 输入值是学生成绩,范围是01000 100 有效等价类0成绩100无效等价类 成绩100 无效等价类 成绩0(2)如果输入条件代表集合的某个元素,则可定义 一个有效等价类和一个无效等价类。5划分等价类的规则:(3)如规定了输入数据的一组值,且程序对不同输 入值做不同处理,则每个允许的输入值是一个 有效等价类,并有一个无效等价类(所有不允 许的输入值的集合)。例:输入条件说明学历可为:专科、本科、硕士、博士四 种之

3、一,则分别取这四个值作为四个有效等价类, 另外把四种学历之外的任何学历作为无效等价类(4)如果规定了输入数据必须遵循的规则,可确定 一个有效等价类(符合规则)和若干个无效等 价类(从不同角度违反规则)。(5)如已划分的等价类各元素在程序中的处理方式 不同,则应将此等价类进一步划分成更小的等 价类。6用等价类划分法设计测试用例步骤:(1)形成等价类表,每一等价类规定一个 唯一的编号;(2)设计一测试用例,使其尽可能多地覆 盖尚未覆盖的有效等价类,重复这一 步骤,直到所有有效等价类均被测试 用例所覆盖;(3)设计一新测试用例,使其只覆盖一个 无效等价类,重复这一步骤直到所有 无效等价类均被覆盖;7

4、第一步:等价类划分输入条件 有效等价类 无效等价类 报表日期的类型及长度6位数字字符(1)有非数字字符 (4)少于6个数字字符 (5)多于6个数字字符 (6)年份范围在20032008之间 (2)小于2003 (7)大于2008 (8)月份范围在112之间(3)“报表日期”输入条件的等价类表小于1 (9)大于12 (10)8第二步:为有效等价类设计测试用例 测试数据 期望结果 覆盖范围200306等价类(1)(2)(3)输入有效对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:(1)6位数字字符(2)年在20032008之间 (3)月在112之间9第三步:为每一个无效等价类设至少 设计

5、一个测试用例 测试数据 期望结果 覆盖范围003MAY等价类(4)输入无效20035等价类(5)输入无效等价类(6)输入无效200105等价类(7)输入无效200905等价类(8)输入无效200300等价类(9)输入无效200313等价类(10)输入无效不能出现相同的测试用例本例的10个等价类至少需要8个测试用例10例:对招干考试系统“输入学生成绩”子模块 设计测试录入准考证号的测试用例准考证号数据格式定义:共6为数字组成,其中第一位为专业代号:1-行政专业,2-法律专业,3-财经专业后5位为考生顺序号,编码范围为: 行政专业准考证号码为:110001111215 法律专业准考证号码为:210

6、001212006 财经专业准考证号码为:310001314015 准考证号码的等价类划分 有效等价类: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 无效等价类: (4) - 110000 (5) 111216 210000 (6) 212007 31000 (7) 314016 + 115.4.2 边界值分析法边界值分析法与等价类划分法区别(1)边界值分析不是从某等价类中 随便挑一个作为代表,而是使 这个等价类的每个边界都要作 为测试条件。(2)边界值分析不仅考虑输入条件, 还要考虑输出空间产生的测试 情况被测试子 域测试内点测

7、试外点 如果在悬崖峭壁边可以自信地安全行走,平地就不在话下。 如果软件在能力达到极限时能够运行,那么在正常情况下就不会出什么问题。软件边界与悬崖很类似12输入条件报表日期的类型及长度1个数字字符5个数字字符7个数字字符有1个非数字字符全部是非数字字符6个数字字符显示出错显示出错显示出错显示出错显示出错输入有效日期范围月份范围“报表日期”边界值分析法测试用例测试用例说明测试数据期望结果选取理由5200352003.5MAY-200305月份为1月月份为12月月份12200301200312200300200313200301200812200300200813输入有效输入有效显示出错显示出错输入

8、有效输入有效显示出错显示出错在有效范围边界上选取数据仅有1个合法字符比有效长度少1比有效长度多1只有1个非法字符6个非法字符类型及长度均有效最小日期最大日期刚好小于最小日期刚好大于最大日期最小月份最大月份刚好小于最小月份刚好大于最大月份13有效等价类和用来测试getNumDaysInMonth()方法所选的有效输入 有效等价类一个月有31天,非闰年19017(七月)一个月有31天, 闰年19047(七月)一个月有30天,非闰年19016(六月)一个月有30天, 闰年19046(六月)一个月为28或29天,非闰年19012(二月)月份输入值年份输入值一个月为28或29天, 闰年2(二月)1904

9、14用来测试getNumDaysInMonth()方法的附加边界值 等价类可以被400整除的闰年20002(二月)可以被100整除的非闰年19002(二月)非正数无效月份12910正数无效月份131513月份输入值年份输入值155.4.3 错误推测法(error guessing)根据经验、直觉和预感来进行测试例如:一定要考虑建立处理下列等价类:缺省值空白空值零值无输入条件在已经找到软件缺陷的地方再找找 165.4.4 因果图法 因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。 因果图方法最终生成的是判定表。17因果图方法实例某电力公司有A、B、C、D四类收费标准

10、,并规定:居民用电 100度/月 按A类收费 100度/月按B类收费动力用电 10000度/月,非高峰,B类收费 10000度/月,非高峰,C类收费 10000度/月, 高峰,C类收费 10000度/月, 高峰,D类收费18 用因果图表明输入和输出间的逻辑关系1I12ABC435DI4I3I2因果19把因果图转换为判定表组合条件条件(原因) 动作(结果)ABC123123456101100011000110000100001104101050011D000110010000测试用例20为判定表每一列设计一个测试用例:1列 居民电,90度/月 A2列 居民电,110度/月 B3列 动力电,非高峰

11、,8000度/月 B4列 动力电,非高峰,1.2万度/月 C5列 动力电, 高峰,0.9万度/月 C6列 动力电, 高峰,1.1万度/月 D 条件 测试用例 预期结果组合 (输入数据) (输出动作)215.4.5 状态测试 软件必须测试程序的状态及其转换。测试软件的逻辑流程建立状态转换图减少要测试的状态及转换的数量空闲等待用户输入命令按下Esc键显示口令框口令错误 消除口令正确初始状态消失空闲等待用户输入命令按下Esc键口令正确口令错误不同形式的状态转换图 在黑盒测试中,不必了解代码中设置的地层变量,从软件用户的角度建立状态图即可22减少要测试的状态及转换的数量每种状态至少访问一次测试最常见最

12、普遍的状态转换测试状态之间最不常用的分支测试所有错误状态及其返回值、测试随即状态转换失败状态测试找到测试软件失败的案例。竞争条件和时序错乱重复压迫重负应联合使用,同时进行23设置2Bwatch 上的时间的顺序图:2Bwatch用户按下左和右按钮:2Bwatch输入:2Bwatch显示:2Bwatch时间时间按下左按钮按下右按钮按下左和右按钮闪烁小时闪烁分钟增加分钟刷新提交更新时间停止闪烁242Bwatch 设置时间功能的状态图和测试结果 按左按钮 按右按钮按左按钮 按右按钮4. 2分钟以后测量时间设置时间电池没电3.按下左右按钮5.按下左右按钮/蜂鸣8. 20年以后7. 20年以后6.2.1.

13、激励因素空集合测量时间1.初始变迁测试的变迁预期结果状态按下左边按钮测量时间2.同时按下两个按钮设置时间3.等2分钟测量时间4.超时255.5 针对专门环境和应用的测试5.5.1 GUI测试 常见GUI测试指南:对于窗口对于菜单和鼠标操作对于数据项265.5.2 C/S体系结构的测试 整体C/S测试策略(三个不同层次)客户端应以“分离的”模式被测试 (不考虑服务器和底层网络的运行)客户端软件和关联的服务器端应用被一起测试(网络运行不被明显考虑)完整的C/S体系结构(包括网络运行和性能)被测试27 C/S常用测试方法客户端应用功能测试服务器测试(协调和数据管理功能、性能)数据库测试事务测试网络通

14、信测试285.5.3 实时系统测试 可采用以下四步策略:(1) 任务测试(2) 行为测试(3) 任务间测试(4) 系统测试29(1) 任务测试 (task testing) 对每一个任务进行单独测试(白盒、黑盒测试),发现逻辑和功能上错误,不能发现定时上和行为上错误 。30(2)行为测试(behavioral testing) 用CASE工具创建应用系统模型,模拟实时系统行为。 按类测试各种事件(如中断、控制信号、数据)。 测试过的事件以随机次序、随机频率送给系统,检查软件行为方面的错误.31(3)任务间测试(intertask testing) 检查与时间有关错误。 如用不同数据速率、处理负

15、载 测试相互通信的异步任务。 通过消息队列或数据存储测试 任务间的通信来找出数据存储区错 误的范围。32(4) 系统测试 (system testing) 软件、硬件组装后,找出软、硬件接口错误。33软件测试的过程单元测试被测模块集成测试设计信息单元测试被测模块单元测试被测模块测试过的模块确认测试系统测试软件需求其它系统元素装配好的软件 确认的软件可运行的软件5.6软件测试的步骤34软件测试策略单元测试UCDRSIVST集成测试确认测试系统测试系统工程软件需求分析软件设计代码编写355.6.1 单元测试一.单元测试的内容主要对模块的五个基本特性进行评价模块错误处理模块接口局部数据结构 重要的执

16、行路径边界条件361.常见错误类型 接口错误I/O错误数据结构错误算法错误比较及控制逻辑错误错误处理错误372. 模块测试基本原则 至少一次测试所有语句测试所有可能的执行或逻辑路径的组合测试每个模块的所有入口和出口383. 确定单元测试数据集 值域值类离散值值的次序集(测试顺序文件和表) 39二. 单元测试的方法单元测试一般为编码步骤的附属部分.模块不是独立的程序,自己不能运行,要靠其它部分来调用和驱动,要为每个单元测试开发两个软件:(1)驱动模块(驱动程序):相当于主模块(2)桩模块(测试存根、连接程序): 代替所测模块调用的子模块40单元测试的测试环境举例:BACDE待测试模块41单元测试

17、的测试环境举例:被测模块 B 驱动模块(模拟模块A)桩模块(测试存根)(模拟模块E)测试用例测试结果许多模块不能用简单的软件进行充分的单元测试, 此时, 完全的测试可放到集成测试阶段再进行.42单元测试的测试环境举例: 实际软件华氏到慑氏转换模块温度数据实际配置测试用例数据结果 测试驱动软件华氏到慑氏转换模块结果测试驱动际配置43单元测试的测试环境举例 温度显示模块温度接口模块实际配置测试驱动际配置 温度显示模块程序员编写的桩模块(测试存根)温度值的测试文件445.6.2 集成测试(组装测试) 集成测试需考虑的问题:数据穿越接口可能丢失.一模块可能破坏另一模块功能.子功能组装可能未产生所要求的

18、 主功能.全程数据结构可能出问题.误差累积问题.45集成测试方法 通常采用黑盒测试技术 实施策略:非渐增式测试渐增式测试 深度优先广度优先自顶向下结合自底向上结合46一. 非渐增式集成方式 一次就把所有通过了单元测试的模块组合在一起进行全程序的测试. 缺点:发现错误难以诊断定位. 又称“莽撞测试” .47二. 渐增式集成方式 从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。48自顶向下结合方式举例:ADBE模块测试结合顺序CF深度优先:A、B、E、C、D、F广度优先:A、B、C、D、E、F49自顶向下结合方式举例:(深度优先)A测试 AS2S1S3A加入BS2BS3S4A加入ES2BS3EA加入CCBS3E加入DCBDE加入FCBDEAAFS550自底向上结合方式举例:ACBDFEEd1Cd3Fd4Bd2EDd5F51自底向上结合方式举例:McD1MaMbD2D3簇1簇2簇3523. 混合集成测试方法一般对软件结构的上层使用自顶向下结合的 方法;对下层使用自底向上结合的方法;53五. 测试和测试测试(Alpha)在开发者的场所由用户进行,在开发着关注和控制的环境下进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论