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

下载本文档

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

文档简介

,5.4黑盒测试的测试用例设计 5.4.1 等价类划分法(等价分配) 把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别或等价区间),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同. 可从每个子集中选取一组数据来测试程序,例:某报表处理系统要求用户输入处理报表 的日期,日期限制在2003年1月至2008年 12月,即系统只能对该段期间内的报表 进行处理,如日期不在此范围内,则显 示输入错误信息。 系统日期规定由年、月的6位数字字符组 成,前四位代表年,后两位代表月。 如何用等价类划分法设计测试用例, 来测试程序的日期检查功能?,如何划分等价类? 有效等价类(合理等价类) 无效等价类(不合理等价类) 划分等价类的标准: 覆盖 不相交 代表性,划分等价类的规则,(1)如果输入条件规定了取值范围,可定义一个有 效等价类和两个无效等价类。,例 输入值是学生成绩,范围是0100,0 100,有效等价类 0成绩100,无效等价类 成绩100,无效等价类 成绩0,(2)如果输入条件代表集合的某个元素,则可定义 一个有效等价类和一个无效等价类。,划分等价类的规则:,(3)如规定了输入数据的一组值,且程序对不同输 入值做不同处理,则每个允许的输入值是一个 有效等价类,并有一个无效等价类(所有不允 许的输入值的集合)。 例:输入条件说明学历可为:专科、本科、硕士、博士四 种之一,则分别取这四个值作为四个有效等价类, 另外把四种学历之外的任何学历作为无效等价类 (4)如果规定了输入数据必须遵循的规则,可确定 一个有效等价类(符合规则)和若干个无效等 价类(从不同角度违反规则)。 (5)如已划分的等价类各元素在程序中的处理方式 不同,则应将此等价类进一步划分成更小的等 价类。,用等价类划分法设计测试用例步骤:,(1)形成等价类表,每一等价类规定一个 唯一的编号; (2)设计一测试用例,使其尽可能多地覆 盖尚未覆盖的有效等价类,重复这一 步骤,直到所有有效等价类均被测试 用例所覆盖; (3)设计一新测试用例,使其只覆盖一个 无效等价类,重复这一步骤直到所有 无效等价类均被覆盖;,第一步:等价类划分,输入条件 有效等价类 无效等价类,报表日期的 类型及长度,6位数字字符(1),有非数字字符 (4) 少于6个数字字符 (5) 多于6个数字字符 (6),年份范围,在20032008 之间 (2),小于2003 (7) 大于2008 (8),月份范围,在112之间(3),“报表日期”输入条件的等价类表,小于1 (9) 大于12 (10),第二步:为有效等价类设计测试用例,测试数据 期望结果 覆盖范围,200306,等价类(1)(2)(3),输入有效,对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:,(1)6位数字字符 (2)年在20032008之间 (3)月在112之间,第三步:为每一个无效等价类设至少 设计一个测试用例,测试数据 期望结果 覆盖范围,003MAY,等价类(4),输入无效,20035,等价类(5),输入无效,2003005,等价类(6),输入无效,200105,等价类(7),输入无效,200905,等价类(8),输入无效,200300,等价类(9),输入无效,200313,等价类(10),输入无效,不能出现相同 的测试用例,本例的10个等价类至 少需要8个测试用例,例:对招干考试系统“输入学生成绩”子模块 设计测试录入准考证号的测试用例,准考证号数据格式定义:共6为数字组成,其中 第一位为专业代号:1-行政专业,2-法律专业,3-财经专业 后5位为考生顺序号,编码范围为: 行政专业准考证号码为:110001111215 法律专业准考证号码为:210001212006 财经专业准考证号码为:310001314015,准考证号码的等价类划分 有效等价类: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 无效等价类: (4) - 110000 (5) 111216 210000 (6) 212007 31000 (7) 314016 + ,5.4.2 边界值分析法 边界值分析法与等价类划分法区别 (1)边界值分析不是从某等价类中 随便挑一个作为代表,而是使 这个等价类的每个边界都要作 为测试条件。 (2)边界值分析不仅考虑输入条件, 还要考虑输出空间产生的测试 情况,被测试 子 域,测试内点,测试外点,如果在悬崖峭壁边 可以自信地安全行走, 平地就不在话下。 如果软件在能力达 到极限时能够运行,那 么在正常情况下就不会 出什么问题。,软件边界与悬崖很类似,输入 条件,报表日 期的类 型及长 度,1个数字字符 5个数字字符 7个数字字符 有1个非数字字符 全部是非数字字符 6个数字字符,显示出错 显示出错 显示出错 显示出错 显示出错 输入有效,日期 范围,月份 范围,“报表日期”边界值分析法测试用例,测试用例说明,测试数据,期望结果,选取理由,5 20035 2003005 2003.5 MAY- 200305,月份为1月 月份为12月 月份12,200301 200312 200300 200313,200301 200812 200300 200813,输入有效 输入有效 显示出错 显示出错,输入有效 输入有效 显示出错 显示出错,在有效范围 边界上选取 数据,仅有1个合法字符 比有效长度少1 比有效长度多1 只有1个非法字符 6个非法字符 类型及长度均有效,最小日期 最大日期 刚好小于最小日期 刚好大于最大日期,最小月份 最大月份 刚好小于最小月份 刚好大于最大月份,有效等价类和用来测试getNumDaysInMonth()方法所选的有效输入,有效等价类,一个月有31天,非闰年,1901,7(七月),一个月有31天, 闰年,1904,7(七月),一个月有30天,非闰年,1901,6(六月),一个月有30天, 闰年,1904,6(六月),一个月为28或29天,非闰年,1901,2(二月),月份 输入值,年份 输入值,一个月为28或29天, 闰年,2(二月),1904,用来测试getNumDaysInMonth()方法的附加边界值,等价类,可以被400整除的闰年,2000,2(二月),可以被100整除的非闰年,1900,2(二月),非正数无效月份,1291,0,正数无效月份,1315,13,月份 输入值,年份 输入值,5.4.3 错误推测法(error guessing) 根据经验、直觉和预感来进行测试 例如: 一定要考虑建立处理下列等价类: 缺省值 空白 空值 零值 无输入条件 在已经找到软件缺陷的地方再找找,5.4.4 因果图法 因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。 因果图方法最终生成的是判定表。,因果图方法实例 某电力公司有A、B、C、D四类收费标准, 并规定: 居民用电 100度/月 按A类收费 100度/月按B类收费 动力用电 10000度/月,非高峰,B类收费 10000度/月,非高峰,C类收费 10000度/月, 高峰,C类收费 10000度/月, 高峰,D类收费,用因果图表明输入和输出间的逻辑关系,1,I1,2,A,B,C,4,3,5,D,I4,I3,I2,因,果,把因果图转换为判定表,组合条件,条件 (原因),动作 (结果),A,B,C,1,2,3,1,2,3,4,5,6,1,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,4,1,0,1,0,5,0,0,1,1,D,0,0,0,1,1,0,0,1,0,0,0,0,测试用例,为判定表每一列设计一个测试用例:,1列 居民电,90度/月 A 2列 居民电,110度/月 B 3列 动力电,非高峰,8000度/月 B 4列 动力电,非高峰,1.2万度/月 C 5列 动力电, 高峰,0.9万度/月 C 6列 动力电, 高峰,1.1万度/月 D,条件 测试用例 预期结果 组合 (输入数据) (输出动作),5.4.5 状态测试 软件必须测试程序的状态及其转换。 测试软件的逻辑流程 建立状态转换图 减少要测试的状态及转换的数量,空闲,等待用户 输入命令,按下Esc键 显示口令框,口令错误 消除,口令正确 初始状态消失,空闲,等待用户 输入命令,按下Esc键,口令正确,口令错误,不同形式的状态转换图,在黑盒测试中,不必了解代码中设置的地层变量, 从软件用户的角度建立状态图即可,减少要测试的状态及转换的数量 每种状态至少访问一次 测试最常见最普遍的状态转换 测试状态之间最不常用的分支 测试所有错误状态及其返回值、 测试随即状态转换 失败状态测试 找到测试软件失败的案例。 竞争条件和时序错乱 重复 压迫 重负,应联合使用,同时进行,设置2Bwatch 上的时间的顺序图,:2Bwatch用户,按下左和右按钮,:2Bwatch输入,:2Bwatch显示,:2Bwatch时间,时间,按下左按钮,按下右按钮,按下左和右按钮,闪烁小时,闪烁分钟,增加分钟,刷新,提交更新时间,停止闪烁,2Bwatch 设置时间功能的状态图和测试结果,按左按钮 按右按钮,按左按钮 按右按钮,4. 2分钟以后,测量时间,设置时间,电池没电,3.按下左右按钮,5.按下左右按钮/蜂鸣,8. 20年以后,7. 20年以后,6.,2.,1.,激励因素,空集合,测量时间,1.初始变迁,测试的变迁,预期结果状态,按下左边按钮,测量时间,2.,同时按下两个按钮,设置时间,3.,等2分钟,测量时间,4.超时,5.5 针对专门环境和应用的测试 5.5.1 GUI测试 常见GUI测试指南: 对于窗口 对于菜单和鼠标操作 对于数据项,5.5.2 C/S体系结构的测试 整体C/S测试策略(三个不同层次) 客户端应以“分离的”模式被测试 (不考虑服务器和底层网络的运行) 客户端软件和关联的服务器端应用被一起测试(网络运行不被明显考虑) 完整的C/S体系结构(包括网络运行和性能)被测试,C/S常用测试方法 客户端应用功能测试 服务器测试(协调和数据管理功能、性能) 数据库测试 事务测试 网络通信测试,5.5.3 实时系统测试 可采用以下四步策略: (1) 任务测试 (2) 行为测试 (3) 任务间测试 (4) 系统测试,(1) 任务测试 (task testing) 对每一个任务进行单独测试 (白盒、黑盒测试),发现逻辑和功 能上错误,不能发现定时上和行为 上错误 。,(2)行为测试(behavioral testing) 用CASE工具创建应用系统模型, 模拟实时系统行为。 按类测试各种事件(如中断、控制 信号、数据)。 测试过的事件以随机次序、随机频 率送给系统,检查软件行为方面的错误.,(3)任务间测试(intertask testing) 检查与时间有关错误。 如用不同数据速率、处理负载 测试相互通信的异步任务。 通过消息队列或数据存储测试 任务间的通信来找出数据存储区错 误的范围。,(4) 系统测试 (system testing) 软件、硬件组装后,找出软、 硬件接口错误。,软件测试的过程,单元 测试,被测 模块,集成 测试,设计 信息,单元 测试,被测 模块,单元 测试,被测 模块,测试过 的模块,确认 测试,系统 测试,软件 需求,其它系 统元素,装配 好的软件,确认 的软件,可运 行的 软件,5.6软件测试的步骤,软件测试策略,单元测试,U,C,D,R,S,I,V,ST,集成测试,确认测试,系统测试,系统工程,软件需求分析,软件设计,代码编写,5.6.1 单元测试 一.单元测试的内容 主要对模块的五个基本特性进行评价,模块,错误处理,模块接口,局部数 据结构,重要的 执行路径,边界条件,1.常见错误类型 接口错误 I/O错误 数据结构错误 算法错误 比较及控制逻辑错误 错误处理错误,2. 模块测试基本原则 至少一次测试所有语句 测试所有可能的执行或逻辑路径的组合 测试每个模块的所有入口和出口,3. 确定单元测试数据集 值域 值类 离散值 值的次序集(测试顺序文件和表),二. 单元测试的方法 单元测试一般为编码步骤的附属部分. 模块不是独立的程序,自己不能运行, 要靠其它部分来调用和驱动,要为每个 单元测试开发两个软件: (1)驱动模块(驱动程序):相当于主模块 (2)桩模块(测试存根、连接程序): 代替所测模块调用的子模块,单元测试的测试环境举例:,B,A,C,D,E,待测试模块,单元测试的测试环境举例:,被测模块 B,驱动模块 (模拟模块A),桩模块(测试存根) (模拟模块E),测试用例,测试结果,许多模块不能用简单的软件进行充分的单元测试, 此时, 完全的测试可放到集成测试阶段再进行.,单元测试的测试环境举例:,实际软件,华氏到慑氏 转换模块,温度数据,实际配置,测试用例数据,结果,测试驱动软件,华氏到慑氏 转换模块,结果,测试驱动际配置,单元测试的测试环境举例,温度显示模块,温度接口 模块,实际配置,测试驱动际配置,温度显示模块,程序员编写的桩模块 (测试存根),温度值的测试文件,5.6.2 集成测试(组装测试) 集成测试需考虑的问题: 数据穿越接口可能丢失. 一模块可能破坏另一模块功能. 子功能组装可能未产生所要求的 主功能. 全程数据结构可能出问题. 误差累积问题.,集成测试方法 通常采用黑盒测试技术 实施策略: 非渐增式测试 渐增式测试,深度优先 广度优先,自顶向下结合 自底向上结合,一. 非渐增式集成方式 一次就把所有通过了单元测试的模块组合在一起进行全程序的测试. 缺点:发现错误难以诊断定位. 又称“莽撞测试” .,二. 渐增式集成方式 从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。,自顶向下结合方式举例:,A,D,B,E,模块测试 结合顺序,C,F,深度优先:A、B、E、C、D、F,广度优先:A、B、C、D、E、F,自顶向下结合方式举例:(深度优先),A,测试 A,S2,S1,S3,A,加入B,S2,B,S3,S4,A,加入E,S2,B,S3,E,A,加入C,C,B,S3,E,加入D,C,B,D,E,加入F,C,B,D,E,A,A,F,S5,自底向上结合方式举例:,A,C,B,D,F,E,E,d1,C,d3,F,d4,B,d2,E,D,d5,F,自底向上结合方式举例:,Mc,D1,Ma,Mb,D2,D3,簇1,簇2,簇3,3. 混合集成测试方法 一般对软件结构的上层使用自顶向下结合的 方法; 对下层使用自底向上结合的方法;,五. 测试和测试 测试(Alp

温馨提示

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

评论

0/150

提交评论