收藏 分享(赏)

软件工程黑盒测试.ppt

上传人:Facebook 文档编号:3284702 上传时间:2018-10-10 格式:PPT 页数:60 大小:478KB
下载 相关 举报
软件工程黑盒测试.ppt_第1页
第1页 / 共60页
软件工程黑盒测试.ppt_第2页
第2页 / 共60页
软件工程黑盒测试.ppt_第3页
第3页 / 共60页
软件工程黑盒测试.ppt_第4页
第4页 / 共60页
软件工程黑盒测试.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

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

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

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

4、输入条件 有效等价类 无效等价类,报表日期的 类型及长度,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之间,第三步:为每一

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

6、码范围为:行政专业准考证号码为: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)边界值分析不仅考虑

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

8、为1月 月份为12月 月份12,200301 200312 200300 200313,200301 200812 200300 200813,输入有效 输入有效 显示出错 显示出错,输入有效 输入有效 显示出错 显示出错,在有效范围 边界上选取 数据,仅有1个合法字符 比有效长度少1 比有效长度多1 只有1个非法字符 6个非法字符 类型及长度均有效,最小日期 最大日期 刚好小于最小日期 刚好大于最大日期,最小月份 最大月份 刚好小于最小月份 刚好大于最大月份,有效等价类和用来测试getNumDaysInMonth()方法所选的有效输入,有效等价类,一个月有31天,非闰年,1901,7(七月)

9、,一个月有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) 根据经验、直觉和预

10、感来进行测试 例如: 一定要考虑建立处理下列等价类: 缺省值 空白 空值 零值 无输入条件 在已经找到软件缺陷的地方再找找,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

11、,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

12、万度/月 D,条件 测试用例 预期结果 组合 (输入数据) (输出动作),5.4.5 状态测试软件必须测试程序的状态及其转换。 测试软件的逻辑流程 建立状态转换图 减少要测试的状态及转换的数量,空闲,等待用户 输入命令,按下Esc键 显示口令框,口令错误消除,口令正确 初始状态消失,空闲,等待用户 输入命令,按下Esc键,口令正确,口令错误,不同形式的状态转换图,在黑盒测试中,不必了解代码中设置的地层变量, 从软件用户的角度建立状态图即可,减少要测试的状态及转换的数量 每种状态至少访问一次 测试最常见最普遍的状态转换 测试状态之间最不常用的分支 测试所有错误状态及其返回值、 测试随即状态转换失

13、败状态测试 找到测试软件失败的案例。 竞争条件和时序错乱 重复 压迫 重负,应联合使用,同时进行,设置2Bwatch 上的时间的顺序图,:2Bwatch用户,按下左和右按钮,:2Bwatch输入,:2Bwatch显示,:2Bwatch时间,时间,按下左按钮,按下右按钮,按下左和右按钮,闪烁小时,闪烁分钟,增加分钟,刷新,提交更新时间,停止闪烁,2Bwatch 设置时间功能的状态图和测试结果,按左按钮 按右按钮,按左按钮 按右按钮,4. 2分钟以后,测量时间,设置时间,电池没电,3.按下左右按钮,5.按下左右按钮/蜂鸣,8. 20年以后,7. 20年以后,6.,2.,1.,激励因素,空集合,测量

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

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

16、据速率、处理负载测试相互通信的异步任务。通过消息队列或数据存储测试任务间的通信来找出数据存储区错误的范围。,(4) 系统测试 (system testing)软件、硬件组装后,找出软、 硬件接口错误。,软件测试的过程,单元 测试,被测 模块,集成 测试,设计 信息,单元 测试,被测 模块,单元 测试,被测 模块,测试过 的模块,确认 测试,系统 测试,软件 需求,其它系 统元素,装配 好的软件,确认 的软件,可运 行的 软件,5.6软件测试的步骤,软件测试策略,单元测试,U,C,D,R,S,I,V,ST,集成测试,确认测试,系统测试,系统工程,软件需求分析,软件设计,代码编写,5.6.1 单元

