您好,欢迎访问三七文档
软件测试概论部门:DQA姓名:吴丹阳日期:2017/11/23Newlight,Newlife目录123软件测试模型目录软件测试类型软件测试基本概念4软件测试流程01软件测试基本概念StrongPreparation合作QQ:243001978Newlight,Newlife软件测试流程软件测试的起源Newlight,Newlife软件测试基本概念软件测试的经典定义在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试概念广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。如:设计评审、系统测试狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价经典定义广义狭义Newlight,Newlife软件测试基本概念软件测试人员的任务就是提高软件质量,但并不等同于软件测试人员就是软件质量保证人员,因为测试只是质量保证工作中的一个环节。软件测试与软件质量区别质量保证(QA):通过预防、检查与改进来保证软件质量。所关注的是软件质量的检查与测量,主要着眼于软件开发活动中的过程、步骤和产物。软件测试:关注的不是过程的活动,而是对过程的产物及开发出的软件进行剖析。任务质量保证软件测试Newlight,Newlife软件测试基本概念软件测试的目的是为了发现尽可能多的缺陷是为了证明软件有缺陷,而不是证明软件中没有缺陷软件测试的目的以较少的用例/时间和人力找出软件中的各种错误和缺陷一个成功的测试是指揭示了迄今为止尚未发现的错误最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正目的2目的1目的3Newlight,Newlife软件测试基本概念所有的软件测试都应追溯到用户需求应该尽早地和不断地进行软件测试测试的规模由小而大,从单元测试到系统测试软件测试的原则完全测试是不可能的,测试需要终止测试无法显示软件潜在的缺陷充分注意测试中的群集现象(二八原则)程序员要避免检查自己的程序尽量避免测试的随意性原则2原则3原则1Newlight,Newlife软件测试基本概念Bug的定义综合来说是程序中存在一种破坏系统正常运行能力的问题、错误或瑕疵,导致系统软件产品在某种程度上不能满足用户的需求软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。定义修复成本Newlight,Newlife软件测试基本概念具有责任心、有担当、细心、认真测试人员素质具有探索精神和坚持不懈的精神具有创造性和追求完美的意识良好的沟通能力和风险预估能力素质2素质3素质102软件测试的类型StrongPreparation合作QQ:243001978Newlight,Newlife软件测试的类型黑盒测试静态测试动态测试黑盒测试按是否查看代码划分按是否查看代码划分按是否查看代码划分黑盒测试灰盒测试白盒测试黑盒测试按是否查看代码划分按是否运行程序划分按是否查看代码划分黑盒测试单元测试系统测试集成测试按阶段划分黑盒测试回归测试随机测试冒烟测试其它划分系统测试Newlight,Newlife软件测试的类型灰盒测试黑盒测试白盒测试通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例又称结构测试、逻辑驱动测试或基于程序代码的测试方法:语句覆盖法、判定(分支)覆盖法、条件覆盖法、分支-条件覆盖、路径覆盖结合白盒测试和黑盒测试的要素。考虑用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计介于白盒测试与黑盒测试之间的,灰盒测试关注输出对于输入的正确性,同时也关注内部表现由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率针对测试软件的功能需求进行测试。该测试不考虑软件的内部运作原理又称为功能测试、数据驱动测试或者基于规格说明书的测试方法:功能划分、等价类划分、边界值分析、决策表、错误推测等Newlight,Newlife软件测试的类型???动态测试静态测试静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估包括代码检查、程序结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行动态测试需要在开发/测试环境或实际运行环境中运行软件,并使用测试用例去查找软件缺陷包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等方式名称执行人员检查内容检查过程桌面检查程序员对源程序代码进行分析、检验,并补充相关文档,发现程序中的错误代码审查程序员和测试员组成的审查小组通过阅读、讨论和争议,以程序进行静态分析的过程第一步:小组成员提前阅读设计规格书、程序文本等相关文档第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题Newlight,Newlife软件测试的类型集成测试系统测试单元测试通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例又称结构测试、逻辑驱动测试或基于程序代码的测试方法:语句覆盖法、判定(分支)覆盖法、条件覆盖法、分支-条件覆盖、路径覆盖目的:一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。又称组装测试或联合测试,在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试方法:非增量式集成(自顶向下增量式)和增量式集成(自底向上增量式)目的:验证系统是否满足了需求规格的定义,找出与需求规格不符或矛盾的地方,从而提出更加完善的方案将已经确认的软件/硬件/外设等其他元素结合一起,进行各种组装测试和确认测试.验收测试分类:非正式的验收测试:А(alpha)开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。ß(beta)开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善正式的验收测试:有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。是一项确定产品是否能够满足合同或用户所规定需求的测试范围:功能、界面、性能、安全性、安装、卸载、易用性、兼容性等Newlight,Newlife软件测试的类型Newlight,Newlife软件测试的类型冒烟测试敏捷测试回归测试回归测试是指重复以前的全部或部分的测试用例,以关键性模组为核心新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了”新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试冒烟测试的对象:是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作BVT测试:BuildVerificationTest重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段强调从客户的角度,即是从使用系统的用户的角度,来测试系统特点:高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈Newlight,Newlife软件测试的类型软件测试类型按是否运行程序划分动态测试黑盒测试白盒测试静态测试功能测试性能测试其它划分回归测试冒烟测试敏捷测试单元测试集成测试系统测试验收测试按测试阶段划分非正式验收测试正式的验收测试按是否查看代码划分白盒测试灰盒测试单元测试集成测试静态测试动态测试黑盒测试功能测试性能测试问题:软件测试类型总结?软件测试的类型Newlight,Newlife单元测试最小模块如函数测试名称测试对象测试依据测试人员测试名称集成测试系统测试验收测试模块间的接口如参数传递整个系统如软硬件整个系统如软硬件《详细设计》《概要设计》《需求规格说明书》《需求规格说明书》+《验收标准》白盒测试工程师或开发人员黑盒测试工程师主要是用户,还可能有测试/开发人员白盒测试白盒测试和白盒测试相结合黑盒测试白盒测试工程师或开发人员黑盒测试03软件测试的模型StrongPreparation合作QQ:243001978Newlight,Newlife软件测试的模型模型的演变过程在20世纪70年代,瀑布模型一直是惟一被广泛采用的软件过程模型,现在它仍然是软件工程中应用得非常广泛的过程模型瀑布模型是一种线形的、顺序的软件开发模型瀑布模型W模型是在V模型的基础上发展起来的,增加开发阶段的同步测试,形成W模型,软件的错误具有传递性,在需求分析阶段产生的错误会传递到设计编码阶段强调测试计划等工作的先行和对系统需求和设计的测试,有利于尽早发现问题W模型现有的模型中最有代表性的是V模型,20世纪80年代后期由PaulRook提出。V模型反映了测试过程与分析、设计阶段之间的关系,认为测试的过程存在不同级别,并描述各个阶段之间的对应关系V模型H模型的软件测试过程强调测试活动完全是独立的,与开发等其他流程可以并发地进行,只要某个测试点准备就绪时,就可以进行一个阶段的测试活动,并且这样的过程在整个软件生命周期中随时可以开始H模型X模型是将程序抽离成程序片段进行测试,然后通过各种的交接活动,最终集成为可执行的程序目前X模型还是一种未成熟的模型,没有被文档化,但是在X模型中提出探索性测试等理论也是值得学习和借鉴的X模型原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面原型模型1988年,巴利·玻姆(BarryBoehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统螺旋模型Newlight,Newlife软件测试的模型瀑布模型特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。该阶段完成后生成需求说明书设计说明书源程序清单测试报告软件维护报告Newlight,Newlife软件测试的模型瀑布模型的优缺点为项目提供了按阶段划分的检查点。当前一阶段完成后,只需要去关注后续阶段。可在迭代模型中应用瀑布模型。它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。优点各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。通过过多的强制完成日期和里程碑来跟踪各个项目阶段。瀑布模型的突出缺点是不适应用户需求的变化。缺点Newlight,Newlife软件测试的模型V模型Newlight,Newlife软件测试的模型V模型的优缺点既有底层测试又有高层测试。底层:单元测试。高层:系统测试将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了优点测试是在开发之后完成的一个阶段,需求分析等前期产生的错误直到后期的验收测试才能发现由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大缺点Newlight,Newlife软件测试的模型W模型Newlight,Newlife软件测试的模型W模型的优缺点测试与开发同步进行,有利用尽早的发现问题双“V”结构模型,补充了软件需求分析阶段、设计阶段、代码实现阶段等各个阶段的测试工作优点仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代对有些项目,开发过程中根本没有文档产生,故W模型无法使用对于需求和设计的测试技术要求很高,实践起来很困难缺点Newlight,N
本文标题:软件测试概论
链接地址:https://www.777doc.com/doc-4799657 .html