软件测试.ppt

上传人:本田雅阁 文档编号:2602049 上传时间:2019-04-16 格式:PPT 页数:49 大小:243.01KB
返回 下载 相关 举报
软件测试.ppt_第1页
第1页 / 共49页
软件测试.ppt_第2页
第2页 / 共49页
软件测试.ppt_第3页
第3页 / 共49页
软件测试.ppt_第4页
第4页 / 共49页
软件测试.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《软件测试.ppt》由会员分享,可在线阅读,更多相关《软件测试.ppt(49页珍藏版)》请在三一文库上搜索。

1、软件测试,本课程主要参考教材: Software Testing Second Edition (美)Ron Patton 著 ,张小松等译 2006年3月,课程教学内容安排: 第一部分 软件测试综述(共三章) 第二部分 软件测试基础(共五章) 第三部分 运用测试技术(共七章) 第四部分 软件测试的进一步深入(共两章) 第五部分 使用测试文档(共四章) 第六部分 软件测试的未来(共两章),第一部分 软件测试综述,官方定义 体系架构 软件测试的背景 软件开发过程 软件测试的实质,第一部分 软件测试综述,官方定义 使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清预期结

2、果与实际结果之间的差别。 IEEE1983年,第一部分 软件测试综述,体系架构 软件测试的基础理论和基本技术 软件测试的标准和规范 软件测试的环境和工具 软件测试的管理,第一部分 软件测试综述,第一章 软件测试的背景 软件错误案例研究 软件缺陷是什么 为什么会出现软件缺陷 软件缺陷的修复费用 软件测试员的工作内容 优秀软件测试员的素质,第一章 软件测试的背景,1 软件错误案例研究,1994年12月30日 ;Thomas R .Nicely博士在他的一个实验中,发现了奔腾CPU的除法问题,(41958353145727)314357274195835?,年月日,阿丽亚娜型火箭第一次鉴定发射,因火

3、箭导航电脑软件系统发生故障而失败;,第一章 软件测试的背景,美国爱国者导弹防御系统首次应用在海湾战争中对抗伊拉克飞毛腿导弹的防御战中 ,一次在沙特阿拉伯的多哈击毙了28名美国士兵 ;,2003年4月,一个软件故障导致美国航空集团公司损失数千美元,因为有些机票的价格被误定为1.86美元;,2003年8月,位于美国俄亥俄州的第一能源(FirstEnergy)公司下属的电力监测与控制管理系统“XA/21”出现软件错误,导致北美东北部大规模停电 ;,1999年12月3日,美国航天局的火星极地登陆者号探测器试图在火星表面着陆时失踪。 ;,第一章 软件测试的背景,美国商务部的国立标准技术研究所(NIST:

4、National Institute of Standards and Technology)有关软件缺陷的损失调查报告表示,“据推测,由于软件缺陷而引起的损失额每年高达595亿美元。这一数字相当于美国国内生产总值的0.6%”。,2005年07月13日,北京互联网首次突然大面积断网,主要原因是北京网通几个核心路由器的BGP Down掉了 ;,第一章 软件测试的背景,2 软件缺陷是什么,一、软件失败的术语,缺点(defect) 偏差(variance) 故障(fault) 失败(failure) 问题(problem) 矛盾(incosistency) 错误(error) 特性殊(feature

5、) 事件(incident) 缺陷(bug) 异常(anomaly),第一章 软件测试的背景,了解与自己合作的产品开发小组的特点是重要的。他们提及他们软件问题的方式反映出他们处理整个开发过程的方式。,本课程中,所有软件问题都被称为缺陷(bugs)。,第一章 软件测试的背景,二、软件缺陷官方的定义,1. 软件未实现产品说明书要求的功能。 2. 软件出现了产品说明书指明不会出现的错误。 3. 软件实现了产品说明书未提到的功能。 4. 软件未实现产品说明书虽未明确提及但应该实现的目标。 5. 软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好。,第一章 软件测试的背景,每一个使用

