五章软件测试

上传人:壹****1 文档编号:567892706 上传时间:2024-07-22 格式:PPT 页数:75 大小:425KB
返回 下载 相关 举报
五章软件测试_第1页
第1页 / 共75页
五章软件测试_第2页
第2页 / 共75页
五章软件测试_第3页
第3页 / 共75页
五章软件测试_第4页
第4页 / 共75页
五章软件测试_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《五章软件测试》由会员分享,可在线阅读,更多相关《五章软件测试(75页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 软件测试软件测试文档良距坪籍扇映浪酝券践泊喂诫父踢棒哟莱恕悟斌蒲销禹杯娟絮逊莫介宝咙五章软件测试五章软件测试5.1 5.1 基本概念基本概念软件软件开发过程必须伴有质量保证活动。开发过程必须伴有质量保证活动。软件测试是软件质量保证的关键元素,软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。代表了规约、设计和编码的最终检查。软件产品最大的成本是检测软件错误、软件产品最大的成本是检测软件错误、修正软件错误的成本修正软件错误的成本。 在整个软件开发中在整个软件开发中,测试工作量测试工作量一般占一般占30%30%40%40%,甚至,甚至50%50%。 在人命关天的软件

2、在人命关天的软件( (如飞机控制、核反应如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍程活动时间之和的三到五倍替班茬好膜伶闺合井壮桑趟尼雷黍帝弹井熬贰驼五裕瓤肪扳广亦敝杜竭溯五章软件测试五章软件测试例例: : Windows9595有有10001000万行万行代码代码 Windows20002000有有50005000万行万行代码,代码, 3000 3000多个工程师,几百个小团队。多个工程师,几百个小团队。Exchange2000和和 Windows20002000开发人员结构开发人员结构Exchange2000Wind

3、ows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人饵惋独翼俞速帝淑颜碑蜒币翼沾宠定烂劣拘匹需茎履减狐梳甲无沾桌哭同五章软件测试五章软件测试软件测试背景软件测试背景软件是人编的所以不完美实例实例:1994-1995,迪斯尼的狮子王系统不支持问题迪斯尼的狮子王系统不支持问题Intel的的pentium处理器处理器1994年浮点除法缺陷年浮点除法缺陷200年年8月月28日,日,1.13MHZ处理器一个可能导致运行程处理器一个可能导致运行程序被挂起的执行指令问题序被挂起的执行指令问题1999年年12月月3日日

4、,美国航天局火星极地登陆飞船失美国航天局火星极地登陆飞船失踪踪1991年爱国者导弹防御系统系统时钟错误积累造年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度成跟踪系统失去精确度千年虫千年虫,世界各地解决世界各地解决2000年错误超过数亿美元年错误超过数亿美元炮烽帆靠坐僵谍参盲肢惩物入钳牡石案尿吩汰橇死惯柠敌衣僳唉蚜杜亩嘘五章软件测试五章软件测试软件测试的问题软件测试的问题软件缺陷是什么?软件缺陷是什么?谁执行测试?谁执行测试?开发者?开发者?单独的测试人员?单独的测试人员?两方面人员?两方面人员?测试什么?测试什么?每个部分都测试?每个部分都测试?测试软件中高风险部分?测试软件中高风

5、险部分?什么时候测试?什么时候测试?怎样测试?怎样测试?测试应进行到什么程度?测试应进行到什么程度?俐即变腺渴映筛媚郧钢欢猖勘素省玄磷酬枢峡介颗踪呛塞臆疡顺战疡背漳五章软件测试五章软件测试软件缺陷是什么软件缺陷是什么 描述软件失败的术语描述软件失败的术语缺点缺点(defect)谬误谬误(fault)问题问题(problt)错误错误(error)异常异常(anomaly)偏差偏差(variance)失败失败(failure)缺陷缺陷(bug)皂颧拉氓政搂蝴盼博柯疑可烩词淀失耀些涝缨宣畏闺困搬几焕贤帘襄饱迎五章软件测试五章软件测试难以说清的软件缺陷难以说清的软件缺陷古谚:古谚: “一片树叶飘落在森

6、林中没有人听见,一片树叶飘落在森林中没有人听见, 谁能说它发出了声音?谁能说它发出了声音?” 由于不能报告没有看见的问题,因此,由于不能报告没有看见的问题,因此, 没有看见就不能说存在软件缺陷没有看见就不能说存在软件缺陷 “如果软件中的问题没有人发现,那么它如果软件中的问题没有人发现,那么它算不算软件缺陷?算不算软件缺陷?” 只有看到了,才能断言软件缺陷,尚未只有看到了,才能断言软件缺陷,尚未发现的软件缺陷只能说是未知软件缺陷。发现的软件缺陷只能说是未知软件缺陷。眼见为实录烂垮泽掇寄灭圭寡发夏驯姥羽帘苯箩庇定猛岛苗诊院额社呜酣赂竹学咙五章软件测试五章软件测试三个盲人和一头大象:你能够为质量下定

7、义吗?三个盲人和一头大象:你能够为质量下定义吗? 质量管理领域权威人物质量管理领域权威人物J.M.Juran将将质量质量定义为:定义为: “决定产品性能和决定产品性能和满意程度满意程度的特征的特征”, , 测试注重于产品的满意度。测试注重于产品的满意度。 测试应针对这样一种情况:测试应针对这样一种情况: 软件产品在一些特定的范围内不能满足客户软件产品在一些特定的范围内不能满足客户的合理要求。的合理要求。 通过通过测试测试过程可以评定过程可以评定质量风险(可能的错质量风险(可能的错误)误),了解被测试系统中存在的了解被测试系统中存在的错误模式(观察错误模式(观察到的错误症状)到的错误症状)。撒围

8、垛投甚寡燕扮乔轴挡蹲吁衣养化孝惟已带馆谤砂靖绩很构股伪陡涯库五章软件测试五章软件测试软件测试的目标软件测试的目标(1)预防错误预防错误: 几乎不可实现几乎不可实现(2)发现错误发现错误权隧增缨护料反斟刨遍瘦灾瘟解倔瞅壕秸略脚凡敬墟涸故潭稼丙董闭遣糖五章软件测试五章软件测试5.1.1 5.1.1 测试的目的与地位测试的目的与地位 G.J.MyersG.J.Myers在在 中认为中认为: : 1 1. .测试是为了测试是为了寻找寻找错误而错误而运行运行程序的过程程序的过程。 2 2. .一个好的一个好的测试测试用例是指很可能找到迄今为用例是指很可能找到迄今为止尚未发现的错误的测试。止尚未发现的错误

9、的测试。 3. 3.一个成功的测试一个成功的测试是是揭示了迄今为止尚未发揭示了迄今为止尚未发现的错误的测试。现的错误的测试。兆跪优糊恨仆汇危酬脉厄呸好坷年孝蛮悍呐曙跺诌闭仕竣码天恭弊茄左挛五章软件测试五章软件测试 E.W.Dijkstra E.W.Dijkstra 指出指出: :“程序测试能证明错误的存在程序测试能证明错误的存在, ,但不但不能证明错误不存在能证明错误不存在.”.” 测试的目的是发现程序中的测试的目的是发现程序中的 错误,是为了错误,是为了证明程序有错证明程序有错, , 而而 不是证明程序无错不是证明程序无错. .言傲裂你窜褪芋茹塌中饥嫁坛给席迅何形瓶醉描栓搽矾拄肖贮讹孤晒甲喳

10、五章软件测试五章软件测试 把把证证明明程程序序无无错错当当作作测测试试目目的的不不仅仅是是不不正正确确的的, , 完完全全做做不不到到的的,而而且且对对做做好好测测试试没有任何益处,甚至是没有任何益处,甚至是十分有害十分有害的的. . 软件测试要设法使软件发生故障软件测试要设法使软件发生故障, ,暴露暴露软件错误软件错误 测试的测试的“成功成功”与与“失败失败” 能够发现错误的测试是成功的能够发现错误的测试是成功的测试,否则是失败的测试。测试,否则是失败的测试。 衔非箔赌肢霸蕉泅哎遵届换箭钩随碰雁蛔乳稠褪绸众茫五购娶绳拂敞扎舜五章软件测试五章软件测试“测测试试的的目目的的是是说说明明程程序序正

11、正确确地地执执行行它应有的功能它应有的功能” 这种说法正确吗?这种说法正确吗?例例:程程序序TriangleTriangle,输输入入三三个个整整数数,表表示示一一个个三三角角形形的的三三个个边边长长,该该程程序序产产生生一一个个结结果果,指指出出该该三三角角形形是是等等边边三三角角形形、等等腰腰三三角角形形还还是是不不等等边边三三角形。角形。 为为说说明明其其能能正正确确执执行行它它的的功功能能,可可使使用用“测测试用例试用例”(3,4,5),(5,5,6),(6,6,6), (3,4,5),(5,5,6),(6,6,6), 程程序序都都能能给给出出正正确确结结果果,是是否否就就可可认认为为

12、程程序序是是正正确的?确的?篇疼闸几职鄂淌笺么龙墓柬郴酷恕蚤腕或域崇俐际焰昏饶轻溺探硝胚绍迄五章软件测试五章软件测试测试设计中需要考虑的22种测试类型黑盒黑盒测试测试白盒测试白盒测试单元测试单元测试累计综合测试累计综合测试集成测试集成测试功能测试功能测试系统测试系统测试端到端测试端到端测试健全测试健全测试衰竭测试衰竭测试接受测试接受测试负载测试负载测试强迫测试强迫测试性能测试性能测试可用性测试可用性测试安装安装/卸载测试卸载测试恢复测试恢复测试兼容测试兼容测试安全测试安全测试比较测试比较测试Alpha测试测试Beta测试测试取噪锈钳般友萤怪擒塑呕朋历厨窜搔研跌窄滤瓜挺嚏访扒撼眷晾拢筐容逼五章软

13、件测试五章软件测试质量控制技术质量控制技术质量控制活动分类质量控制活动分类开发方法学开发方法学配置管理配置管理验证技术验证技术评评 审审正确性验证正确性验证性能调试性能调试组件测试组件测试集成测试集成测试系统测试系统测试原子事务原子事务模块冗余性模块冗余性检检 错错质量控制质量控制避免错误避免错误容容 错错调调 试试测测 试试差四志赏斗郡莆愤武遭舅摔搽脉挖奄晾最岔棱坞杯廊淆唁出塘壁递及彦陶五章软件测试五章软件测试软件质量问题以软件测试为中心的软件质量保障技术以软件测试为中心的软件质量保障技术软件软件 静态测试技术静态测试技术质量质量 软件度量技术软件度量技术控制控制 动态测试技术动态测试技术技

14、术技术 配置管理技术配置管理技术 修改控制与管理技术修改控制与管理技术软件测试是保证软件质量软件测试是保证软件质量, ,提高提高软件可靠性的关键软件可靠性的关键眶涅妖刑仔郧寄笋矾理惩磕练屠膳蛀室匆指韦裔粳馅兑笑匀无遵默秘和汹五章软件测试五章软件测试 5.1.2 5.1.2 测试原则测试原则(1)(1)所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求 最严重的错误最严重的错误( (从用户角度从用户角度) )是那些导是那些导致软件无法满足需求的错误。致软件无法满足需求的错误。 程序中的问题程序中的问题根源根源可能在开发前可能在开发前 期的各阶段解决、纠正错误也必须追期的各阶段解决、纠正错误

15、也必须追 溯到前期工作溯到前期工作。弃戊寒赠烂智垂秋渤呢略浮懦憋委夏诣骑颐哼洱芭俗蟹霓摩侄耽丸酣揣贩五章软件测试五章软件测试测试与开发前期工作的关系决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试亲爬髓走振廖蓬见侩吉慑淋仍畅幢浓虚鞋碧盆薯穿线明录丝唯锐吊坍术情五章软件测试五章软件测试测试活动和相关工作产品测试活动和相关工作产品项目协议项目协议对象设计对象设计客户客户开发人员开发人员用户用户集成策略集成策略系统分解系统分解功能性需求功能性需求非功能性需求非功能性需求单元测试

16、单元测试集成测试集成测试结构测试结构测试功能测试功能测试性能测试性能测试来自来自ODD来自来自TP来自来自SDD来自来自RAD来自来自RAD用户手册用户手册验收测试验收测试安装测试安装测试现场测试现场测试日常操作日常操作狸堑媒躯级罩勒容拔玻坯要寂蜕梅靴餐誊颜糜船窍浪纷班得梳拔韵垣瓢篓五章软件测试五章软件测试开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试AB剂髓安曾乖另壤邀脖身玫间耳汁推抽噶纤奏庸剧炒呻鬼茶澄弘邯胞迁鸽佛五章软件测试五章软件测试软件生存期各阶段间需保持的正确性用户要求用户要求用户用户: :我要什么我要什么? ?运行结果运行结果计算机计

17、算机: :程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员: :我要让计算我要让计算机什么做机什么做? ?设计说明书设计说明书设计员设计员: :我要让软件我要让软件做什么做什么? ?需求说明书需求说明书分析员分析员: :我可以提我可以提供什么供什么? ?12345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗? ?罗腔婆桌荒羚但衬摊猖假纳册溃错弊品锡氟亨襄敷狙嘱拥睛滩篷蛋阁助雇五章软件测试五章软件测试软件开发面临的实际问题项目开发前项目开

18、发前分析员的理分析员的理解、设想解、设想张航斑旁宾绳芹螟喝喊穗呻肄戎咨诈损茂瘴奄殆滑旗轻唯答遭赢吞亮饼瀑五章软件测试五章软件测试软件开发面临的实际问题分析员分析员的描述的描述籽艰道诅七辨囊恭缠削建洱掷捞毙飘库耽蔑派忱环十傻该韩奋乎揪享砸艇五章软件测试五章软件测试完成的设计完成的设计软件开发面临的实际问题歹卷康品柯瑶续筋顺灌股甄炼时卞脑谴电项瑶校田谢瓷作村沪燕仲刊婆高五章软件测试五章软件测试程序员做出的产品程序员做出的产品软件开发面临的实际问题鸭控凶瘪靖哟太债档阀汝河克喜拎燎薛孜友善展兢奋逐史奥翻钵榜嘎巷泪五章软件测试五章软件测试现场的安装现场的安装软件开发面临的实际问题刑据凳痕请盗蓝界铭糯失糕

19、镑茫换泉厌稿嚎檀着吓走熟奶语淮辩灌纱址冀五章软件测试五章软件测试用户原来的设想用户原来的设想软件开发面临的实际问题筏匿佰茂箍垢伙私横娘篱宪侍米搜烘惩耕给萧揍屈祖虑拙展涛郧跪苍钓洛五章软件测试五章软件测试 测试原则测试原则(2)(2)概要设计时应完成测试计划,概要设计时应完成测试计划, 详细的测试用例定义可在设计详细的测试用例定义可在设计 模型确定后开始,所有测试可模型确定后开始,所有测试可 在任何代码被产生之前进行计在任何代码被产生之前进行计 划和设计。划和设计。 今肤京烽云肛垒痴萄钓慢夷条眩湍填腻畔涧齐必毒著料侈端锌傲阻诽汞币五章软件测试五章软件测试 软件测试不等于程序测试软件测试不等于程序

20、测试 软件测试应贯穿于软件定义与开发的整软件测试应贯穿于软件定义与开发的整个期间;个期间; 据美国一家公司统计,查出的软件错据美国一家公司统计,查出的软件错误中,属于误中,属于需求分析和软件设计的错误需求分析和软件设计的错误约约占占 64%64%,属于程序编写的错误仅占,属于程序编写的错误仅占 36% 36%。程序编写的许多错误是程序编写的许多错误是“先天的先天的”。似翅匙篙至因言狸侣诈父氨坛囊萤企欺茸谚佬裂锰庐氖科棒根妓况瞩测万五章软件测试五章软件测试测试阶段工作步骤测试阶段工作步骤单元测试单元测试: :检验每个模块能否单独工作检验每个模块能否单独工作集成测试集成测试: :检验概要设计中模块

21、接口设计问题检验概要设计中模块接口设计问题确认测试确认测试: :以需求规格说明书为检验尺度以需求规格说明书为检验尺度系统测试系统测试: :综合检验综合检验 测试可视为分析、设计、编码三个阶测试可视为分析、设计、编码三个阶段的最终复审段的最终复审, ,以保证软件质量以保证软件质量. .晓即诊这稚殊斡椭帅迪尺授及辐闲伶羡仕呀闹陆针慧甜菲羹聘檄解澡绳允五章软件测试五章软件测试 测试原则测试原则(3)(3)paretopareto原则:原则:测试发现的错误中测试发现的错误中80%80%很很 可能起源于可能起源于20%20%的模块中。的模块中。 应孤立这些疑点模块重点应孤立这些疑点模块重点 测试。测试。

22、(4)(4)穷举测试是不可能的穷举测试是不可能的昨原液团普彪婉结吕纹妓芬延喘跨酝课心讨遵身窿哈肯镜痪剐涤团焕钝阻五章软件测试五章软件测试测试原则测试原则例例: :测试计算器程序测试计算器程序加法测试加法测试1+0=1+0=1+99999999999999999999999999999999=1+99999999999999999999999999999999=2+0=2+0=2+99999999999999999999999999999999=2+99999999999999999999999999999999=99999999999999999999999999999999+99999999

23、99999999999999999999999999999999999999999999999999999999+99999999999999999999999999999999= =1.0+0.1=1.0+0.1=1.0+0.2=1.0+0.2=减法测试减法测试乘法测试乘法测试除法测试除法测试求平方根求平方根百分数百分数倒数倒数骨额端汹滇判镇至棕辰蓝湖伏病记搓聊肥翘钳讫祁赋绝粘省殴泞栋什快讳五章软件测试五章软件测试 测试原则测试原则(5)(5)应由独立的底三方来构造测试。应由独立的底三方来构造测试。 (开发和测试队伍分别建立开发和测试队伍分别建立)(6)(6)测试用例应由输入数据和预期的输测

24、试用例应由输入数据和预期的输 出结果两部分组成出结果两部分组成. .(7)(7)兼顾合理的输入和不合理的输入数据兼顾合理的输入和不合理的输入数据(8)(8)程序修改后要回归测试程序修改后要回归测试(9)(9)应长期保留测试用例,直至系统废弃。应长期保留测试用例,直至系统废弃。烧糠柄尊攫蜗氨火帝尾纶刽交删惠停熊具券寥蛊制屋耪呈冈翼剑叫予监蠕五章软件测试五章软件测试测试原则:测试原则:软件测试是有风险的行为软件测试是有风险的行为数数量量遗漏软件遗漏软件缺陷数目缺陷数目测试费用测试费用测试中测试中测试后测试后软件测试工作量测试工作量每一个软件项目都有一个最优的测量量每一个软件项目都有一个最优的测量量

25、最优测量量最优测量量歧持室我兵蜕嗜淆拳超瞳贡驯磺腥舞孙核挫浩镰鬃莫藉苦聘桶咨啮滔孤腾五章软件测试五章软件测试 5.1.3 5.1.3 可可测试测试性性 可测试软件的特征:可测试软件的特征:可操作性可操作性可观察性可观察性可控制性可控制性可分解性可分解性简单性简单性稳定性稳定性易理解性易理解性村四熊过读乍暑碘唯葛脸二焕姜横痴戏唬织吞返疽液鞠境胺麻祸漆澄化涛五章软件测试五章软件测试 “好好”测试的属性:测试的属性: 发现错误的可能性高发现错误的可能性高不冗余不冗余在目的相似的测试中,应使用最可能找在目的相似的测试中,应使用最可能找到错误的测试到错误的测试每一个测试应独立执行每一个测试应独立执行古蝗

26、弄唾界实休担逐挺蜀尝帜禄彻筏敏煌佐止氯糟处橱纽氖肋信缓掳伤魔五章软件测试五章软件测试 测试 (test) 调试 (debug)以已知条件开始以已知条件开始, ,使用预先定义的程序使用预先定义的程序, ,有预知的结果有预知的结果以不可知内部条件开始以不可知内部条件开始, ,结果一般不可预见结果一般不可预见有计划有计划被动的被动的由独立的测试组,在由独立的测试组,在不了解软件设计的条不了解软件设计的条件下完成件下完成由程序作者进行由程序作者进行发现错误发现错误找出错误位置,排除找出错误位置,排除测试与调试测试与调试( (排错排错) )参俄涉晨榆亦奉鼠癌嚷掐辟齐汤腋围候韵容戏冠鲸啥骨覆钮棘锭抡癸拌罗

27、五章软件测试五章软件测试 软件错误分类软件错误分类 功能错功能错( (需求分析错误需求分析错误) ) 软件结构错软件结构错 数据错数据错 编码错编码错 软件集成错软件集成错 测试定义与测试执行错误测试定义与测试执行错误 雨辆辕郝济贷声至凭滇蹄苇田宝岿刮朵否削忙员网俺裂酋衡设毡凹签荡置五章软件测试五章软件测试 5.1.4 5.1.4 测试用例测试用例设计设计 测试用的一组输入数据测试用的一组输入数据。 选择测试用例是软件测试员最重要选择测试用例是软件测试员最重要 的一项工作。的一项工作。测试用测试用例例的的属性属性: :属性属性 描述描述name name 测试用例的名称测试用例的名称 loca

28、tion location 可执行的完全路径名可执行的完全路径名 input input 输入数据或命令输入数据或命令oracle oracle 期待测试结果期待测试结果log log 测试产生的输出测试产生的输出芹网具保犹歉峙怎辉停五蕊掺峰蚂娶语滴蒋启巴弃舱刘咀药滔拣磅彝媒屁五章软件测试五章软件测试程序测试举例程序测试举例例:程序例:程序 Triangle Triangle, 输入三个整数,表示一个输入三个整数,表示一个 三角形的三个边长,该程序产生一个结果,三角形的三个边长,该程序产生一个结果, 指出该三角形是等边三角形、等腰三角形还指出该三角形是等边三角形、等腰三角形还 是不等边三角形。

29、是不等边三角形。判断三角型的测试用例设计判断三角型的测试用例设计: : 输入数据输入数据 预期结果预期结果 (1) 6;6;6 (1) 6;6;6 等边等边 (2) 8;8;4 (2) 8;8;4 等腰等腰 (3) 4;5;6 (3) 4;5;6 一般一般 还应输入还应输入非法数据非法数据: 0; 7; 9 0; 7; 9 -7; 3; 5 -7; 3; 5 a; 2; 7 a; 2; 7 等等炎粳喝骗嘴昂哆窝禄觉找记幕檬哗冷晕聪妇声版瘩盲死盗俺者稻胡赛宅氧五章软件测试五章软件测试5.1.55.1.5 软件测试信息流软件测试信息流软件软件配置配置测试测试测试测试配置配置测试测试工具工具结果结果

30、分析分析排错排错可靠性可靠性分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 改正改正的软件的软件预测预测的可的可靠性靠性需求规格说明书需求规格说明书软件设计说明书软件设计说明书 被测源程序被测源程序 测试计划测试计划 测试用例测试用例( (测试数据测试数据) )测试驱动程序测试驱动程序奖掺鲁机碱喷仙蛆慧阿窘缕固帮靠嚷碰哀熔柠铬彬澈喝味呆戈溃踢漱诽掐五章软件测试五章软件测试测试活动和相关工作产品测试活动和相关工作产品项目协议项目协议对象设计对象设计客户客户开发人员开发人员用户用户集成策略集成策略系统分解系统分解功能性需求功能性需求非功能性需求非功能性需求单元测试单元测试集成测试集成

31、测试结构测试结构测试功能测试功能测试性能测试性能测试来自来自ODD来自来自TP来自来自SDD来自来自RAD来自来自RAD用户手册用户手册验收测试验收测试安装测试安装测试现场测试现场测试日常操作日常操作赴阁酪睫触刑贺贱坟朝稿佃命均中乡激树才椎犹伟助维俱凶咳挝彼克镀粟五章软件测试五章软件测试测试设计中需要考虑的22种测试类型黑盒黑盒测试测试白盒测试白盒测试单元测试单元测试累计综合测试累计综合测试集成测试集成测试功能测试功能测试系统测试系统测试端到端测试端到端测试健全测试健全测试衰竭测试衰竭测试接受测试接受测试负载测试负载测试强迫测试强迫测试性能测试性能测试可用性测试可用性测试安装安装/卸载测试卸载

32、测试恢复测试恢复测试兼容测试兼容测试安全测试安全测试比较测试比较测试Alpha测试测试Beta测试测试骇刀张与丘鸿贮弦付枪坛决罕盂籽参伟吁杏符小仔耽纽黍郭猩鸳谭骤煤夕五章软件测试五章软件测试5.1.6 5.1.6 测试的方法与技术测试的方法与技术软件测试的软件测试的策略和方法策略和方法静态静态测试方法测试方法动态动态测试方法测试方法人工测试方法人工测试方法计算机辅助静计算机辅助静态分析方法态分析方法白盒测试方法白盒测试方法黑盒测试方法黑盒测试方法详诅掺锑臂菱革胃娠汁猾柿侯纷粕略给兔辨卒抵猿状因娩催歼梧摧鸥谁弛五章软件测试五章软件测试静态测试:静态测试:基本特征是在对软件进行基本特征是在对软件进

33、行 分析、检查和分析、检查和审阅,审阅,不实不实 际运行被测试的软件。际运行被测试的软件。 静态测试约可找出静态测试约可找出303070%70%的逻辑设计错误的逻辑设计错误. . 对对需求规格说明书需求规格说明书、软件设计说明书软件设计说明书、源程序源程序做检查和做检查和审阅审阅,包括:包括:是否符合标准和规范;是否符合标准和规范;通过通过结构分析、流图分析、符号执行结构分析、流图分析、符号执行指出软件指出软件 缺陷缺陷; 吊没撑铬掖揍竿兢掷瘩检乖阀号告并眉报椭惟玫歇耍萝盒好狈涣束矗殿双五章软件测试五章软件测试动态测试:动态测试:通过运行软件来检验软件通过运行软件来检验软件 的动态行为和运行结

34、果的的动态行为和运行结果的 正确性正确性 动态测试的两个基本要素:动态测试的两个基本要素:被测试程序被测试程序测试数据(测试用例)测试数据(测试用例)迭滚粱黄脾惊篆耶溶淬骡锥般领骆粥拟帚显俘蛤孝页窖阐老烃适住藻蚁枕五章软件测试五章软件测试动态测试方法动态测试方法(1)(1)选取定义域有效值选取定义域有效值, ,或定义域外无效值或定义域外无效值. .(2)(2)对已选取值决定对已选取值决定预期的结果预期的结果(3)(3)用选取值执行程序用选取值执行程序(4)(4)执行结果执行结果与与预期的结果预期的结果相比相比, ,不吻和程序不吻和程序 有错有错. .册平钒睛镰秘狱卷决蜗继忠毖涕赏点轧植去紧敲仓

35、忙脾瑟均退觅胎哼霖利五章软件测试五章软件测试动态黑盒测试动态黑盒测试 闭着眼睛测试软件闭着眼睛测试软件软件输入输入 不深入代码细节的测试方法称为动态黑盒测试。不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出半术安肪邱愈科秉帚涤床滞寐伦线隆摘沏哭咨驭爵朴缚凹隋麦翼谐肋腾坯五章软件测试五章软件测试动态白盒测试动态白盒测试 带上带上X光眼镜测试软件光眼镜测试软件? ?3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015

36、)360-1)/0.015 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机, ,而另一个而另一个盒子是人用纸笔计算盒子是人用纸笔计算, ,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段吏凹牙蔷锑丧雪扎懂窍咒僻虹映估徒氖眠碰眠棠瓣轨租凰闹堡轴进抱履才五章软件测试五章软件测试5.2 5.2 两种类型的测试两种类型的测试5.2.1 5.2.1 黑盒测试黑盒测试 又称又称: :功能测试功能测试 数据驱动测试数据驱动测试 基于规格说明书的测试基于规格说明书的测试湛呐确婪述献涕咽委噪斜何秒劫胰缚价仰毁搐焙袁耗种促技禄畦菠灶灶痉五章

37、软件测试五章软件测试5.2.2 5.2.2 白盒测试白盒测试 又称又称: :开盒测试开盒测试 结构测试结构测试 玻璃盒测试玻璃盒测试 基于覆盖的测试基于覆盖的测试. . 根据被测程序的逻辑结构设计测试用例根据被测程序的逻辑结构设计测试用例; ; 力求提高测试覆盖率力求提高测试覆盖率; ;颂憨征栋斌握寒躬虚没戴遥波曳私党赃岭大刹镰鹤摹明许篆僵甸歉梆谗缅五章软件测试五章软件测试黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试是从用户观点,按黑盒测试是从用户观点,按规格说明书要求的输入数据与输规格说明书要求的输入数据与输出数据的对应关系设计测试用例出数据的对应关系设计测试用例, ,是根据程序是

38、根据程序外部特征外部特征进行测试。进行测试。 白盒测试是根据程序白盒测试是根据程序内部逻辑结构内部逻辑结构进行测试。进行测试。握少淌佐到腰驶摩蛆馏箭翼胚格译囱视邀爵该笑埃汞唇望宫泌灵孙菠巩忱五章软件测试五章软件测试黑盒测试与白盒测试能发现的错误黑盒测试与白盒测试能发现的错误C CB BA AD D- -只能用黑盒测试发现的错误只能用黑盒测试发现的错误A- -只能用白盒测试发现的错误只能用白盒测试发现的错误- -两种方法都能发现的错误两种方法都能发现的错误- -两种方法都不能发现的错误两种方法都不能发现的错误BCD防极掠题艇卜嘴婆捧呆毗饱处阂寻掂总仰选殉涸壳挪橡亨美辈喜缓捌罕艺五章软件测试五章软

39、件测试 黑盒测试与白盒测试黑盒测试与白盒测试优缺点优缺点比较比较 黑盒测试黑盒测试 白盒测试白盒测试优优点点缺缺点点性性质质适用于各阶段测试适用于各阶段测试从产品功能角度测试从产品功能角度测试容易入手生成测试数容易入手生成测试数 据据可构成测试数据使特定程可构成测试数据使特定程 序部分得到测试序部分得到测试有一定的充分性度量手段有一定的充分性度量手段可或较多工具支持可或较多工具支持某些代码得不到测试某些代码得不到测试如果规格说明有误,如果规格说明有误, 则无法发现则无法发现不易进行充分性测试不易进行充分性测试不易生成测试数据不易生成测试数据( (通常通常) )无法对未实现规格说明的无法对未实现

40、规格说明的 部分进行测试部分进行测试工作量大,通常只用于单工作量大,通常只用于单 元测试,有应用局限元测试,有应用局限是一种是一种确认确认技术,回答技术,回答“我们在构造一个正确我们在构造一个正确 的系统吗?的系统吗?”是一种是一种验证验证技术,回答技术,回答“我们在正确地构造一个系我们在正确地构造一个系 统吗统吗?”弟绪瞳戚效我诛笛垦滦艘雅微研角浙改厦垦挝桔诱灼副锭粟退粟锨跺亥既五章软件测试五章软件测试5.2.3 5.2.3 穷举测试穷举测试例例: :输入输入 三条边长三条边长 可采用的测试用例数可采用的测试用例数 ( (设字长设字长1616位位) ) 执行时间执行时间: : 设测试一次需设

41、测试一次需1ms1ms 共需一万年共需一万年. .=2 X2 X2 3X10=2 X2 X2 3X101616161616161414黑盒测试黑盒测试郸甲辫大忘顶杉柯朽礁叹骤瞬驱茎讣继砾窜登侦议卉窒办再苔祟吃玉翻拟五章软件测试五章软件测试穷举测试穷举测试实实例例: : 白盒测试白盒测试 设程序设程序含含4 4个分支个分支, ,循环次数循环次数20,20,从从A A到到B B的可能路径的可能路径 执行时间执行时间: : 设测试一次需设测试一次需2ms2ms 穷举测试需穷举测试需5 5亿年亿年. .=5+5 +.+5 +5 =5+5 +.+5 +5 101020201 12 219191414A

42、AB B误筒姨贡砒荐脸娄辅种帝聘钨颜秃鬼槐叭雨稍奇搽侮觉筹嫂儿飘嘉篮柔凉五章软件测试五章软件测试 不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能进行穷尽不能进行穷尽测试测试, , 所以软件测试不可能发现程序中存所以软件测试不可能发现程序中存在的所有错误在的所有错误, , 因此需精心设计测试方案因此需精心设计测试方案, , 力争尽可能少的次数力争尽可能少的次数,测出尽可能多的错测出尽可能多的错误误. .讼群伐妒氯芭脐谬郭脉森闪闰辞韭振茧彻丢踏食涉毡茄浊编赣戎鸦示砧畅五章软件测试五章软件测试5.35.3白盒测试的测试用例设计白盒测试的测试用例设计 5.3.1 5.3.1 逻辑覆盖法逻辑覆盖法(1

43、)(1)语句覆盖语句覆盖(2)(2)判定覆盖判定覆盖(3)(3)条件覆盖条件覆盖(4)(4)判定判定/ /条件覆盖条件覆盖(5)(5)条件组合覆盖条件组合覆盖(6)(6)路径覆盖路径覆盖(7)(7)点覆盖点覆盖(8)(8)边覆盖边覆盖茂抽硕循故故闽郎毁励脊砷兑荔疗初丛洪稠需泅陵槐铲曳崩井蔚木潜喧田五章软件测试五章软件测试例例: :PROCEDURE SAMPAL (A,B:REAL; VAR X:REAL); BEGIN IF (A1) AND (B=0) THEN X:=X/A IF (A=2) OR (X1) THEN X:=X+1 END; 开始开始(A1) AND (B=0)(A=2)

44、 OR (X1)返回返回X=X/AX=X+1FFTTabdce嚼践瘦轿陷角羊摸挛俺捐讫韦洪皋辙纲龙椰淮釉沏忻枯奄汤招伦狭囤恐含五章软件测试五章软件测试(1)(1)语句覆盖语句覆盖 使程序中每个语句至少执行一次使程序中每个语句至少执行一次开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FFTTabdce只需设计一个测试用例只需设计一个测试用例: : 输入数据:输入数据:A=2, B=0, X=4 即达到了语句覆盖即达到了语句覆盖; ; 语句覆盖是语句覆盖是最弱最弱的逻辑覆盖的逻辑覆盖酸返烈悼缝碱葛非哨遮遮题雕堆粥芯簧矮侗妇缕惮篙均堕株赊法窒持聚狙五章软件

45、测试五章软件测试开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FFTTabdce啼虾伶伴评镇盛盆惹酵龟议综潭叠鳃沽缓蜗娇喝迅绵宣葛峰畅养遥魂瓣芍五章软件测试五章软件测试只需设计一个测试用例只需设计一个测试用例: :输入数据:输入数据:A=2,B=0,X=4即达到了语句覆盖即达到了语句覆盖; ;坐砰薛雇扣涤沦孟玫静摔受棍掂齿振臂刀促唱判浚霓让柏朝翰轩荐坯哉挎五章软件测试五章软件测试( (2)2)判定覆盖判定覆盖( (分支覆盖分支覆盖) ) 使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次开始开始(A1) AND (B=0)(A=2)

46、 OR (X1)返回返回X=X/AX=X+1FFTTabdce思鸟潞眶锤食兽醋缄氏脐丘谐圆脖伏摧降惰枣凡雹袍晦嚣拳郁孵剔惫敬轩五章软件测试五章软件测试例例: :可设计两组测试用例可设计两组测试用例: :A=3,B=0 ,X=3 可覆盖可覆盖c、d分支分支 A=2,B=1 ,X=1 可覆盖可覆盖b、e分支分支 两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支 判定判定覆盖仍是覆盖仍是弱弱的逻辑覆盖的逻辑覆盖侧场减琳淫寄巫急怨拉铅扯率南剔魁京震呕紧磨葫庆惮津京嗅尽丘膨盔掖五章软件测试五章软件测试( (3)3)条件覆盖条件覆盖使每个判定的每个条件的可能取值至少执行一次使每个判

47、定的每个条件的可能取值至少执行一次。开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1, T2,T2 T3,T3 T4,T4第一判定表达式第一判定表达式: :设条件设条件 A1 A1 取真取真 记为记为T1T1 假假 T1T1 条件条件 B=1 B=1 取真取真 记为记为T2T2 假假 T2T2第二判定表达式第二判定表达式: :设条件设条件 A=2 A=2 取真取真 记为记为T3T3 假假 T3T3 条件条件 X1 X1 取真取真 记为记为T4T4 假假 T4T4瓶斑赏邵匝扔袭蔬计讹患丰往衡屯呢乏抗衔抿规芳愁

48、故敷讫巍院悼蔗根由五章软件测试五章软件测试测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 0 3 abe T1,T2,T3,T4 b,e2 1 1 abe T1,T2,T3,T4 b,e 两个测试用例覆盖了四个条件八种可能取值。两个测试用例覆盖了四个条件八种可能取值。 未覆盖未覆盖c c、d d分支,不满足判定覆盖的要求分支,不满足判定覆盖的要求. . 条件覆盖不一定包含判定覆盖条件覆盖不一定包含判定覆盖 判定覆盖也不一定包含条件覆盖判定覆盖也不一定包含条件覆盖埃戒闻翌蛹日呆撒添抿匝胁惮赐祈始溢互眯遂扮惩烂陡蹋峙立盼腐擒慌憨五章软件测试五章软件测试

49、(4)(4)判定判定/ /条件覆盖条件覆盖 选取足够多的选取足够多的测试用例,使判断测试用例,使判断中的每个条件的所中的每个条件的所有可能取值至少执有可能取值至少执行一次,同时每个行一次,同时每个判断本身的所有可判断本身的所有可能判断结果至少执能判断结果至少执行一次行一次.开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1, T2,T2 T3,T3 T4,T4删寺仍来滇爷亮祥烛我压佯鸽牙豫袍摸雪薯杀辱鸿睹豺宽饲涉耗吗奠泰哗五章软件测试五章软件测试测试用例测试用例 通过通过 满足的条件满足的条件 覆盖覆盖A B

50、 X 路径路径 分支分支2 0 4 ace2 0 4 ace T1,T2,T3,T4 c,e T1,T2,T3,T4 c,e2 1 1 abd2 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d 能同时满足判定、条件两种覆盖标准能同时满足判定、条件两种覆盖标准的的取值取值 妄瓤透赚并胳召航溢凹恤爷穆犁钢纪虾叛参裹咬狮英赘锡蘸卫勿赐心逊招五章软件测试五章软件测试测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X A B X 路径路径 条件条件 分分支支2 0 3 ace T1,T2,T3,T4 c,e2 0 3 ace T1,T2,T3,T4 c,e2 1

51、 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e1 0 3 abe1 0 3 abe T1,T2,T3,T4 b,e T1,T2,T3,T4 b,e1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d 抖松尼钞缸鸳癌笋忘肢精租吞蕊孙卵卤趋僳踞逃伐斜九岛叉挡胎郭衰埠履五章软件测试五章软件测试(5)(5)条件组合覆盖条件组合覆盖所有可能的条件取值组合至少执行一次所有可能的条件取值组合至少执行一次 A1, B=0 A1, B0 A 1, B=0 A 1, B0 A=2, X1 A=2, X 1 A2, X1

52、 A2, X 1雌蕊瞄冬群款曾哉撤饲武炕抡绥站仁岔杖怯幽殆凋萧淳碍诛铅绕熬盔城芳五章软件测试五章软件测试测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B XA B X 路径路径 条件条件 分支分支2 0 4 ace T1,T2,T3,T4 c,e2 0 4 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e1 0 2 abd1 0 2 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b

53、,d 竖潍跋籽浇伙且谜撩挽鹃尧敢拦尔烩宛革耽家等没伍邢蓄娩逝阵崇游冲棵五章软件测试五章软件测试(6)(6)路径覆盖路径覆盖 覆盖每一个可能的路径覆盖每一个可能的路径测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 1 1 abd T1,T2,T3,T4 b,d1 1 1 abd T1,T2,T3,T4 b,d1 1 2 abe1 1 2 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e3 0 1 acd3 0 1 acd T1,T2,T3,T4 c,d T1,T2,T3,T4 c,d2 0 4 ace2 0 4 ace T1,T

54、2,T3,T4 c,e T1,T2,T3,T4 c,e柏崇歼廊泊戍恢故眺晾轮甭岳团搭燎杯话甩矾卡侍威纫锰伟互陨棋腰栅挤五章软件测试五章软件测试基本路径基本路径测试法测试法 通过分析由控制构造的环路的复杂性,导通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,保出基本路径集合,从而设计测试用例,保证这些路径至少通过一次。证这些路径至少通过一次。 基本路径测试步骤:基本路径测试步骤:导出程序流程图的拓扑结构导出程序流程图的拓扑结构- -流图流图( (控制流程图控制流程图) )计算流图计算流图G G的环路复杂性的环路复杂性V(G)V(G)确定只包含独立路径的基本路径集确定只包含独

55、立路径的基本路径集设计测试用例设计测试用例胃援花娃图张灾撒偷愚埠迭葛塞复该稳宋乘谷太窿葱摹殆广递沸带允藐劣五章软件测试五章软件测试导出程序流程图的拓扑结构导出程序流程图的拓扑结构- -流图流图1 12,32,36 64,54,57 710101111a节点节点边边R4R4区域区域1 12 23 34 45 58 87 76 69 911118 89 9R1R1R2R2R3R31010仓认赢谢姿争熏忆劫一盅弓贡警抨争缩沼英贷贷踢谭漱泊大辕圃较衡梧未五章软件测试五章软件测试计算流图计算流图G G的环路复杂度的环路复杂度CCCC的不同方法的不同方法(1)CC=(1)CC=区域个数区域个数 = 4 =

56、 4(2)CC=(2)CC=边的条数边的条数- -节点个数节点个数+2 = 11-2+2=4+2 = 11-2+2=4(3)CC=(3)CC=判定节点个数判定节点个数+1 = 3+1=4+1 = 3+1=4确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集path1:path1:1-111-11path1:path1:1-2-3-4-5-10-1-111-2-3-4-5-10-1-11path1:path1:1-2-3-6-8-9-10-1-111-2-3-6-8-9-10-1-11path1:path1:1-2-3-6-7-9-10-1-111-2-3-6-7-9-10-1-11环路复杂度环路复杂度4 4是构成这个基本路径集的独立路径数是构成这个基本路径集的独立路径数的上界,也是设计的上界,也是设计测试用例的数目测试用例的数目设计测试用例设计测试用例, ,保证基本路径集中每条路径的执行保证基本路径集中每条路径的执行一条新路径一条新路径必须包含一必须包含一条新边条新边拧壶房丫闽丁现窿拿尘失把侥菲腿肥秆碘租墟快俊子侮埠非巧磐足软瞪痞五章软件测试五章软件测试

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号