《软件工程引论教学课件》第7章软件测试.ppt
《《软件工程引论教学课件》第7章软件测试.ppt》由会员分享,可在线阅读,更多相关《《软件工程引论教学课件》第7章软件测试.ppt(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第7 7章章 软件测试软件测试2千年虫千年虫3软件错误的实例软件错误的实例n n爱国者导弹爱国者导弹爱国者导弹爱国者导弹n n曾在海湾战争期间对抗伊拉克飞毛腿导弹曾在海湾战争期间对抗伊拉克飞毛腿导弹曾在海湾战争期间对抗伊拉克飞毛腿导弹曾在海湾战争期间对抗伊拉克飞毛腿导弹n n1991199119911991年年年年2 2 2 2月,一次对抗失利中月,一次对抗失利中月,一次对抗失利中月,一次对抗失利中28282828名名名名美国士兵丧生美国士兵丧生美国士兵丧生美国士兵丧生n n问题的症结在于导弹软件包含一个累加计时误差问题的症结在于导弹软件包含一个累加计时误差问题的症结在于导弹软件包含一个累
2、加计时误差问题的症结在于导弹软件包含一个累加计时误差n n软件错误软件错误软件错误软件错误n ntarget=ftarget=ftarget=ftarget=f(velocity,timevelocity,timevelocity,timevelocity,time)n n计时采用系统时钟(即计时采用系统时钟(即计时采用系统时钟(即计时采用系统时钟(即1/10 1/10 1/10 1/10 秒)并使用整数表达秒)并使用整数表达秒)并使用整数表达秒)并使用整数表达n n(1/101/101/101/10)2 2 2 2n n24 24 24 24 位寄存器存储导致误差(位寄存器存储导致误差(位寄
3、存器存储导致误差(位寄存器存储导致误差(0.0000000950.0000000950.0000000950.000000095)10101010n n0.000000095100hours606010=0.34seconds0.000000095100hours606010=0.34seconds0.000000095100hours606010=0.34seconds0.000000095100hours606010=0.34seconds4迪斯尼的圣诞节礼物迪斯尼的圣诞节礼物5问题在哪里?问题在哪里?n n没有足够测试没有足够测试没有足够测试没有足够测试n n缺乏测试平台缺乏测试平台缺乏
4、测试平台缺乏测试平台n n不正确的测试环境不正确的测试环境不正确的测试环境不正确的测试环境n n缺少集成测试缺少集成测试缺少集成测试缺少集成测试n n缺少性能测试缺少性能测试缺少性能测试缺少性能测试n n缺少强度测试缺少强度测试缺少强度测试缺少强度测试n n缺少可靠性测试缺少可靠性测试缺少可靠性测试缺少可靠性测试n n6Exchange 2000Exchange 2000 和和和和 Windows 2000Windows 2000 的人员结构的人员结构的人员结构的人员结构 Exchange 2000Exchange 2000Exchange 2000Exchange 2000Windows 2
5、000Windows 2000Windows 2000Windows 2000项目经理项目经理项目经理项目经理25252525人人人人约约约约 250 250 250 250人人人人开发人员开发人员开发人员开发人员140140140140人人人人约约约约 1700 1700 1700 1700人人人人测试人员测试人员测试人员测试人员350350350350人人人人约约约约 3200 3200 3200 3200人人人人测试人员测试人员测试人员测试人员/开发人员开发人员开发人员开发人员2:52:52:52:51:1:1:1:2 2 2 27开发人员的一般配置图开发人员的一般配置图8主要内容主要内
6、容n n软件测试概述软件测试概述软件测试概述软件测试概述n n软件测试方法软件测试方法软件测试方法软件测试方法n n软件测试阶段软件测试阶段软件测试阶段软件测试阶段n n软件测试工具软件测试工具软件测试工具软件测试工具9主要内容主要内容n n软件测试概述软件测试概述软件测试概述软件测试概述n n软件测试方法软件测试方法软件测试方法软件测试方法n n软件测试阶段软件测试阶段软件测试阶段软件测试阶段n n软件测试工具软件测试工具软件测试工具软件测试工具10软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件测试
7、的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件测试的基本原则软件测试的基本原则软件测试的基本原则11软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件测试的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件测试的基本原则软件测试的基本原则软件测试的基本原则12软件的错误软件的错误n n软件未达到产品说明书标明的功能软件未达到产品说明书标明的功能软
8、件未达到产品说明书标明的功能软件未达到产品说明书标明的功能n n软件出现了产品说明书指明不会出现的错误软件出现了产品说明书指明不会出现的错误软件出现了产品说明书指明不会出现的错误软件出现了产品说明书指明不会出现的错误n n软件功能超出了产品说明书指明的范围软件功能超出了产品说明书指明的范围软件功能超出了产品说明书指明的范围软件功能超出了产品说明书指明的范围n n软件未达到产品说明书虽未指出但应达到的目标软件未达到产品说明书虽未指出但应达到的目标软件未达到产品说明书虽未指出但应达到的目标软件未达到产品说明书虽未指出但应达到的目标n n软件测试人员认为软件难以理解、不易使用、运行速度缓软件测试人员
9、认为软件难以理解、不易使用、运行速度缓软件测试人员认为软件难以理解、不易使用、运行速度缓软件测试人员认为软件难以理解、不易使用、运行速度缓慢慢慢慢,或者最终用户不满意或者最终用户不满意或者最终用户不满意或者最终用户不满意13软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件测试的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件测试的基本原则软件测试的基本原则软件测试的基本原则14验证和确认验证和确认n n验证(验证(验证(验证
10、(VerificationVerification )指确保软件正确地实现某一特定功能的一系列活动指确保软件正确地实现某一特定功能的一系列活动指确保软件正确地实现某一特定功能的一系列活动指确保软件正确地实现某一特定功能的一系列活动n n确认(确认(确认(确认(ValidationValidation )指确保开发的软件可追溯到用户需求的另外一系列活动指确保开发的软件可追溯到用户需求的另外一系列活动指确保开发的软件可追溯到用户需求的另外一系列活动指确保开发的软件可追溯到用户需求的另外一系列活动n n验证(验证(验证(验证(VerificationVerification )Are we buil
11、ding the product rightAre we building the product right?n n确认(确认(确认(确认(ValidationValidation )Are we building the right product?Are we building the right product?BoehmBoehmBoehmBoehm的观点的观点的观点的观点用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机做什么机做什么?设计说明书设计说明书设计员设计员:我要让
12、软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我要提我要提供什么供什么?理解正确性理解正确性表达正确性表达正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性理解正确性理解正确性编码正确性编码正确性输入正确性输入正确性运行正确性运行正确性相符吗相符吗?16软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件测试的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件测试的基本原则软件测试的基本原则软件测试
13、的基本原则17软件测试的定义软件测试的定义n n传统的观点传统的观点传统的观点传统的观点 软件测试是一种旨在评估一个程序或系统的属性或能力,确定它是否软件测试是一种旨在评估一个程序或系统的属性或能力,确定它是否软件测试是一种旨在评估一个程序或系统的属性或能力,确定它是否软件测试是一种旨在评估一个程序或系统的属性或能力,确定它是否符合其所需结果的活动符合其所需结果的活动符合其所需结果的活动符合其所需结果的活动n nMyersMyersMyersMyers的观点的观点的观点的观点 软件测试是为了发现错误而执行一个程序或系统的过程软件测试是为了发现错误而执行一个程序或系统的过程软件测试是为了发现错误
14、而执行一个程序或系统的过程软件测试是为了发现错误而执行一个程序或系统的过程n nIEEEIEEEIEEEIEEE的观点的观点的观点的观点 软件测试是使用人工和自动手段来运行或检测某个系统的过程,其目软件测试是使用人工和自动手段来运行或检测某个系统的过程,其目软件测试是使用人工和自动手段来运行或检测某个系统的过程,其目软件测试是使用人工和自动手段来运行或检测某个系统的过程,其目的在于检验系统是否满足规定的需求或弄清预期结果与实际结果之间的的在于检验系统是否满足规定的需求或弄清预期结果与实际结果之间的的在于检验系统是否满足规定的需求或弄清预期结果与实际结果之间的的在于检验系统是否满足规定的需求或弄
15、清预期结果与实际结果之间的差别差别差别差别n n软件测试的目的软件测试的目的软件测试的目的软件测试的目的 以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷18软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件测试的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件
16、测试的基本原则软件测试的基本原则软件测试的基本原则19软件测试软件测试V V模型模型20软件测试的对象软件测试的对象n n软件测试并不等于程序测试软件测试并不等于程序测试软件测试并不等于程序测试软件测试并不等于程序测试n n软件测试应贯穿于软件定义与开发的整个期间软件测试应贯穿于软件定义与开发的整个期间软件测试应贯穿于软件定义与开发的整个期间软件测试应贯穿于软件定义与开发的整个期间n n需求分析、概要设计、详细设计以及程序编码等所得到的文需求分析、概要设计、详细设计以及程序编码等所得到的文需求分析、概要设计、详细设计以及程序编码等所得到的文需求分析、概要设计、详细设计以及程序编码等所得到的文档
17、资料,包括档资料,包括档资料,包括档资料,包括需求规格说明需求规格说明需求规格说明需求规格说明、概要设计说明概要设计说明概要设计说明概要设计说明、详细设计规格详细设计规格详细设计规格详细设计规格说明说明说明说明以及以及以及以及源程序源程序源程序源程序,都应成为软件测试的对象,都应成为软件测试的对象,都应成为软件测试的对象,都应成为软件测试的对象 测试信息流如下图所示。测试信息流如下图所示。测试信息流如下图所示。测试信息流如下图所示。测试信息流测试信息流22软件测试概述软件测试概述n n软件的错误软件的错误软件的错误软件的错误n n验证与确认验证与确认验证与确认验证与确认n n软件测试的定义软件
18、测试的定义软件测试的定义软件测试的定义n n软件测试软件测试软件测试软件测试V V V V模型模型模型模型n n软件测试的基本原则软件测试的基本原则软件测试的基本原则软件测试的基本原则23软件测试的基本原则软件测试的基本原则n n所有测试的标准都是建立在所有测试的标准都是建立在所有测试的标准都是建立在所有测试的标准都是建立在用户需求用户需求用户需求用户需求之上之上之上之上n n软件项目一启动,软件测试也就开始软件项目一启动,软件测试也就开始软件项目一启动,软件测试也就开始软件项目一启动,软件测试也就开始n n严格执行测试计划,排除测试的随意性严格执行测试计划,排除测试的随意性严格执行测试计划,
19、排除测试的随意性严格执行测试计划,排除测试的随意性n n独立测试组独立测试组独立测试组独立测试组n n80-2080-2080-2080-20原则原则原则原则n n重视文档,妥善保存一切测试过程文档重视文档,妥善保存一切测试过程文档重视文档,妥善保存一切测试过程文档重视文档,妥善保存一切测试过程文档24Who Tests the Software?Who Tests the Software?developerdeveloperindependent testerindependent testerUnderstands the system Understands the system bu
20、t,will test gentlybut,will test gentlyand,is driven by deliveryand,is driven by deliveryMust learn about the system,Must learn about the system,but,will attempt to break itbut,will attempt to break itand,is driven by qualityand,is driven by quality25主要内容主要内容n n软件测试概述软件测试概述软件测试概述软件测试概述n n软件测试方法软件测试方法
21、软件测试方法软件测试方法n n软件测试阶段软件测试阶段软件测试阶段软件测试阶段n n软件测试工具软件测试工具软件测试工具软件测试工具26软件测试方法软件测试方法n n静态测试方法静态测试方法静态测试方法静态测试方法 一种不通过执行被测软件而进行测试的技术一种不通过执行被测软件而进行测试的技术一种不通过执行被测软件而进行测试的技术一种不通过执行被测软件而进行测试的技术 关键是检查软件的表示和描述是否一致关键是检查软件的表示和描述是否一致关键是检查软件的表示和描述是否一致关键是检查软件的表示和描述是否一致 目的是纠正软件系统在描述、表示和规格上的错误目的是纠正软件系统在描述、表示和规格上的错误目的
22、是纠正软件系统在描述、表示和规格上的错误目的是纠正软件系统在描述、表示和规格上的错误n n动态测试方法动态测试方法动态测试方法动态测试方法 一种通过执行被测软件而进行测试的技术一种通过执行被测软件而进行测试的技术一种通过执行被测软件而进行测试的技术一种通过执行被测软件而进行测试的技术 27静态测试方法静态测试方法28静态测试方法静态测试方法n n工具工具工具工具 静态代码检测工具静态代码检测工具静态代码检测工具静态代码检测工具PC-LintPC-LintPC-LintPC-Lint 静态代码检测工具静态代码检测工具静态代码检测工具静态代码检测工具FindBugsFindBugsFindBugs
23、FindBugs 29动态测试方法动态测试方法n n白盒测试方法白盒测试方法白盒测试方法白盒测试方法 n n黑盒测试方法黑盒测试方法黑盒测试方法黑盒测试方法30动态测试方法动态测试方法n n白盒测试方法白盒测试方法白盒测试方法白盒测试方法 n n黑盒测试方法黑盒测试方法黑盒测试方法黑盒测试方法31白盒测试方法白盒测试方法n n需要对系统内部的结构和工作原理有一个清楚的需要对系统内部的结构和工作原理有一个清楚的需要对系统内部的结构和工作原理有一个清楚的需要对系统内部的结构和工作原理有一个清楚的了解,并基于这个知识来设计测试用例了解,并基于这个知识来设计测试用例了解,并基于这个知识来设计测试用例了
24、解,并基于这个知识来设计测试用例n n结构测试结构测试结构测试结构测试n n逻辑驱动测试逻辑驱动测试逻辑驱动测试逻辑驱动测试白盒穷举测试白盒穷举测试n对一个具有对一个具有多重选择和循环嵌套多重选择和循环嵌套的程序,的程序,不同的路径数目不同的路径数目可能是天文数字可能是天文数字。给出一个小程序的流程图,它包括了一。给出一个小程序的流程图,它包括了一个执行个执行20次的循环。次的循环。n包含的不同执行路径包含的不同执行路径数达数达520条,对每一条条,对每一条路径进行测试需要路径进行测试需要1毫毫秒,假定一年工作秒,假定一年工作365 24小时,要想把所有小时,要想把所有路径测试完,需路径测试完
25、,需3170年。年。34白盒测试用例的设计白盒测试用例的设计n n逻辑覆盖法逻辑覆盖法逻辑覆盖法逻辑覆盖法n n基本路径测试法基本路径测试法基本路径测试法基本路径测试法35逻辑覆盖测试的五种标准逻辑覆盖测试的五种标准发现错误发现错误发现错误发现错误的能力的能力的能力的能力标标标标 准准准准含含含含 义义义义 1(1(1(1(弱弱弱弱)语句覆盖语句覆盖语句覆盖语句覆盖每条每条每条每条语句语句语句语句至少执行一次至少执行一次至少执行一次至少执行一次 2 2 2 2判定覆盖判定覆盖判定覆盖判定覆盖每一判定的每个每一判定的每个每一判定的每个每一判定的每个分支分支分支分支至少执行一次至少执行一次至少执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程引论教学课件 软件工程 引论 教学 课件 软件 测试
限制150内