6、过一些软件的人都会对软件的工作方式有自己意见和想法,要编写令所有用户都满意的软件是不可能的。要全面,最重要的是要客观评价,并非所有测试发现的缺陷都要修改。,第一章 软件测试的背景,3 为什么会出现软件缺陷,一、导致软件缺陷最大的原因是产品说明书(需求分析),第一章 软件测试的背景,二、软件缺陷的第二大来源是设计,三、代码错误可以归咎于软件的复杂性、文档不足、进度压力或者普通的低级错误,与一、二有关。,四、其他原因,如误解,重复错误,测试错误等只占极小的比例 。,第一章 软件测试的背景,4 软件缺陷的修复费用,随着时间推移,修复软件缺陷的费用惊人地增长 (指数级 ),IBM:确定软件错误的相对成

7、本是:在设计阶段,1.5;编码前,1;编码中,1.5;测试前,10;测试中,60;交付后,100。Watts Humphrey TRW: 确定错误的相对时间:需求分析阶段,1;设计阶段,3-6;编码阶段,10;开发测试阶段,15-40;接受性测试阶段,30-70;应用运行中,40-1000。Boehm,第一章 软件测试的背景,5 软件测试员的工作内容,软件测试员的目标是找出缺陷,软件测试员的目标是找出缺陷,尽可能早一些,软件测试员的目标是找出缺陷,尽可能早一些,并确保其得以外修复,修复”缺陷并非指一定要改正软件,第一章 软件测试的背景,6 优秀软件测试员的素质,在宇宙的历史中,毁灭总是比创建容

8、易?,好的测试组织可以造就一个公司 ;缺少测试的组织可能倒闭一个公司,大多数软件测试员应具备的素质,第一章 软件测试的背景,具有编程方面的知识,不会害怕进入陌生环境 。,善于发现问题的症结,喜欢解谜。,不放过任何蛛丝马迹,具有创造性,力求完美,不去苛求,而是尽力接近目标,判断准确,注重策略和外交,善于说服,第一部分 软件测试综述,第二章 软件开发过程 产品的组成部分 软件项目成员 软件开发生命周期模式,第二章 软件开发过程,1 产品的组成部分,可能考虑不到的抽象内容 :,产品说明书 产品审查 设计文档 进度表 前期版本的反馈 竞争对手的信息 测试计划 用户调查 易用性数据 外观说明 软件体系结

9、构 软件代码,一、软件产品需要的投入,第二章 软件开发过程,1、客户需求,编写软件的目的是满足一些人的需求;,客户需求收集可以通过问卷调查,收集软件以前版本反馈信息、收集竞争产品信息、收集期刊评论、收集焦点人群的意见以及其他诸多方式 ;,第二章 软件开发过程,2、产品说明书,产品说明书综合需求调查信息以及没有提出但必须要实现的需求,真正地定义产品是什么、有哪些功能、外观如何;,第二章 软件开发过程,3、进度表,制定进度的目的是了解哪项工作完成了,还有多少工作要作,何时全部完成 ;,第二章 软件开发过程,4、软件设计文档,对于稍大一些的程序而言,必须要有一个规划软件如何编写的设计过程。,常用软件

10、设计文档包括:,结构文档,数据流图 、状态转换图 、流程图,代码注释,第二章 软件开发过程,5、测试文档,重要的测试提交文档清单包括:,测试计划,测试用例,缺陷报告,测试工具和自动测试,度量、统计和总结,第二章 软件开发过程,软件代码,二、软件产品的组成,帮助文件 用户手册 样本和示例 标签和不干胶 产品支持信息 图标和标志 错误信息 广告和宣传材料 安装 说明文件,第二章 软件开发过程,2 软件项目成员,项目经理、程序经理或者监制人员 编写产品说明书、管理进度、进行重大决策,项目不同,人员就大不相同了。但是对于大多数情况,分工是一样的,只是叫法不同而已,体系架构师 ,系统工程师 设计整个系统

11、体系架构,程序员、开发人员设计、编写软件并修复软件中的缺陷,第二章 软件开发过程,测试员或质量保证(Quality Assurance,QA)员找出并报告软件产品的问题,技术作者编制软件产品附带的文件和联机文档,配置管理员或构建员把程序员编写的代码及技术作者写的全部文档资料在一起,合成为一个软件包,第二章 软件开发过程,3 软件开发生命周期模式,软件产品从最初构思到公开发行的过程称为软件开发生命周期模式, 大爆炸模式 边写边改模式 瀑布模式 螺旋模式,在开发软件过程中有 各种不同的方法。对特定项目而言,没有那个模式是一定最好的 ,有4种最常用的模式,第二章 软件开发过程,一、大爆炸模式,人力和

