软件测试概论ppt课件.pptx
我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件测试概论部门:DQA姓名:吴丹阳日期:2017/11/23我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life目录123 软件测试模型目录软件测试类型 软件测试基本概念4软件测试流程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物01软件测试基本概念S t r o n g P r e p a r a t i o n合作QQ: 243001978我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程软件测试的起源 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念软件测试的经典定义在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。广义上讲,测试是指软件产品生存周期内所有的检查 、 评审和确认活动 。如 :设计评审、 系统测试狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质量问题, 同时对产品质量进行客观的评价经典定义广义狭义我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念软件测试人员的任务就是提高软件质量,但并不等同于软件测试人员就是软件质量保证人员,因为测试只是质量保证工作中的一个环节。质量保证(QA):通过预防、检查与改进来保证软件质量。所关注的是软件质量的检查与测量,主要着眼于软件开发活动中的过程、步骤和产物。软件测试:关注的不是过程的活动,而是对过程的产物及开发出的软件进行剖析。任务质量保证软件测试我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念软件测试的目的是为了发现尽可能多的缺陷是为了证明软件有缺陷,而不是证明软件中没有缺陷以较少的用例/时间和人力找出软件中的各种错误和缺陷一个成功的测试是指揭示了迄今为止尚未发现的错误最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正目的2目的1目的3我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念所有的软件测试都应追溯到用户需求应该尽早地和不断地进行软件测试测试的规模由小而大,从单元测试到系统测试完全测试是不可能的,测试需要终止测试无法显示软件潜在的缺陷充分注意测试中的群集现象(二八原则)程序员要避免检查自己的程序尽量避免测试的随意性原则2原则3原则1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念综合来说是程序中存在一种破坏系统正常运行能力的问题、错误或瑕疵,导致系统软件产品在某种程度上不能满足用户的需求软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。定义修复成本我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试基本概念具有责任心、有担当、细心、认真具有探索精神和坚持不懈的精神具有创造性和追求完美的意识良好的沟通能力和风险预估能力素质2素质3素质1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物02软件测试的类型S t r o n g P r e p a r a t i o n合作QQ: 243001978我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型黑盒测试静态测试动态测试黑盒测试黑盒测试灰盒测试白盒测试黑盒测试黑盒测试单元测试系统测试集成测试黑盒测试回归测试随机测试冒烟测试系统测试我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型灰盒测试黑盒测试白盒测试通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例又称结构测试、逻辑驱动测试或基于程序代码的测试方法:语句覆盖法、判定(分支)覆盖法、条件覆盖法、分支-条件覆盖、路径覆盖 结合白盒测试和黑盒测试的要素。考虑用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计介于白盒测试与黑盒测试之间的,灰盒测试关注输出对于输入的正确性,同时也关注内部表现 由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率针对测试软件的功能需求进行测试。该测试不考虑软件的内部运作原理又称为功能测试、数据驱动测试或者基于规格说明书的测试方法:功能划分、等价类划分、边界值分析、决策表、错误推测等 按是否查看代码划分按是否查看代码划分我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型按是否运行程序划分按是否运行程序划分?动态测试静态测试静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估包括代码检查、程序结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行 动态测试需要在开发/测试环境或实际运行环境中运行软件,并使用测试用例去查找软件缺陷包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等 方式名称执行人员检查内容检查过程桌面检查程序员对源程序代码进行分析、检验,并补充相关文档,发现程序中的错误代码审查程序员和测试员组成的审查小组通过阅读、讨论和争议,以程序进行静态分析的过程第一步:小组成员提前阅读设计规格书、程序文 本等相关文档第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型按阶段划分按阶段划分集成测试系统测试单元测试通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例又称结构测试、逻辑驱动测试或基于程序代码的测试方法:语句覆盖法、判定(分支)覆盖法、条件覆盖法、分支-条件覆盖、路径覆盖 目的:一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。又称组装测试或联合测试,在单元测试的基础上,将所有模块按照设计要求(如根据结构图组装成为子系统或系统,进行集成测试方法:非增量式集成(自顶向下增量式)和增量式集成(自底向上增量式)目的:验证系统是否满足了需求规格的定义,找出与需求规格不符或矛盾的地方,从而提出更加完善的方案将已经确认的软件/硬件/外设等其他元素结合一起,进行各种组装测试和确认测试.验收测试分类:非正式的验收测试:(alpha) 开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。(beta) 开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善 正式的验收测试:有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。是一项确定产品是否能够满足合同或用户所规定需求的测试范围:功能、界面、性能、安全性、安装、卸载、易用性、兼容性等我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型按阶段划分按阶段划分系统测试过程系统测试过程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型冒烟测试敏捷测试回归测试回归测试是指重复以前的全部或部分的测试用例,以关键性模组为核心新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试冒烟测试的对象:是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作BVT测试:Build Verification Test重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段强调从客户的角度,即是从使用系统的用户的角度,来测试系统特点:高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈其它划分其它划分我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的类型动态测试黑盒测试白盒测试静态测试功能测试性能测试回归测试冒烟测试敏捷测试单元测试集成测试系统测试验收测试非正式验收测试正式的验收测试白盒测试灰盒测试单元测试集成测试静态测试动态测试黑盒测试功能测试性能测试问题:软件测试类型总结?我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件测试的类型New light, New life单 元 测 试最小模块如函数测试名称 测试对象测试依据测试人员测试名称 集 成 测 试系 统 测 试验 收 测 试模块间的接口如参数传递整个系统如软硬件整个系统如软硬件详细设计概要设计需求规格说明书需求规格说明书+验收标准白盒测试工程师或开发人员黑盒测试工程师主要是用户,还可能有测试/开发人员白盒测试白盒测试和白盒测试相结合黑盒测试白盒测试工程师或开发人员黑盒测试我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物03软件测试的模型S t r o n g P r e p a r a t i o n合作QQ: 243001978我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型模型的演变过程 u在20世纪70年代,瀑布模型一直是惟一被广泛采用的软件过程模型,现在它仍然是软件工程中应用得非常广泛的过程模型u瀑布模型是一种线形的、顺序的软件开发模型瀑布模型u 模型是在模型的基础上发展起来的,增加开发阶段的同步测试,形成W模型,软件的错误具有传递性,在需求分析阶段产生的错误会传递到设计编码阶段u强调测试计划等工作的先行和对系统需求和设计的测试,有利于尽早发现问题W模型u现有的模型中最有代表性的是模型,世纪年代后期由提出。模型反映了测试过程与分析、设计阶段之间的关系,认为测试的过程存在不同级别,并描述各个阶段之间的对应关系V模型uH 模型的软件测试过程强调测试活动完全是独立的,与开发等其他流程可以并发地进行,只要某个测试点准备就绪时,就可以进行一个阶段的测试活动,并且这样的过程在整个软件生命周期中随时可以开始H模型uX 模型是将程序抽离成程序片段进行测试,然后通过各种的交接活动,最终集成为可执行的程序u目前X 模型还是一种未成熟的模型,没有被文档化,但是在X 模型中提出探索性测试等理论也是值得学习和借鉴的X模型u原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面原型模型u1988年,巴利玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统螺旋模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型瀑布模型 特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。该阶段完成后生成需求说明书设计说明书源程序清单测试报告软件维护报告我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型瀑布模型的优缺点 u为项目提供了按阶段划分的检查点。u当前一阶段完成后,只需要去关注后续阶段。u可在迭代模型中应用瀑布模型。u它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 优点u各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。u由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。u通过过多的强制完成日期和里程碑来跟踪各个项目阶段。u瀑布模型的突出缺点是不适应用户需求的变化。缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型V模型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型V模型的优缺点 u既有底层测试又有高层测试。底层:单元测试。高层:系统测试u将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了优点u测试是在开发之后完成的一个阶段,需求分析等前期产生的错误直到后期的验收测试才能发现u由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难u实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型W模型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型W模型的优缺点 u测试与开发同步进行,有利用尽早的发现问题u双“V”结构模型,补充了软件需求分析阶段、设计阶段、代码实现阶段等各个阶段的测试工作优点u仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代u对有些项目,开发过程中根本没有文档产生,故W模型无法使用u对于需求和设计的测试技术要求很高,实践起来很困难缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型H模型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型H模型的优缺点 u体现了”尽早测试、不断测试“的原则u体现了测试流程的完整性u体现测试流程的独立性u充分体现了测试过程(而非技术)的复杂性,强调了过程管理的重要性优点u流程独立且完善缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型X模型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型X模型的优缺点 uX模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。优点u可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型原型模型快速成型模型 听取用 户意见建造/修改 原型用户测试运行原我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型原型模型的优缺点 u设计克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果u开发效率高,使总的开发费用降低,时间缩短u能够快速实现系统的初步模型,供开发人员和用户进行交流,以便较准确获得用户需求u原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程优点u产品原型模型在一定程度上限制了开发人员的创新,没有考虑软件的整体质量和长期的可维护性u快速简历起来的系统加上连续的修改可能会导致产品质量低下,甚至被废弃,因而不适用于嵌入式、实时控制及科学数值等大型软件系统的开发u原型模型对用户深层次的需求并不能深入分析缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型螺旋模型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试的模型螺旋模型的优缺点 u设计上的灵活性,可以在项目的各个阶段进行变更u以小的分段来构建大型系统,使成本计算变得简单容易u客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性u随着项目推进,客户始终掌握项目的最新信息从而是他能够和管理层有效地交互u便于风险控制盒需求变更优点u很难让用户确信这种演化方法的结果是可以控制的u建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求u仅适用于新近开发,需求不明确的情况下适用螺旋模型,便于风险控制和需求变更!缺点我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物04软 件 测 试 流 程S t r o n g P r e p a r a t i o n合作QQ: 243001978我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程计划与设计阶段 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程实施测试阶段 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程测试总结阶段 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物New light, New life软件测试流程软件测试全流程图 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物THANKS!APPOTRONICS CO.,LTD深圳市南山区茶光路1089号深圳市集成电路设计应用产业园4楼4F,SZICC, 1089 Chaguang Road, Nanshan District, Shenzhen, China深圳市光峰光电技术有限公司