88软件测试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章软件测试技术软件测试的背景和意义软件测试的定义软件测试的目的项目组织架构第1次课软件测试技术基础软件测试的原则软件测试的分类基于瀑布模型的软件开发生命周期软件测试生命周期优秀软件测试人员的基本素质第1章软件测试技术第1次课软件测试技术基础迪斯尼的狮子王多媒体光盘,1994-1995美国航天局火星极地登陆飞船,1999爱国者导弹防御系统,19911.1软件测试的背景和意义软件测试的背景和意义软件测试的起源软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,那时软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。直到1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一直存在着“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,潜意识里对测试的目的就理解为“使自己确信产品能工作”。测试活动始终后于开发的活动,测试通常被做为软件生命周期中最后一项活动而进行。当时也缺乏有效的测试方法,主要依靠“错误推测ErrorGuessing”来寻找软件中的缺陷。因此,大量软件交付后,仍存在很多问题,软件产品的质量无法保证。软件测试起源到了20世纪70年代,这个阶段开发的软件仍然不复杂,但人们已开始思考软件开发流程的问题,尽管对“软件测试”的真正含义还缺乏共识,但这一词条已经频繁出现,一些软件测试的探索者们建议在软件生命周期的开始阶段就根据需求制订测试计划,这时也涌现出一批软件测试的宗师,BillHetzel博士就是其中的领导者。1972年,软件测试领域的先驱BillHetzel博士(代表论著《TheCompleteGuidetoSoftwareTesting》),在美国的北卡罗来纳大学组织了历史上第一次正式的关于软件测试的会议。在1973年,他首先给软件测试一个这样的定义:“就是建立一种信心,认为程序能够按预期的设想运行。Establishconfidencethataprogramdoeswhatitissupposedtodo.”后来在1983年他又将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。软件测试起源尽管如此,这一方法还是受到很多业界权威的质疑和挑战。代表人物是GlenfordJ.Myers(代表论著《TheArtofSoftwareTesting》)。他认为测试不应该着眼于验证软件是工作的,相反应该首先认定软件是有错误的,然后用逆向思维去发现尽可能多的错误。他还从人的心理学的角度论证,如果将“验证软件是工作的”作为测试的目的,非常不利于测试人员发现软件的错误。于是他于1979年提出了他对软件测试的定义:“测试是为发现错误而执行的一个程序或者系统的过程。Theprocessofexecutingaprogramorsystemwiththeintentoffindingerrors.”什么是软件测试.目前没有公认非常完整的定义.1979年G.J.Myers认为:1)程序测试是为了发现错误而执行程序的过程;2)好的测试用例是极可能发现迄今为止尚未发现错误3)成功的测试是发现了至今为止尚未发现的错误的测试软件测试的定义1990年IEEE提出的软件工程标准术语,软件测试定义如下:“就是在既定的状况条件下,运行一个系统或组件,观察记录结果,并对某些方面进行评价的过程。”CemKaner和JamesBach认为:测试是为了揭示被测产品质量相关信息而进行的技术研究活动.软件测试的定义软件测试的定义通常软件测试还有如下定义:测试是执行或者模拟一个系统或者程序的操作;测试是为了建立一个信心,即软件是按照它所要求的方式执行的,而不会执行它不被希望的操作;测试是带着问题和错误的意图来分析程序的;测试是度量程序的功能和质量;测试是评价程序和项目工作产品的属性和能力的,并且评估了其是否获得了期望和可接受的结果;测试除了包括执行代码的测试,还包括检视和结构化同行评审。.没有必要一定要背一个概念出来,搞清软件测试的含义即可.软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一.软件测试可以人工方式也可以借助工具.软件测试可以运行软件也可以不运行软件.软件测试的目的不仅仅是为了发现错误软件测试的定义1、基于证明的目的获取软件系统在可接受风险范围内可用的信心尝试在非正常情况和条件下的功能和特性是可接受的。保证一个软件系统是完整的并且可用或者可被集成的。软件测试的目的软件测试的目的2、基于检测的目的发现缺陷、错误和系统的不足;定义软件系统的能力和局限性;提供组件、工作产品和软件系统的质量信息。软件测试的目的3、基于预防的目的确定系统的规格中不一致和不清晰的地方;提供预防和减少可能制造错误的信息;在过程中尽早监测错误;确认问题的风险,并且提前确认解决这些问题和风险的途径项目的组织架构项目经理开发经理测试经理配置经理开发组测试组配置组SQA软件测试的原则1尽早地和不断地进行软件测试2不可能完全的进行测试3增量测试由小到大4避免测试自己的程序5设计周密的测试用例6Pareto原则应用于软件测试。7穷举测试是不可能的。8不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现.9所有的测试都应追溯到用户需求。10回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。1.6.1按照程序是否执行静态测试动态测试软件测试的分类软件测试的分类按照测试用例的设计方法白盒测试黑盒测试软件测试的分类按照测试阶段划分单元测试集成测试系统测试验收测试按照测试实施的组织划分开发方测试用户测试(β测试)第三方测试软件测试的分类按照是否使用工具手工测试自动化测试软件测试的分类基于瀑布模型软件开发生命周期优秀的软件测试人员的基本素质软件测试人员应具备下列基本素质。1.具有良好的计算机编程基础2.具有创新精神和超前意识3.不懈努力,追求完美4.具有整体观念,对细节敏感5.团队合作精神6、沟通能力软件测试行业的现状1、国内的现状对软件测试重要性的调查结果显示:68.2%的受访企业认为软件测试非常重要,必须设立专门的测试部门31.8%的企业选择了比较重要认为软件测试可有可无的比例为0测试人员所占的比例测试人员与开发人员所占的比例:36.4%的企业为:1:531.8%的企业为:1:231.7%的企业为:1:1测试行业的受欢迎的程度:87%的被调查者表示出对软件测试行业的青睐测试人员的能力:72.7%的应聘的测试人员缺乏实际经验和动手能力59.1%的测试人员并未掌握软件测试流程软件测试行业的现状2、测试人员的现状基础知识不够扎实专业技术不够精通没有建立相对完整的测试体系概念,忽视理论知识软件测试的前景HarryRobinson在2004年的时候就曾经对软件测试的未来趋势进行过预测,他认为测试领域在将来会有如下的一些变化需求工程师、开发人员会成为软件测试人员中的一份子,他们与测试人员之间开始互相帮助测试的方法日趋完善,Bug预防和早期检查将成为测试工具的主流;通过仿真工具来模拟真实环境进行测试测试用例的更新变得容易对测试质量的衡量开始从计算BUG数量、测试用例数量转到需求覆盖、代码覆盖等方面机器将代替测试人员做大部分工作,更少更精的测试人员开始把注意力集中在更严重的问题上测试人员将运行更多更好的测试代码测试执行与测试开发的界限开始模糊测试与开发的界限开始模糊顾客反馈与测试合为一体新的挑战,例如安全测试等新问题开始出现测试人员获得尊重,测试变得流行开发人员追求进度,项目开发到最后一刻才加入测试的行为仍然会存在迎接未来测试挑战的建议积极的不满于现状抛开人与人之间隔阂学习更多关于测试的知识学习更多关于开发的东西软件缺陷的五个规则1.软件未达到产品说明书中已经表明的功能。2.软件出现了产品说明书中指明不会出现的错误。3.软件未达到产品说明书中虽未指出但应达到的目标.。4.软件功能超出了产品说明书中指明的范围。5.软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。软件测试中的误区1、测试和调试一样2、测试组应当为保证质量负责3、过分依赖Beta测试4、把测试作为新员工的一个过渡工作5、关注与测试的执行而忽略测试的设计6、测试自动化是万能的7、测试是可以穷尽的8、测试是为了证明软件的正确性9、测试是枯燥乏味、缺乏创造力的工作第三章软件测试风险管理3.1测试风险的基本概念1、风险:指人们在生产建设和日常生活中遭遇能导致人身伤亡、财产受损及其他经济损失的自然灾害、意外事故和不可测事件的可能性。2、软件测试风险管理活动的目的:就是在于测试前对可能存在的缺陷或工作中导致测试无法有效执行的可能性进行分析,来合理安排测试资源活动。第三章软件测试风险管理3.1.1技术风险开发技术与开发平台开发人员学习新工具需求变更及描述不清晰使用第三方的代码系统的复杂度3.1.2管理风险项目测试计划的时间、资源分配、质量管理、测试管理流程、规范、工具的采用等等。第三章软件测试风险管理3.2测试风险识别技术识别出对测试项目会产生重大影响的测试风险。方法1、头脑风暴法(brainstorming)也称集体思考法,是以专家的创造性思维来索取未来信息的一种直观预测和识别方法。一般在一个专家小组内进行,通过专家会议,发挥专家的创造性思维来获取未来信息。头脑风暴法的目的在于增加小组提出的意见数量。通常有如下规则:不准批评或争论;从分发挥成员的想象力;征求到的意见越多越好;整理汇总意见。第三章软件测试风险管理2、访谈访谈对象:测试项目组内部和外部的资深专家。访谈内容:关于风险的面谈有助于找出那些在常规计划中没有被识别的风险。在访谈前,负责风险识别的人选择合适的访谈人员,事先向他们提供项目的有关背景知识,简要的项目情况介绍和其他必要的信息。访谈过程中,这些被访谈的人员利用他们资深背景及丰富经验,在这些信息的基础上可以挖掘出一些以前没有被发现的测试风险。第三章软件测试风险管理3、风险检查表是一种把相关经验进行传递的方法,操作起来快捷、有效。所谓风险检查表就是一个测试项目可能会遇到的风险列表。风险识别人员对照表的每一项进行判断,逐个进行检查。这个列表最初是由组织中最有经验的人员创建的,表的每一项都列出了可能的测试风险,他可能来源于过去曾经遇到过的风险或者所经历的危机,这些经验被转变成可以被以后项目所使用的知识风险检查表的优点:简单、快速、容易理解、结果稳定、缺点:他更多的继承过去,无法预防可能遇到的新的风险。第三章软件测试风险管理3.3测试风险分析风险分析的目标:确定测试对象、测试的优先级以及测试的深度。步骤包括:1、确定测试范围的功能点和性能属性;2、确定测试风险发生的可能性;3、确定测试风险发生后产生的影响程度;4、计算测试风险优先级;5、确定测试风险优先级。第三章软件测试风险管理3.3.1确定测试范围的功能点和性能属性1、收集相关的技术和管理文档2、应用头脑风暴、访谈和测试风险检查单等方法确定测试的功能点和性能属性清单。3、确定和罗列出所有的接口。第三章软件测试风险管理3.3.2确定测试风险发生的可能性第三章软件测试风险管理3.3.3确定测试风险发生后产生的影响程度第三章软件测试风险管理3.3.4计算测试风险优先级第三章软件测试风险管理3.3.5确定测试风险优先级第三章软件测试风险管理3.4测试计划风险的应对措施测试风险分析活动的最终目的:就是要详细了解和比较测试项目中所遇到的风险,判断哪些风险对测试项目会产生更大的影响。根据测试风险分析结果,安排测试计划。测试计划风险的应对措施:针对那些对计划好的测试工作造成消极影响的所有因素一旦发生,可以采取什么措施。第三章软件测试风险管理常见的计划风险包括:1、原有测试人员不可用,计划超

1 / 149
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功