《软件测试工程》课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件测试工程》课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件测试工程 软件 测试 工程 课件
- 资源描述:
-
1、第五章第五章 软件测试工程软件测试工程概述概述n 软件开发过程必须伴有质量软件开发过程必须伴有质量保证活动。保证活动。n 软件测试是软件质量保证的软件测试是软件质量保证的关键元素,代表了规约、设计关键元素,代表了规约、设计和编码的最终检查。和编码的最终检查。n 软件产品最大的成本是检测软软件产品最大的成本是检测软 件错误、修正软件错误的成本。件错误、修正软件错误的成本。n 在整个软件开发中,测试工作量在整个软件开发中,测试工作量 一般占一般占30%30%40%40%,甚至,甚至50%50%。在人命关天的软件在人命关天的软件(如飞机控制、如飞机控制、核反应堆等)测试所花费的时间核反应堆等)测试所
2、花费的时间往往是其它软件工程活动时间之往往是其它软件工程活动时间之和的三到五倍和的三到五倍n软件测试是为了发现错误而执行程序的过程,或者说,软件测试是根据软件的规格说明(例如软件的功能、性能、运行环境等要求)以及程序内部结构而设计一批测试用例,并利用这些测试用例去运行程序,以发现软件错误的过程。n测试用例是为了测试软件而设计的一组数据,它应该包括输入的数据和预期输出的结果两部分。n测试用例=输入数据+预期结果 软件测试背景软件测试背景软件是人编的所以不完美实例实例:IntelIntel的的pentiumpentium处理器处理器19941994年浮点除法缺陷年浮点除法缺陷20002000年年8
3、 8月月2828日,日,1.13MHZ1.13MHZ处理器一个可能导致运行程序处理器一个可能导致运行程序被挂起的执行指令问题被挂起的执行指令问题19991999年年1212月月3 3日日,美国航天局火星极地登陆飞船失美国航天局火星极地登陆飞船失踪踪19911991年爱国者导弹防御系统系统时钟错误积累造年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度成跟踪系统失去精确度千年虫:世界各地解决千年虫:世界各地解决20002000年错误超过数亿美元年错误超过数亿美元n质量管理领域权威人物质量管理领域权威人物J.M.Juran将质量将质量定义为定义为“决定产品性能和决定产品性能和满意程度满意程
4、度的特征的特征”,测试注重于产品的满意度。测试注重于产品的满意度。n测试应针对这样一种情况:软件产品在测试应针对这样一种情况:软件产品在一些特定的范围内不能满足客户的合理一些特定的范围内不能满足客户的合理要求。要求。n通过测试过程可以评定通过测试过程可以评定质量风险(可能质量风险(可能的错误)的错误),了解被测试系统中存在的,了解被测试系统中存在的错错误模式(观察到的错误症状)误模式(观察到的错误症状)。n软件测试是一个查找错误的过程,所以软件测试是一个查找错误的过程,所以软件测试只能证明错误的存在,而不是软件测试只能证明错误的存在,而不是证明程序无错,不能保证经过测试的程证明程序无错,不能保
5、证经过测试的程序一定没有错误。序一定没有错误。n软件测试仅仅是一个手段,根本的目的软件测试仅仅是一个手段,根本的目的是为了纠错,即纠正软件中的错误,从是为了纠错,即纠正软件中的错误,从而提高软件的质量。而提高软件的质量。n测试不可能发现所有错误,只能在有限测试不可能发现所有错误,只能在有限的时间和经济条件下,尽可能地发现错的时间和经济条件下,尽可能地发现错误。误。质量控制技术质量控制技术质量控制活动分类质量控制活动分类开发方法学开发方法学配置管理配置管理验证技术验证技术评评 审审正确性验证正确性验证性能调试性能调试组件测试组件测试集成测试集成测试系统测试系统测试原子事务原子事务模块冗余性模块冗
6、余性检检 错错质量控制质量控制避免错误避免错误容容 错错调调 试试测测 试试测试的目的与地位测试的目的与地位 G.J.MyersG.J.Myers在在软件测试技巧软件测试技巧中认为中认为:1.1.测试是为了寻找错误而运行程序的过测试是为了寻找错误而运行程序的过程。程。2.2.一个好的测试用例是指很可能找到迄一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。今为止尚未发现的错误的测试。3.3.一个成功的测试是揭示了迄今为止尚一个成功的测试是揭示了迄今为止尚未发现的错误的测试。未发现的错误的测试。E.W.Dijkstra E.W.Dijkstra 指出指出:“程序测试能证明错误的存在程序
7、测试能证明错误的存在,但不能证明错误不存在但不能证明错误不存在。”n 测试的目的是发现程序中的错测试的目的是发现程序中的错误误,是为了是为了证明程序有错证明程序有错,而不而不是证明程序无错。是证明程序无错。n把证明程序无错当作测试目的不仅是把证明程序无错当作测试目的不仅是不正确的不正确的,完全做不到的,而且对做完全做不到的,而且对做好测试没有任何益处,甚至是好测试没有任何益处,甚至是十分有十分有害害的。的。n软件测试要设法使软件发生故障软件测试要设法使软件发生故障,暴暴露软件错误。露软件错误。测试的测试的“成功成功”与与“失败失败”:能:能够发现错误的测试是成功的测试,否够发现错误的测试是成功
8、的测试,否则是失败的测试。则是失败的测试。“测试的目的是说明程序正确地执测试的目的是说明程序正确地执行它应有的功能行它应有的功能”这种说法正确吗?这种说法正确吗?例:程序例:程序TriangleTriangle,输入三个整数,表,输入三个整数,表示一个三角形的三个边长,该程序产生一示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。腰三角形还是不等边三角形。为说明其能正确执行它的功能,可使用为说明其能正确执行它的功能,可使用“测试用例测试用例”(3,4,5),(5,5,6),(6,6,6),(3,4,5),(5,
9、5,6),(6,6,6),程序都能给出正确结果,是否就可认为程程序都能给出正确结果,是否就可认为程序是正确的?序是正确的?(两边之和必须大于第三边)(两边之和必须大于第三边)难以说清的软件缺陷难以说清的软件缺陷 古谚:古谚:“一片树叶飘落在森林中没一片树叶飘落在森林中没有人听见,谁能说它发出了声音?有人听见,谁能说它发出了声音?”由于不能报告没有看见的问题,因由于不能报告没有看见的问题,因此,没有看见就不能说存在软件缺陷。此,没有看见就不能说存在软件缺陷。如果软件中的问题没有人发现如果软件中的问题没有人发现,那么它算不算软件缺陷?,那么它算不算软件缺陷?”只有看到了,才能断言软件缺陷,只有看到
10、了,才能断言软件缺陷,尚未尚未发现的软件缺陷只能说是未知软件缺陷。发现的软件缺陷只能说是未知软件缺陷。眼见为实 测试原则测试原则(1)(1)所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求n最严重的错误最严重的错误(从用户角度从用户角度)是那些导是那些导致软件无法满足需求的错误。致软件无法满足需求的错误。n程序中的问题根源程序中的问题根源可能出现在开发前可能出现在开发前期的各阶段,纠正错误也必须追溯到期的各阶段,纠正错误也必须追溯到前期工作。前期工作。测测试试与与开开发发前前期期工工作作的的关关系系决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计
11、详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试A A AB B软件生存期各阶段间需保持的正确性软件生存期各阶段间需保持的正确性用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机什么做机什么做?设计说明书设计说明书设计员设计员:我要让软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我可以提我可以提供什么供什么?12345理解正确性理解正确性表达正确
12、性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗?测试原则测试原则(2)(2)应该尽早制定测试计划。应该尽早制定测试计划。概要设计时应完成测试计划,概要设计时应完成测试计划,详细的测试用例定义可在设计模型详细的测试用例定义可在设计模型确定后开始,所有测试可在任何代确定后开始,所有测试可在任何代码被产生之前进行计划和设计。码被产生之前进行计划和设计。测试原则测试原则(3)(3)应该由第三方进行测试工作。应该由第三方进行测试工作。一个软件项目的开发人员不应一个软件项目的开发人员不应该
13、同时是该软件的测试人员,基于该同时是该软件的测试人员,基于心理因素,人们往往不愿意否定自心理因素,人们往往不愿意否定自己的工作。己的工作。测试原则测试原则(4)(4)穷举测试是不可能的。穷举测试是不可能的。测试的最高目标是指发现错误测试的最高目标是指发现错误的可能性最高的测试,所以,测试的可能性最高的测试,所以,测试的关键技术是设计一组高产的测试的关键技术是设计一组高产的测试用例,好的测试方案是尽可能发现用例,好的测试方案是尽可能发现至今为止仍未发现的错误。从某种至今为止仍未发现的错误。从某种意义上说,测试是否成功,取决测意义上说,测试是否成功,取决测试用例的选择。试用例的选择。测试原则测试原
14、则(5)(5)充分注意到错误的群集现象充分注意到错误的群集现象 经验表明,测试发现的错误经验表明,测试发现的错误中有中有80%80%的错误很可能是由的错误很可能是由20%20%的的程序模块造成的,这是一种错误程序模块造成的,这是一种错误群集性现象。也就是说,在程序群集性现象。也就是说,在程序段中,发现错误数目多的地方,段中,发现错误数目多的地方,则残存错误的数目也比较多,这则残存错误的数目也比较多,这一现象已为许多程序测试实践所一现象已为许多程序测试实践所证明。证明。测试原则测试原则(6)(6)测试应该从测试应该从“小规模小规模”到到“大规大规模模”通常,最初的测试重点往往是通常,最初的测试重
15、点往往是放在单个的程序模块中,然后,进放在单个的程序模块中,然后,进一步的测试重点放在集成的模块族一步的测试重点放在集成的模块族,最后是对整个系统进行测试。随,最后是对整个系统进行测试。随着测试的逐步深入展开,要集中测着测试的逐步深入展开,要集中测试容易出错的地方。试容易出错的地方。软件测试流程软件测试流程软件软件配置配置测试测试测试测试配置配置测试测试工具工具结果结果分析分析排错排错可靠性可靠性 分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 改正改正的软件的软件预测预测的可的可靠性靠性需求规格说明书需求规格说明书软件设计说明书软件设计说明书 被测源程序被测源程序 测试计划测试
16、计划 测试用例测试用例(测试数据测试数据)测试驱动程序测试驱动程序n软件配置:需求规格说明、设计说明书、源程序等。软件配置中还应包含测试配置。n测试工具:为软件测试提供的某种服务程序。n评价:测试结果与期望结果比较,如果有差异则往往程序有错,需要改正。n可靠性预测有3种情况可以考虑:n A.如果测试发现严重错误,则软件的质量和可靠性一定不高;n B.如果测试结果是软件功能完成正常,发现的问题不是严重错误,也容易修改,则可能:(1)软件质量和可靠性可以接受;(2)所进行的测试还不足以发现严重错误,错误被潜伏下来。n C.测试没有发现任何错误,则极有可能是测试配置选择不当(测试用例没有选好),错误
17、被深深地潜伏下来,这是极危险。软件测试对象软件测试对象 n软件测试的对象应包括需求分析与设计以及编码等所获得一切的文档和程序。软件测试方法软件测试方法n软件测试方法一般可以分成静态测试和动态测试等。n静态测试实际上是确认在给定的外部环境中软件的逻辑正确性,它应该包括需求规格说明和程序等的确认。n动态测试也称为机器测试,动态测试主要是通过动态分析以及程序测试来检查程序的执行状态,以确认程序的正确性。测试的方法与技术测试的方法与技术软件测试的软件测试的策略和方法策略和方法静态测静态测试方法试方法动态测动态测试方法试方法人工测试方法人工测试方法计算机辅助静计算机辅助静态分析方法态分析方法白盒测试方法
18、白盒测试方法黑盒测试方法黑盒测试方法静态和动态测试静态和动态测试汽车的检查过程汽车的检查过程:踩油门踩油门看车漆看车漆打开前盖检查打开前盖检查发动汽车发动汽车听听发动机声音听听发动机声音上路行使上路行使静态测试静态测试动态测试动态测试静态测试:静态测试:基本特征是对软件进行基本特征是对软件进行 分析、检查和审阅,不实分析、检查和审阅,不实 际运行被测试的软件。际运行被测试的软件。静态测试约可找出静态测试约可找出303070%70%的逻辑设计错误的逻辑设计错误.对对需求规格说明书需求规格说明书、软件设计说明书软件设计说明书、源程序源程序做做检查和审阅检查和审阅,包括:包括:是否符合标准和规范;是
19、否符合标准和规范;通过结构分析、流图分析、符号执行指出软件缺通过结构分析、流图分析、符号执行指出软件缺陷陷;静态测试方法静态测试方法(1 1)人工测试方法。人工测试就是通过人工阅读分析以及)人工测试方法。人工测试就是通过人工阅读分析以及评审软件的文档、程序资料等等,以发现程序中的错误,评审软件的文档、程序资料等等,以发现程序中的错误,尤其是一些设计上的逻辑错误在机器上不易发现,需要人尤其是一些设计上的逻辑错误在机器上不易发现,需要人工复查。根据统计,好的人工评审,可以发现工复查。根据统计,好的人工评审,可以发现30%30%到到70%70%的的编码或逻辑设计错误。编码或逻辑设计错误。(2 2)计
20、算机辅助静态分析。为了提高测试的效率,人们可)计算机辅助静态分析。为了提高测试的效率,人们可以设计一些分析工具对被测试的程序进行静态分析,从中以设计一些分析工具对被测试的程序进行静态分析,从中提取一些信息。例如,检查程序中的局部变量和全局变量提取一些信息。例如,检查程序中的局部变量和全局变量、参数的匹配、判断与循环的嵌套匹配、潜在的死循环、参数的匹配、判断与循环的嵌套匹配、潜在的死循环、不执行的代码、过程调用层次等等。不执行的代码、过程调用层次等等。(3 3)程序正确性说明。程序正确性证明是试图找到某种方)程序正确性说明。程序正确性证明是试图找到某种方法,确切地证明程序是没有错误的。所谓证明,
21、就是确信法,确切地证明程序是没有错误的。所谓证明,就是确信一个断言真实性的论证。这种证明可以形式化的或非形式一个断言真实性的论证。这种证明可以形式化的或非形式化。化。动态测试:动态测试:通过运行软件来检验通过运行软件来检验软件的动态行为和运行结果的正确软件的动态行为和运行结果的正确性。性。动态测试的两个基本要素:动态测试的两个基本要素:u 被测试程序被测试程序u 测试数据(测试用例)测试数据(测试用例)动态测试方法动态测试方法(1)(1)选取定义域有效值选取定义域有效值,或定义域或定义域 外无效值外无效值.(2)(2)对已选取值决定对已选取值决定预期的结果预期的结果(3)(3)用选取值执行程序
22、用选取值执行程序(4)(4)执行结果执行结果 与与(2)(2)结果相比结果相比,不吻和则程序有错不吻和则程序有错.动态黑盒测试动态黑盒测试 闭着眼睛测试软件闭着眼睛测试软件软件输入输入 不深入代码细节的测试方法称为动态黑盒测试。不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出动态白盒测试动态白盒测试 带上带上X光眼镜测试软件光眼镜测试软件?3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015)360-1)/0.0
23、15 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机,而另一个而另一个盒子是人用纸笔计算盒子是人用纸笔计算,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段穷举测试穷举测试例例:输入输入 三条边长三条边长 黑盒测试黑盒测试可采用的测试用例数可采用的测试用例数(设字长设字长1616位位)执行时间执行时间:设测试一次需设测试一次需1ms1ms 共需一万年共需一万年.=2 X2 X2 3X10=2 X2 X2 3X101616161616161414 穷举测试穷举测试 白盒测试白盒测试例例:含含4 4个分支个分支,循环次数循环
24、次数20,20,从从A A到到B B的可能的可能路径路径执行时间执行时间:设测试一次需设测试一次需2ms2ms 穷举测试需穷举测试需5 5亿年亿年.=5+5+.+5+5=5+5+.+5+5 101020201 12 219191414A AB B第一次为5,第二次为5*5 不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能不能进行穷尽测试进行穷尽测试,所以软件测试不可所以软件测试不可能发现程序中存在的所有错误能发现程序中存在的所有错误,因因此需精心设计测试方案此需精心设计测试方案,力争尽可力争尽可能少的次数能少的次数,测出尽可能多的错误测出尽可能多的错误.两种类型的测试两种类型的测试黑盒测试黑盒
25、测试 又称又称:功能测试功能测试 数据驱动测试数据驱动测试 基于规格说明书的测试基于规格说明书的测试 白盒测试白盒测试 又称又称:开盒测试开盒测试 结构测试结构测试 玻璃盒测试玻璃盒测试 基于覆盖的测试基于覆盖的测试.根据被测程序的逻辑结构根据被测程序的逻辑结构设计测试用例设计测试用例;力求提高测试覆力求提高测试覆盖率盖率;黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试黑盒测试是从用户观点,按是从用户观点,按规格说明书要求的输入数据与输规格说明书要求的输入数据与输出数据的对应关系设计测试用例出数据的对应关系设计测试用例,是根据程序是根据程序外部特征外部特征进行测试。进行测试。白盒测试白
展开阅读全文