您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第1章:软件测试理论基础
2020/2/241第1章软件测试理论基础2020/2/242目录软件测试的由来软件测试的定义软件测试的目的软件测试的原则软件测试的对象软件测试的分类软件测试流程软件测试工作阶段2020/2/243软件测试的由来调试在已知错误的情况下,对软件程序代码做出的一系列检查,校正的过程。测试在未知错误的情况下,检查程序代码是否有问题的过程。区分:软件测试从软件质量保证的角度来检查程序代码是否有误,而调试是为了解决当前已知的错误,调试活动无法替代软件测试活动。2020/2/244软件测试的定义软件测试就是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。软件测试应该是对软件形成过程的文档,数据以及程序进行的测试,而不仅是对程序进行的测试。60%以上的软件错误并不是程序错误,而是分析和设计的错误,提倡软件全生命周期测试的理念。2020/2/245软件测试的目的基于不同的立场,存在着两种完全不同的测试目的:用户角度:希望软件测试暴露软件中隐藏的错误和缺陷,已考虑是否接受产品。软件开发者角度:希望测试成为表明软件产品中不存在错误的过程,验证被测软件已正确的实现了用户的需求,确立人们对软件质量的信心。2020/2/246软件测试的原则软件测试的原则:•所有的软件测试都应追溯到用户需求。•应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。•完全测试是不可能的,测试需要终止。•测试无法显示软件潜在的缺陷。也就是说测试只能证明软件存在错误而不能证明软件没有错误。2020/2/247软件测试的对象用户要求用户:我要什么?运行结果计算机:程序运行得到的结果需求说明书分析员:我可以提供什么?源程序程序员:我要让计算机怎么做设计说明书设计员:我要让软件做什么?相符吗?⑤理解正确性表达正确性理解正确性设计正确性表达正确性理解正确性编码正确性运行正确性输入正确性①②③④2020/2/248软件测试的分类一般的,我们将软件测试活动分为以下几类:从是否关心软件内部结构和具体实现的角度划分:①黑盒测试②白盒测试③灰盒测试从是否执行程序的角度划分:①静态测试②动态测试从是否使用自动化测试工具划分:①手动测试②自动测试2020/2/249软件测试分类—黑盒测试黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类别注重于测试软件的功能性需求。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终端用户使用该软件,检查软件产品是否达到了用户的需求。黑盒测试能更好的从用户角度来考察被测系统的功能性需求实现情况。测试用例测试结果2020/2/2410软件测试分类—白盒测试白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。白盒测试需要测试工程师深入考查程序代码的内部结构、逻辑设计等。对于白盒测试工程师来说,软件产品的内部结构是敞开的。程序内部结构测试用例测试结果2020/2/2411软件测试分类—灰盒测试灰盒测试介于白盒和黑盒测试之间。灰盒测试一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。通俗地讲,灰盒测试就是白加黑。测试用例测试结果2020/2/2412软件测试分类—静态测试静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。通俗地讲,静态测试就是用眼睛看,阅读程序代码,文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理,以及文档资料有错误的地方。在进行静态测试时可采用一些代码走查工具,如QAC++、C++Test等。2020/2/2413软件测试分类—动态测试实际的执行被测对象的程序代码,输入实现设计好的测试用例,检查程序代码运行得到的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预测结果是否一致。动态测试有四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。2020/2/2414软件测试分类—手动测试它是测试人员设计测试用例并执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。可充分发挥测试工程师的主观能动性,将其智力体现在测试工作中,能发现许多的缺陷,但同时又有一定的局限性和单调枯燥性。2020/2/2415软件测试分类—自动化测试定义利用测试工具,模拟用户业务使用流程,让他们自动运行来查找缺陷。优点快、广泛、可重复性工作缺点只可检查比较主要的问题,如崩溃、死机,无法发现一般的日常错误。编写脚本工作量也很大,有时会超过手动测试时间。我们要根据实际情况选择或者不选择测试工具,选择使用何种测试工具,不能为了实用工具而可以的去使用工具。2020/2/2416软件测试流程软件测试虽然是软件生命周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中。需求测试、单元测试、集成测试、系统测试、性能测试、用户测试、回归测试需求测试单元测试集成测试系统测试性能测试用户测试回归测试软件测试流程图2020/2/2417需求测试在许多失败的项目中,70%~85%的返工是由于需求方面的错误所导致的,因此我们必须在项目的源头(需求)就开始测试。对被测软件的需求规格说明书、概要设计文档、详细设计文档、数据库设计文档等文档资料进行查阅,重点检查需求规格说明书中是否存在描述不准确、需求定义模糊、需求用例不正确、语言存在二义性等等问题。2020/2/2418单元测试又称模块测试,就是对程序代码中最小的涉及模块单元进行测试。在单元测试中我们主要采用静态测试与动态测试相结合的办法。单元测试要求需要几年的代码编写经验,并且要十分熟悉当前的被测系统,以及该系统是否与其他系统的接口关联情况。单元测试在编码阶段占据非常重要的地位。可以降低编码的错误率,提高编码质量2020/2/2419集成测试又称组装测试,是将软件产品各个模块组装起来,检查接口是否存在问题,以及组装后的整体功能、性能表现。一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用以黑盒测试为主,白盒测试为辅的测试方法进行测试。主要解决各个组成但源代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。2020/2/2420系统测试将通过集成测试的软件部署到某种较为复杂的计算机用户环境进行测试。目的:通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。这个阶段主要进行的是安装卸载测试、兼容性测试、功能确认测试、安全测试等。采用黑盒测试法,主要考察被测软件的功能与性能表现。2020/2/2421性能测试性能测试要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。不要尝试用手动方式进行性能测试,应当编写一段相应的程序或者使用专门的工具进行,如利用LoadRunner自动化性能测试工具。性能测试相对难度较大,要求测试人员掌握编程语言,精通业务流程,拥有深厚的项目经验。2020/2/2422用户测试可称为用户确认测试。正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。用户测试环节是被测试软件首次作为正式的系统交友用户使用,用户会根据他们的实际使用情况进行测试、使用,并提出实际使用过程中的问题。用户测试是软件生产流程中的最后质检关。2020/2/2423回归测试回归测试是经过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。有些时候可采用自动化测试工具来进行回归测试,如利用QTP。一般情况下,都由测试工程师手动的执行以前的测试用例,来检查用例通过情况。2020/2/2424软件测试工作阶段一.计划与设计阶段二.实施测试阶段三.测试总结阶段立项会议需求评审测试工作启动测试设计阶段设计内容评审测试交接测试实施阶段回归测试同行审查测试总结报告测试验收测试归档工作总结2020/2/2425计划与设计阶段----立项会议由工程技术委员会召开立项会议,会议主要对项目的可行性进行分析,并且确定项目经理及项目测试组长。过程要点详细说明输入条件立项会议工作内容项目(产品)可行性分析。项目经理的确定.根据项目信息,测试经理确定测试组长。退出标准测试组长确定.责任人测试经理(确定测试组长)2020/2/2426计划与设计阶段----需求评审过程要点详细说明输入条件需求定义完成工作内容测试团队成员对需求中不清楚、不完整、太概括或存在疑义的地方提出问题,相关人员解答并确认。退出标准所有人员对需求无异议参与人员需求调研人员,工程技术委员会,开发组,测试部责任人工程技术委员会注:1.需求定义基本完成,此时应在评审会议召开之前发给测试团队,预留时间给测试相关人员熟悉、理解。2.测试部参与人员由测试部经理指定,主要由测试组长、测试设计等人员组成(还应包括配置管理人员、质量保证人员)。2020/2/2427计划与设计阶段----测试工作启动过程要点详细说明输入条件项目(产品)开发计划完成工作内容1.项目/产品经理邮件通知测试组长正式测试交接时间,测试规模预估等,同时提交相关最新项目资料:项目需求及软件规格定义文档项目开发计划开发设计过程中提供概要设计、详细设计文档。其他相关资料2.组建测试小组,确定小组成员。并指定测试设计工程师及测试实施工程师。3.召开测试启动会议,开发团队提供需求规格说明书和开发计划,确认开发组与测试组对需要交接的测试内容、测试目标达成一致,统一项目组的目标和测试的工作重点。退出标准测试小组成立,双方对测试目标及内容达成一致。责任人产品(项目)经理,测试组长在正式测试任务下达前,开发团队应在项目(产品)开发计划完成后及时向测试团队下达预通知,告之较为确切的测试日期,提供当前最新的相关资料。部门经理和测试组长组建测试小组,并视具体情况决定是否需要调整人力、时间安排、测试环境等其它资源。测试小组成员可预先熟悉必要的项目(产品)资料。2020/2/2428计划与设计阶段----测试设计阶段--设计测试计划过程要点详细说明输入条件项目需求文档建立,项目开发计划完成工作内容根据项目的需求文档、设计文档,按照测试计划文档模板编写测试计划。测试计划中应该至少包括以下关键内容:依据项目背景及要求,确定测试环境。测试需求——需要测试组测试的范围,估算出测试所花费的人力资源和各个测试需求的测试优先级测试策略——确定项目的测试计划内容,整体测试的测试方法和每个测试需求的测试方法,同时做好测试进度安排及人员调整。测试资源——本次测试所需要用到的人力、硬件、软件、技术的资源测试组角色——明确测试组内各个成员的角色和相关责任可交付工件——在测试组的工作中必须向项目组提交的产物,包括测试计划、测试报告等等风险管理——列举出测试工作所可能出现的风险测试计划编写完毕后,必须提交给项目组全体成员,并由项目组组中各个角色组联合评审。退出标准测试计划由项目组评审并通过.在项目开发过程中,要适时的对测试计划进行跟踪,以及评估此计划的完整性、可行性,在项目结束时还要最后评估一下测试计划的质量责任人测试设计工程师针对需求分析文档和项目开发计划文档测试完成后,测试组需要编写测试计划文档、制定测试测略及预估测试过程中的风险,并设计出合理的规避风险的策略,为后续的测试工作提供直接的指导。2020/2/2429计划与设计阶段----测试设计阶段--设计测试用例过程要点详细说明输入条件测试需求明确,测试计划明确工作内容根据测试计划设计测试用例,设计参考原则:等价类划分边界值分析错误推测等业务知识及相关流程退出标准测试用例需要覆盖所有的测试需求测试用例集需进行评审并通过项目进行过程中,适时的根据需求变更来对测试用例进行维护责任人测试组成员在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例
本文标题:第1章:软件测试理论基础
链接地址:https://www.777doc.com/doc-3974090 .html