17、测试一.单元测试的内容 主要对模块的五个基本特性进行评价,模块,错误处理,模块接口,局部数 据结构,重要的 执行路径,边界条件,1.常见错误类型 接口错误 I/O错误 数据结构错误 算法错误 比较及控制逻辑错误 错误处理错误,2. 模块测试基本原则 至少一次测试所有语句 测试所有可能的执行或逻辑路径的组合 测试每个模块的所有入口和出口,3. 确定单元测试数据集 值域 值类 离散值 值的次序集(测试顺序文件和表),二. 单元测试的方法 单元测试一般为编码步骤的附属部分. 模块不是独立的程序,自己不能运行, 要靠其它部分来调用和驱动,要为每个 单元测试开发两个软件: (1)驱动模块(驱动程序):相

18、当于主模块(2)桩模块(测试存根、连接程序):代替所测模块调用的子模块,单元测试的测试环境举例:,B,A,C,D,E,待测试模块,单元测试的测试环境举例:,被测模块 B,驱动模块 (模拟模块A),桩模块(测试存根) (模拟模块E),测试用例,测试结果,许多模块不能用简单的软件进行充分的单元测试, 此时, 完全的测试可放到集成测试阶段再进行.,单元测试的测试环境举例:,实际软件,华氏到慑氏 转换模块,温度数据,实际配置,测试用例数据,结果,测试驱动软件,华氏到慑氏 转换模块,结果,测试驱动际配置,单元测试的测试环境举例,温度显示模块,温度接口 模块,实际配置,测试驱动际配置,温度显示模块,程序员

19、编写的桩模块 (测试存根),温度值的测试文件,5.6.2 集成测试(组装测试)集成测试需考虑的问题: 数据穿越接口可能丢失. 一模块可能破坏另一模块功能. 子功能组装可能未产生所要求的主功能. 全程数据结构可能出问题. 误差累积问题.,集成测试方法通常采用黑盒测试技术实施策略: 非渐增式测试渐增式测试,深度优先 广度优先,自顶向下结合 自底向上结合,一. 非渐增式集成方式一次就把所有通过了单元测试的模块组合在一起进行全程序的测试.缺点:发现错误难以诊断定位.又称“莽撞测试” .,二. 渐增式集成方式从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。,自顶向下结合方式举

20、例:,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. 混合集成测试方法 一般对软件结构的上层使用自顶向下结合的方法;

21、 对下层使用自底向上结合的方法;,五. 测试和测试 测试(Alpha) 在开发者的场所由用户进行,在开发 着关注和控制的环境下进行. 测试(Beta) 最终用户在自己的场所进行.,5.6.4 系统测试软件只是计算机系统的一个 元素,软件最终要与其他系统元 素(如新硬件、信息等)相结合, 进行各种集成测试和确认测试.,用于系统测试的测试类型: (1)恢复测试 (2)安全性测试 (3)强度测试 (4)性能测试,(1)恢复测试以不同的方式强使软件出现故障,检测 软件能否恰当地完成恢复.自动恢复:检测重新初始化、检测点设置、数据恢复、重新启动等是否正确. 人工干预恢复:检测平均恢复时间是否在允许范围内

22、.,(2)安全性测试设计测试用例,突破软件安全保护机构 的安全保密措施,检验系统预防机制的漏洞. (3)强度测试测试用例, 检验系统能力最高能达到的实际限度, 让系统处于资源的异常数量、异常频率、异常批量的条件下测试系统的承受能力.一般比平常限度高5-10倍的限度做测试用例.,网站测试的实例黑盒测试 网页文字测试 超级链接 图形 表单 对象及其他功能(点击计数器、滚动文字等)灰盒测试 网页(检查脚本和HTML语句)适合灰盒测试白盒测试 流行的Web语言(Java,JavaScript,ActiveX,VBScript,Perl,XML) 与网站系统结构和编程有关的测试 动态内容 数据库驱动的网站 用编程方法创建的网页 服务器性能和加载 安全性,网站测试的实例配置和兼容性测试 硬件平台 浏览器软件和版本 浏览器插件 浏览器选项 视频分辨率和色深、文字大小 调制解调器速率易用性测试,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报