12、资金巨大的能量释放产生了优秀的软件产品或者一堆废品。,简单 所有精力都花在开发软件和编写代码上,计划、进度安排和正规开发过程几乎没有,几乎没有什么测试,第二章 软件开发过程,二、边写边改模式,粗略的想法简单的设计漫长的来回编写、测试和修改缺陷的过程发布产品,在大爆炸模式基础上的一个进步,第二章 软件开发过程,三、瀑布模式,最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目进入下一步未准备好,就停滞下来,直到准备好,强调产品的定义,各步骤是分立的;没有交叉,无法回溯,第二章 软件开发过程,四、螺旋模式,总体思想是:一开始不必详细定义所有细节。

13、从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段。重复上述过程,直至得到最终产品,螺旋模式中包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。模式发现问题早,使成本低。,第一部分 软件测试综述,第三章 软件测试的实质 测试的原则 软件测试的术语和定义,第三章 软件测试的实质,1测试的原则,输入量太大 输出结果太多 软件执行路径太多 软件说明书是主观的。你可以说从旁观者来看是缺陷。,一、完全测试程序是不可能的,例: Microsoft windows计算器程序,第三章 软件测试的实质,关键是如何把数量巨

14、大的可能测试减少到可以控制的范围,以及如何针对风险作出明智的抉择,那些测试重要,那些不重要;,二、软件测试是有风险的行为,目标是找到最优的测试量,使测试不多不少,第三章 软件测试的实质,软件测试工作与防疫员的工作极为相似,可以报告已软件缺陷存在,却不能报告软件缺陷不存在,三、测试无法显示潜伏的软件缺陷,第三章 软件测试的实质,程序员也有心情不好的时候,四、找到的软件缺陷越多,就说明附近的软件缺陷更多,程序员往往犯同样的错误,某些软件缺陷其实冰山一角,第三章 软件测试的实质,1990年,Boris Beixer在其编著的软件测试技术(Software Testing Techniques)第2版

15、一书中描述了软件测试越多,其对测试的免疫力越强的现象,五、杀虫剂怪事,为了克服杀虫剂怪事,软件测试员必须不断编写不同的新的测试程序,第三章 软件测试的实质,没有足够的时间,六、并非所有软件缺陷都要修复,不算真正的软件缺陷,修复的风险太大,不值得修复,缺陷都修复的决策过程通常由软件测试员、项目经理和程序员共同参与,第三章 软件测试的实质,尚未发现或未观察到的软件缺陷只能说是潜在缺陷,七、什么时候才叫缺陷难以说清,第三章 软件测试的实质,软件行业变化太快,去年还很先进的产品今年就过时了,同时,软件变得更庞大、更复杂,功能越来越多,导致软件开发周期越来越长。这两种反作用力形成了矛盾,结果是产品说明书

16、经常变化。,八、产品说明书从没有最终版本,第三章 软件测试的实质,早点找出缺陷,九、软件测试员在产品小组中不受欢迎,控制情绪,不要总是报告坏消息,第三章 软件测试的实质,软件行业已经发展到强制使用专业软件测试员的程度了,生产低劣软件的代价太高,十、软件测试是一项讲究条理的技术专业,大多数软件都采用井然有序的方式开发,把软件测试员当作必不可少的核心小组成员,第三章 软件测试的实质,2 软件测试的术语和定义,软件测试要精度还是准确度很大程度上取决于产品是什么,最终取决于开发小组的目标,一、精确(precision)和准确 (accuracy),重要的是在术语定义上取得一致而不是在“正确性”上争论,第三章 软件测试的实质,确认是保证软件符合产品说明书的过程;验证是保证软件满足用户要求的过程。,二、确认(verification)和验证 (validation),确认(verification)和验证 (validation)的区别对软件测试很重要 ,通过对哈勃(Hubble)天文望远镜问题的分析就可以澄清这两者的区别,第三章 软件测试的实质,软件测试员的目标是找出软件缺陷,尽可能早一些,并确保缺陷得以修复。,二、测试和质量保证(QA),软件质量保证人员的主要职责是创建和执行: 改进软件开发过程并防止软件缺陷发生的标准和方法。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1