《第1章:软件测试理论基础.pptx》由会员分享,可在线阅读,更多相关《第1章:软件测试理论基础.pptx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022/12/211第1章 软件测试理论基础2022/12/212目录n软件测试的由来n软件测试的定义n软件测试的目的n软件测试的原则n软件测试的对象n软件测试的分类n软件测试流程n软件测试工作阶段2022/12/213软件测试的由来n调试 在已知错误的情况下,对软件程序代码做出的一系列检查,校正的过程。n测试 在未知错误的情况下,检查程序代码是否有问题的过程。区分:软件测试从软件质量保证的角度来检查程序代码是否有误,而调试是为了解决当前已知的错误,调试活动无法替代软件测试活动。2022/12/214软件测试的定义n软件测试就是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。n
2、软件测试应该是对软件形成过程的文档,数据以及程序进行的测试,而不仅是对程序进行的测试。n60%以上的软件错误并不是程序错误,而是分析和设计的错误,提倡软件全生命周期测试的理念。2022/12/215软件测试的目的n 基于不同的立场,存在着两种完全不同的测试目的:用户角度:希望软件测试暴露软件中隐藏的错误和缺陷,已考虑是否接受产品。软件开发者角度:希望测试成为表明软件产品中不存在错误的过程,验证被测软件已正确的实现了用户的需求,确立人们对软件质量的信心。2022/12/216软件测试的原则n 软件测试的原则:所有的软件测试都应追溯到用户需求。应当把“尽早地和不断地进行软件测试”作为软件测试者的座
3、右铭。完全测试是不可能的,测试需要终止。测试无法显示软件潜在的缺陷。也就是说测试只能证明软件存在错误而不能证明软件没有错误。2022/12/217软件测试的对象用户要求用户:我要什么?运行结果计算机:程序运行得到的结果 需求说明书分析员:我可以提供什么?源程序程序员:我要让计算机怎么做 设计说明书设计员:我要让软件做什么?相符吗?理解正确性表达正确性理解正确性设计正确性表达正确性理解正确性编码正确性运行正确性输入正确性2022/12/218软件测试的分类一般的,我们将软件测试活动分为以下几类:n从是否关心软件内部结构和具体实现的角度划分:黑盒测试白盒测试灰盒测试n从是否执行程序的角度划分:静态
4、测试动态测试n从是否使用自动化测试工具划分:手动测试自动测试2022/12/219软件测试分类 黑盒测试n黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类别注重于测试软件的功能性需求。n测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终端用户使用该软件,检查软件产品是否达到了用户的需求。n黑盒测试能更好的从用户角度来考察被测系统的功能性需求实现情况。测试用例测试结果2022/12/2110软件测试分类 白盒测试n白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。n白盒测试需要测试工程师深入考查程序代码的内部结构、逻辑设计等。n对于白盒测试工程师
5、来说,软件产品的内部结构是敞开的。程序内部结构测试用例测试结果2022/12/2111软件测试分类 灰盒测试n灰盒测试介于白盒和黑盒测试之间。n灰盒测试一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。n通俗地讲,灰盒测试就是白加黑。测试用例测试结果2022/12/2112软件测试分类 静态测试n静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。n通俗地讲,静态测试就是用眼睛看,阅读程序代码,文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理,以及文档资料有错误的地方。n在进行静态测试时可采用一些代码走查工具,如QA C+、C
6、+Test等。2022/12/2113软件测试分类 动态测试n实际的执行被测对象的程序代码,输入实现设计好的测试用例,检查程序代码运行得到的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预测结果是否一致。n动态测试有四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。2022/12/2114软件测试分类 手动测试n它是测试人员设计测试用例并执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。n可充分发挥测试工程师的主观能动性,将其智力体现在测试工作中,能发现许多的缺陷,但同时又有一定的局限性和单调枯燥性。2022/1
7、2/2115软件测试分类 自动化测试n定义 利用测试工具,模拟用户业务使用流程,让他们自动运行来查找缺陷。n优点 快、广泛、可重复性工作n缺点 只可检查比较主要的问题,如崩溃、死机,无法发现一般的日常错误。编写脚本工作量也很大,有时会超过手动测试时间。我们要根据实际情况选择或者不选择测试工具,选择使用何种测试工具,不能为了实用工具而可以的去使用工具。2022/12/2116软件测试流程n软件测试虽然是软件生命周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中。n需求测试、单元测试、集成测试、系统测试、性能测试、用户测试、回归测试需求测试单元测试集成测试系统测试性能测试用户测
8、试回归测试 软件测试流程图2022/12/2117需求测试n在许多失败的项目中,70%85%的返工是由于需求方面的错误所导致的,因此我们必须在项目的源头(需求)就开始测试。n对被测软件的需求规格说明书、概要设计文档、详细设计文档、数据库设计文档等文档资料进行查阅,重点检查需求规格说明书中是否存在描述不准确、需求定义模糊、需求用例不正确、语言存在二义性等等问题。2022/12/2118单元测试n又称模块测试,就是对程序代码中最小的涉及模块单元进行测试。在单元测试中我们主要采用静态测试与动态测试相结合的办法。n单元测试要求需要几年的代码编写经验,并且要十分熟悉当前的被测系统,以及该系统是否与其他系
9、统的接口关联情况。n单元测试在编码阶段占据非常重要的地位。可以降低编码的错误率,提高编码质量2022/12/2119集成测试n又称组装测试,是将软件产品各个模块组装起来,检查接口是否存在问题,以及组装后的整体功能、性能表现。n一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用以黑盒测试为主,白盒测试为辅的测试方法进行测试。n主要解决各个组成但源代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。2022/12/2120系统测试n将通过集成测试的软件部署到某种较为复杂的计算机用户环境进行测试。
10、n目的:通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。n这个阶段主要进行的是安装卸载测试、兼容性测试、功能确认测试、安全测试等。n采用黑盒测试法,主要考察被测软件的功能与性能表现。2022/12/2121性能测试n性能测试要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。n不要尝试用手动方式进行性能测试,应当编写一段相应的程序或者使用专门的工具进行,如利用LoadRunner自动化性能测试工具。n性能测试相对难度较大,要求测试人员掌握编程语言,精通业务流程,拥有深厚的项目经验。2022/12/2122用户测试n可称为用户确认测试。n正式验收
11、前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。n用户测试环节是被测试软件首次作为正式的系统交友用户使用,用户会根据他们的实际使用情况进行测试、使用,并提出实际使用过程中的问题。n用户测试是软件生产流程中的最后质检关。2022/12/2123回归测试n回归测试是经过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。n有些时候可采用自动化测试工具来进行回归测试,如利用QTP。n一般情况下,都由测试工程师手动的执行以前的测试用例,来检查用例通过情况。2022/12/2124软件测试工作阶段1计划与设计阶段2实施测试阶
12、段3测试总结阶段立项会议需求评审测试工作启动测试设计阶段设计内容评审测试交接测试实施阶段回归测试同行审查测试总结报告测试验收测试归档工作总结2022/12/2125计划与设计阶段-立项会议 由工程技术委员会召开立项会议,会议主要对项目的可行性进行分析,并且确定项目经理及项目测试组长。过程要点详细说明输入条件立项会议工作内容项目(产品)可行性分析。项目经理的确定.根据项目信息,测试经理确定测试组长。退出标准测试组长确定责任人测试经理(确定测试组长)2022/12/2126计划与设计阶段-需求评审过程要点详细说明输入条件需求定义完成工作内容测试团队成员对需求中不清楚、不完整、太概括或存在疑义的地方
13、提出问题,相关人员解答并确认。退出标准所有人员对需求无异议参与人员需求调研人员,工程技术委员会,开发组,测试部责任人工程技术委员会注:1需求定义基本完成,此时应在评审会议召开之前发给测试团队,预留时间给测试相关人员熟悉、理解。2测试部参与人员由测试部经理指定,主要由测试组长、测试设计等人员组成(还应包括配置管理人员、质量保证人员)。2022/12/2127计划与设计阶段-测试工作启动 过程要点详细说明输入条件项目(产品)开发计划完成工作内容1项目/产品经理邮件通知测试组长正式测试交接时间,测试规模预估等,同时提交相关最新项目资料:项目需求及软件规格定义文档 项目开发计划 开发设计过程中提供概要
14、设计、详细设计文档。其他相关资料2组建测试小组,确定小组成员。并指定测试设计工程师及测试实施工程师。3召开测试启动会议,开发团队提供需求规格说明书和开发计划,确认开发组与测试组对需要交接的测试内容、测试目标达成一致,统一项目组的目标和测试的工作重点。退出标准测试小组成立,双方对测试目标及内容达成一致。责任人产品(项目)经理,测试组长 在正式测试任务下达前,开发团队应在项目(产品)开发计划完成后及时向测试团队下达预通知,告之较为确切的测试日期,提供当前最新的相关资料。部门经理和测试组长组建测试小组,并视具体情况决定是否需要调整人力、时间安排、测试环境等其它资源。测试小组成员可预先熟悉必要的项目(
15、产品)资料。2022/12/2128计划与设计阶段-测试设计阶段-设计测试计划过程要点详细说明输入条件项目需求文档建立,项目开发计划完成工作内容根据项目的需求文档、设计文档,按照测试计划文档模板编写测试计划。测试计划中应该至少包括以下关键内容:依据项目背景及要求,确定测试环境。测试需求需要测试组测试的范围,估算出测试所花费的人力资源和各个测试需求的测试优先级 测试策略确定项目的测试计划内容,整体测试的测试方法和每个测试需求的测试方法,同时做好测试进度安排及人员调整。测试资源本次测试所需要用到的人力、硬件、软件、技术的资源 测试组角色明确测试组内各个成员的角色和相关责任 可交付工件在测试组的工作
16、中必须向项目组提交的产物,包括测试计划、测试报告等等 风险管理列举出测试工作所可能出现的风险测试计划编写完毕后,必须提交给项目组全体成员,并由项目组组中各个角色组联合评审。退出标准 测试计划由项目组评审并通过.在项目开发过程中,要适时的对测试计划进行跟踪,以及评估此计划的完整性、可行性,在项目结束时还要最后评估一下测试计划的质量责任人测试设计工程师 针对需求分析文档和项目开发计划文档测试完成后,测试组需要编写测试计划文档、制定测试测略及预估测试过程中的风险,并设计出合理的规避风险的策略,为后续的测试工作提供直接的指导。2022/12/2129计划与设计阶段-测试设计阶段-设计测试用例过程要点详
17、细说明输入条件测试需求明确,测试计划明确工作内容根据测试计划设计测试用例,设计参考原则:等价类划分 边界值分析 错误推测等 业务知识及相关流程退出标准 测试用例需要覆盖所有的测试需求 测试用例集需进行评审并通过 项目进行过程中,适时的根据需求变更来对测试用例进行维护责任人测试组成员 在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例,在实际的测试中,测试用例将是唯一实施标准。2022/12/2130计划与设计阶段-设计内容评审过程要点详细说明输入条件测试计划、测试用例集完成工作内容评审测试计划内容的正确性及合理性:测试环境、测试资源;测试需求范围,各个测试需求的优先级;测试策
18、略及风险管理等;评审测试用例集:测试用例优先级 测试用例集基于需求的覆盖程度退出标准测试计划及测试用例集评审通过责任人同行测试组,项目经理,测试计划及测试用例的设计工作完成后,需通知项目组相关成员召开评审会议。在这之前需要将待评审的内容发给相关人员熟悉和理解。2022/12/2131实施测试阶段-测试交接过程要点详细说明输入条件测试设计内容评审完毕,开发团队编码工作完成,并已完成内部测试;工作内容1开发组根据测试启动会上所规定的内容,填写送测单,向测试组提交测试内容。2测试小组检查提交部件的完整性和可测性:检查接收的测试内容(按照测试启动会上所规定的交接内容);检查程序是否有病毒;能否正确安装
19、/卸载;检查送测的软件是否完整,能否进行测试;退出标准提交部件经测试组检验通过责任人产品(项目)经理,测试组长2022/12/2132实施测试阶段-实施测试-按计划进行测试过程要点详细描述输入条件测试组长于前一工作日定出当日的测试计划,确定可用的测试用例。工作内容 测试实施工程师根据测试计划中分配给自己的测试任务和提供的测试用例,实施相应的测试用例。记录实施用例的结果,提交当日测试纪录。提交缺陷。退出标准测试用例中的所有任务被执行,结果被记录。责任人测试组成员 实施测试用例将花费测试组大部分时间,这些工作都是建立在前期很多计划工作的基础上。2022/12/2133实施测试阶段-实施测试-提交阶
20、段性报告过程要点详细描述输入条件测试组完成了预定周期的测试任务工作内容测试组长根据此轮测试的结果,编写阶段性测试报告(参考测试阶段性报告模板),主要应包含以下内容:测试报告的版本 测试的人员和时间 测试所覆盖的缺陷测试组在这轮测试中所有处理的缺陷,报告测试组长处理的缺陷和实施工程师验证的缺陷。不仅要写出覆盖缺陷的总数,还要写明这些缺陷的去向 测试新发现的缺陷数量 上一版本活动缺陷的数量 经过此轮测试,所有活动缺陷的数量及其状态分类 测试评估写明在这一版本中,那些功能被实现了,那些还没有实现,这里只需写明和上一版本不同之处即可 急待解决的问题写明当前项目组中面临的最优先的问题,可以重复提出退出标
21、准在每轮测试结束之后应尽快将符合标准的测试报告发给全项目组责任人测试组长 在约定的测试周期完成之后,测试组长需要总结此次测试的结果,编写阶段性测试报告。2022/12/2134实施测试阶段-回归测试过程要点详细描述输入条件在每轮测试中,按照现有的测试用例没有新的缺陷被发现,测试报告中全部的活动缺陷都被解决。工作内容 测试组将按照测试计划中对于回归测试的策略对产品进行回归测试,回归测试的用例属于测试用例的一部分或者是全部测试用例,但不能超出原先预定的测试用例的范围。记录用例实施结果,提交回归测试记录。退出标准 回归测试所运行的用例全部通过 缺陷经过验证 所有缺陷都被指明处理方式责任人测试实施工程
22、师 在每轮测试结束之后,由测试组重新拷贝修改后的最新版本,进行回归测试。2022/12/2135实施测试阶段-同行审查过程要点详细描述输入条件回归测试结束,所有缺陷都被关闭。工作内容1进行对测试组所测试项目或产品的测试审查工作.基本原则:不依据所设计测试用例,进行自由测试.测试时间保持在3个正常工作日以内.如发现严重缺陷,则一轮测试结束后,更新版本,执行回归测试.2提交当日测试纪录.3编写同行审查总结报告(报告以简单为好).退出标准同行审查没有新的缺陷或没有严重缺陷产生.责任人同行测试组2022/12/2136测试总结阶段-测试总结报告过程要点详细描述输入条件测试组完成了所有的测试实施工作,同
23、行审查结束.工作内容测试组长根据测试的结果,按照测试总结报告的文档模板编写测试报告(参考测试总结报告模板),测试报告必须包含以下重要内容:测试资源概述多少人、多长时间 测试结果摘要分别描述各个测试需求的测试结果,产品实现了哪些功能点,哪些还没有实现 缺陷分析按照缺陷的属性分类进行分析 测试需求覆盖率原先列举的测试需求的测试覆盖率,可能一部分测试需求因为资源和优先级的因素没有进行测试,那么在这里要进行说明 测试评估从总体对项目质量进行评估 测试组建议从测试组的角度为项目组提出工作建议退出标准测试组长完成了符合标准的测试报告,发送给全项目组。责任人测试组长 在回归测试结束之后,测试组长将要编写测试
24、总结报告,对测试进行总结,并且提交给全体项目组,为产品的后续工作提供重要的信息支持。2022/12/2137测试总结阶段-测试验收过程要点详细描述输入条件测试组完成了所有的测试实施工作,测试组长完成符合标准的测试总结文档工作内容由测启会上约定的验收组成员,对本次测试收进行验收,验收内容包括:测试效果验收测试是否达到预期目的 测试文档验收测试过程文档是否齐全,可信,符合标准 测试评估从总体对测试的质量进行评估 测试建议对本次测试工作指出不足,需要在以后工作中改进的地方 宣布测试结束测试验收组成员签字宣布本次测试结束退出标准测试验收通过,测试验收会议记录整理完毕参与人员验收组人员,测试经理,测试组
25、长,产品(项目)经理 测试验收工作是在以上工作全部结束后,对测试的过程,效果进行验收,宣布测试结束。2022/12/2138测试总结阶段-测试工作总结过程要点详细描述输入条件测试验收通过工作内容归类、存档测试过程涉及到的文档,主要包括以下文档(必须):测试任务书 测试计划书 测试用例书 阶段性测试报告 测试总结报告 测试验收会议记录退出标准全部文档归类完毕,版本号封存责任人测试组长 测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档进行归类,存档。2022/12/2139测试总结阶段-测试总结报告过程要点详细描述输入条件项目验收工作完成。工作内容由质控部经理,测试组长召开项目测试工作总结会议,会议内容主要为:测试组长对项目期间的整个测试组的工作情况进行总结,指出测试工作中存在的问题,同时也对工作中表现好的地方给与肯定(具体包括整个测试情况、流程实施、人员安排、测试方法等)参与本次项目测试工作的所有成员个人体会和建议 讨论测试工作中出现的问题,寻求更好的解决办法 宣布解散测试小组退出标准所提问题寻求到较好解决方式,测试小组解散参与人员测试部所有成员 测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档进行归类,存档。2022/12/2140谢谢观看End
限制150内