资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件测试软件测试第第1讲讲 软件测试基础软件测试基础1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.机遇和挑战并存机遇和挑战并存2Test EngineerQA/SupervisorProject/Quality ManagerSenior Engineer软件行业是朝阳行业,软件测试是软件行业的朝阳行业。软件行业由卖方市场转入买方市场,激烈的竞争要求软件的产品质量越来越高。欧美国家的软件项目,软件测试的工作量占项目总工作量40%,软件测试的经费占项目总经费30%。测试人员和开发人员的比例 国外:1:1-2:1 ,国内1:51:3, 当前国内高素质软件测试人员的市场需求大约50万人左右。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.主要内容主要内容第1部分 软件测试概述(What)第2部分 软件测试基础(概念、原理、方法、步骤、工具)(How)第3部分 软件测试实践(Application)3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.网络资源网络资源http:/www.uml.org.cn/Test/ UML软件工程组织 (技术文章)http:/www.51testing.com/ 51Testing软件测试(注册下载需技术分)http:/www.cstc.org.cn/ 中国软件测评中心http:/www.cntester.com/index.html 中国测试员网站http:/www.softtest.cn/ 中国软件测试在线4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.教材教材参考书目:软件测试方法和技术(第2版),朱少民,清华大学出版社,2010软件测试大学教程,蔡建平,清华大学出版社,2009软件测试,Ron Patton著,张小松等译,机械工业出版社,20065Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第第1讲讲 软件测试基础软件测试基础为什么要进行软件测试?为什么要进行软件测试?什么是软件测试什么是软件测试 ?软件测试的分类软件测试的分类测试阶段测试阶段软件测试的工作范畴软件测试的工作范畴SQA与与软件件测试的关系的关系 6Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.7Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件缺陷与件缺陷与软件故障案例件故障案例迪斯尼并不总是带来笑声英特尔奔腾浮点除法缺陷火星探测飞船坠毁爱国者导弹防御系统2008北京奥运会售票系统8Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.迪斯尼并不总是带来笑声迪斯尼并不总是带来笑声1994年圣诞节前夕,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏“狮子王童话”圣诞节后的第一天,迪斯尼客户支持部电话开始响个不停,不断有人咨询、抱怨为什么游戏总是安装不成功,或没法正常使用这个游戏软件只能在少数系统中正常运行9兼容性问题Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.英特英特尔奔奔腾浮点除法缺陷浮点除法缺陷如果答案不为0,说明计算机使用的是带有浮点除法软件缺陷的老式英特尔奔腾处理器。1994年10月30日,弗吉尼亚州的Thomas R.Nicely博士在用奔腾PC进行计算问题时得出了一个错误的结论,因此发现了这个问题,后来在互联网上引起一场风暴。他们的软件测试工程师在芯片发布之前进行内部测试时已经发现了这个问题,英特尔的管理层认为这没有严重到保证要修正,甚至公开的程度。当软件缺陷被发现时,英特尔试图低调解决问题,但为时已晚,最终拿出4亿多美元来支付所有维护费用10(41958353145727)3145727- 4195835 = ?Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.火星探测飞船坠毁火星探测飞船坠毁机械震动在大多数情况下也会触发着地开关,设置错误的数据位。设想飞船开始着陆时,计算机极有可能关闭推进器,而火星登陆飞船下坠1800米之后没有反推进器的帮助,冲向地面,必然会撞成碎片两个小组本身的工作都没什么问题,就是没有合在一起测试,其接口没有被测,而问题就在这里11系统测试 衔接问题Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.爱国者导弹防御系统爱国者导弹防御系统当爱国者导弹防御系统的时钟累计运行超过14小时后,系统的跟踪系统就不准确。从而导致拦截伊拉克飞毛腿导弹的几次失败,其中一枚在沙特阿拉伯的多哈爆炸的飞毛腿导弹造成28名美国士兵死亡12系统时钟误差积累Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 2008北京奥运会售票系北京奥运会售票系统2007年10月30日上午11时, 2008北京奥运会售票系统软件瘫痪。北京奥运会的指定独家票务供应商-北京歌华特玛捷票务有限公司成立于2006年9月,由美国特玛捷公司、中体产业股份有限公司及北京歌华文化发展集团三家出资构建而成。售票系统瘫痪事件发生后,公众普遍质疑歌华特玛捷公司是否具备承担2008北京奥运会的票务销售能力。用户常常在软件开发初期就发现软件可能跟他们的需求有不一致的地方。在开发软件之前,需要进行必要的需求分析。开发完成之后,也要进行必要的测试工作。虽然这些软件故障的后果程度不一,但可以肯定的是,通过严格的软件测试可以极大地降低故障及因此而引发的种种恶果。13Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.14Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 为什么要进行软件测试?为什么要进行软件测试?软件总存在缺陷软件总存在缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。软件失败时,也许仅仅给我们带来了不便,也可能是灾难性的。我们需要软件件测试,来保障软件质量。15Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 什么是软件测试?什么是软件测试?软件测试学科的形成正反两方面的争辩软件测试的定义软件测试的其它观点16Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试学科的发展软件测试学科的发展从测试的思想导向来划分为4个阶段: 19571978年,以功能验证为导向,测试是证明软件是正确的(正向思维)。 19781983年,以破坏性为为导向,测试是为了找到软件中的错误(逆向思维)。 19831987年,以质量评估为导向,测试是提供产品的评估和质量度量。 1988年起,以缺陷预防为导向,测试是为了展示软件符合设计要求,发现缺陷、预防缺陷。17Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.更好的阶段划分更好的阶段划分分为3个阶段初期阶段、发展阶段和成熟阶段 初级阶段初级阶段(19571971)测试通常被认为是对产品进行事后检验 ,缺乏有效的测试方法发展阶段发展阶段(19721982),1972年第一次关于软件测试的正式会议,促进了软件测试的发展 成熟阶段成熟阶段(1983到现在),国际标准Std 829-1983 ,形成一门独立的学科和专业,成为软件工程学科中的一个重要组成部分 18Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试的正面性软件测试的正面性Bill Hetzel博士(正向思维的代表):博士(正向思维的代表): 软件测试就是为程序能够按预期设想那样运行而建立足够的信心。 “软件测试是一系列活动以评价一个程序或系统的特性或能力并确定是否达到预期的结果” 测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作19Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试的反面性软件测试的反面性 Glenford J. Myers (反(反向思维的代表):向思维的代表): 测试是为了证明程序有错,而不是证明程序无错误 一个好的测试用例是在于它能发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试 20Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试定义的两面性软件测试定义的两面性 21评价一个程序或系统的特性或能力并确定是否达到预期的结果测试是为发现错误而针对某个程序或系统的执行过程软软件件测测试试正向思维正向思维验证软件正常工作逆向思维逆向思维假定软件有错误在设计规定的环境下运行软件的所有功能,直至全部通过。寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件件测试是什么?是什么?测试=“测”+“试”什么是“测”?Measure、测量知道结果的验证行为测什么是“试”?Try、试验不知道结果的尝试行为试软件测试测:验证软件功能、性能试:验证软件是否有非功能性的异常在规定的条件下对程序进行操作,以发现程序错误,对其是否能满足设计要求进行评估的过程 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Myers软件测试的定义软件测试的定义软件测试是为了发现软件缺陷而执行程序或系统的过程。23Q: 我按照用户的需求测试了实际的系统,却一个缺陷也没有发现,我所做的测试工作有意义吗?1979年Glenford J. Myers在软件测试艺术(The art of software testing)书中给出的定义:传统意义上的测试定义,是狭义的。A: 当然有意义,因为我至少证明了该系统基本符 合用户的需求。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.IEEE软件测试的定义软件测试的定义1983年IEEE 的定义的定义 :使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否它是否满足足规定的定的需求需求或是弄清预期结果与实际结果之间的差别。24明确提出软件测试以检验是否满足需求为目标。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试的定义软件测试的定义软件测试软件测试也可以定义为是“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。 验证:是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性有效性确有效性确认:是确认所开发的软件是否满足用户真正需求的活动25验证:验证:“我们是否正确地完成了产品?我们是否正确地完成了产品?”确认:确认:“我们是否完成了正确的产品?我们是否完成了正确的产品?” -Boehm Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试的其它观点软件测试的其它观点软件测试被认为是对软件系统中潜在的各种风险进行评估的活动。基于风险基于风险的软件测试可以被看作是一个动态的监控过程,对软件开发全过程进行检测,随时发现问题、报告问题测试的经济观点经济观点就是以最小的代价获得最高的软件产品质量。经济观点也要求软件测试尽早开展工作,发现缺陷越早,返工的工作量就越小,所造成的损失就越小。26Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.问题讨论玩电脑游戏是不是软件测试?玩手机是不是软件测试?用户使用软件是不是软件测试?27Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 软件测试的分类软件测试的分类方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白盒测试白盒测试黑盒测试黑盒测试测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试的分类软件测试的分类按测试的对象或范围分类,如单元测试、文档测试、系统测试等按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等根据测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试按测试方法分类数据库测试、压力测试、恢复测试、安全测试、兼容性测试等注意:不要在术语上纠缠,因为不同的测试小组可能使用不同的术语。理解其含义及其在小组中的应用是软件测试人员的职责。 Ron Patton 软件测试Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 软件测试的各个阶段软件测试的各个阶段开发生命周期开发生命周期. 维护 需求定义应用定义应用开发 修订 建立 建立测试生命周期测试生命周期.执行. 执行执行.测试计划缺陷跟踪测试开发测试设计评估Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.n 好处:可以找到软件的好处:可以找到软件的Bug,提高软件可靠性!,提高软件可靠性!n 不好:这些不好:这些Bug可能让开发人员疯掉!可能项目延期!可能让开发人员疯掉!可能项目延期!软件件测试是是“不得不做不得不做”!Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.软件测试阶段软件测试阶段阶阶 段段输输 入入 输输 出出 需求分析需求分析需求定义需求定义, 市场分析文档市场分析文档, 相关技相关技术文档术文档市场需求分析会议记要市场需求分析会议记要 , 功能设计功能设计, 技术设计技术设计设计审查设计审查 市场需求文档市场需求文档, 技术设计文档技术设计文档 测试计划测试计划, 测试用例测试用例功能验证功能验证 代码完成文件包代码完成文件包,功能详细设计说功能详细设计说明书明书最终技术文档最终技术文档完整测试用例完整测试用例,完备的测试计划完备的测试计划, 缺陷报告缺陷报告,功能验证测试报告功能验证测试报告系统测试系统测试代码修改后的文件包代码修改后的文件包 完整测试用例完整测试用例,完备的测试计划完备的测试计划 缺陷报告缺陷报告缺陷状态报告缺陷状态报告项目阶段报告项目阶段报告确认测试确认测试代码冻结文件包代码冻结文件包确认测试用例确认测试用例缺陷状态报告缺陷状态报告缺陷报告审查缺陷报告审查版本审查版本审查版本发布版本发布 代码发布文件包代码发布文件包 测试计划检查清单测试计划检查清单当前版本已知问题的清单当前版本已知问题的清单版本发布报告版本发布报告Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.测试阶段测试阶段(SDLC)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.需求和设计审查需求和设计审查测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.单元测试单元测试单元测试单元测试的对象是程序系统中的最小单元-模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块单元测试一般由编程人员和测试人员共同完成,而以开发人员为主单元测试包括代码评审,代码评审可以发现程序50%70%代码的缺陷。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.集成测试集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方式。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.功能测试功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.系统测试系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.验收测试验收测试 &安装测试安装测试验收测试验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 软件测试的工作范畴软件测试的工作范畴软件测试工作的组织与管理软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。测试工作的实施测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.测试工作流程测试工作流程Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.SQA与与软件件测试的关系的关系 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4343Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号