好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件测试教程第3版第2章资料.ppt

48页
  • 卖家[上传人]:f****u
  • 文档编号:112822116
  • 上传时间:2019-11-07
  • 文档格式:PPT
  • 文档大小:2.01MB
  • / 48 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Software Testing Courseware,2,版权所有 侵权追究,第 2 章 软件生命周期的测试,目 录 2.1 软件生命周期中的测试 2.2 软件测试技术分析 2.3 组件测试 2.4 集成测试 2.5 系统测试 2.6 确认测试 2.7 验收测试 2.8 软件新版本测试,软件测试教程(第3版) 第2章 软件生命周期的测试,2,第 2 章 软件生命周期的测试,内容提要 以V模型为参考阐述软件 生命周期中的测试 软件开发中的测试级别与 测试方法 单元/集成/系统/验收测 试各阶段的内容及要点 软件测试方法的基本理论 软件测试技术的工程运用,软件测试教程(第3版) 第2章 软件生命周期的测试,3,学习目标 深入认识软件开发遵循的生命周期V模型 认识软件生命周期中的测试流程及内容 明确单元测试的主要任务、方法和过程 明确集成测试的主要任务、方法和过程 明确系统测试的主要内容、方法和过程 明确验收测试的主要内容、方法和过程,2.1 软件生命周期中的测试,软件测试教程(第3版) 第2章 软件生命周期的测试,4,2.1.1 软件生命周期 V 模型在软件生命周期模型(IEEE/IEC12207)中定义 思想:软件开发和测试是相互对等的活动并同等重要 模型左侧代表开发过程右侧代表集成与测试过程不断组合单元形成更大系统 整个系统以验收作为集成与测试活动的结束 V模型表明测试的验证和确认思想 根据对应开发级别不同区分测试级别 V模型右边测试应为对应的测试执行级别而非完全顺序 测试准备(测试计划和控制、测试分析和设计)在初始阶段进入并与开发过程并行,2.1 软件生命周期中的测试,5,2.1.1 软件生命周期 1. 通用V模型定义的软件开发级别 (1)需求规格说明 定义开发系统的目的和需要实现的特性和功能,是从客户或将来的系统用户中 收集要求和需求,进行详细描述并最终得到批准。

      (2)系统功能设计 将需求映射到新系统的功能和框图上 (3)系统技术设计 设计系统的具体方式定义系统环境接口、分解系统为更小易理解的子系统, 对每个子系统进行独立开发 (4)组件规格说明 定义每个子系统任务、行为、内部结构以及与其他子系统的接口 (5)程序编制(编码) 通过编程实现所有已定义的组件(模块、单元、类),软件测试教程(第3版) 第2章 软件生命周期的测试,2.1 软件生命周期中的测试,6,2.1.1 软件生命周期 2.通用V模型定义的测试级别 随着软件系统的描述逐步详细,在某级构建中引入的错误,一般较易在本级中发现 对每个构建级别,V模型右边定义了相应测试级别 (1)组件测试 - 验证软件组件是否按照规格说明正确进行 (2)集成测试 - 检查多个组件是否按照系统技术设计描述方向协同工作 (3)系统测试 - 验证整个系统是否满足软件需求规格说明 (4)验收测试 - 从用户角度检查系统是否满足合同定义的需求 对每个测试级别都要检查开发活动的输出是否满足具体需求或特定相关需求 根据原始需求检查开发结构的过程称为确认(Validation) V模型还要求进行验证(Verification)测试但只针对开发过程的单个阶段 V模型定义测试级别的抽象过程 这些测试级别在技术上差别很大并有不同目标、使用不同方法和工具 对测试者的知识体系和能力要求不尽相同,软件测试教程(第3版) 第2章 软件生命周期的测试,软件测试教程(第3版) 第2章 软件生命周期的测试,7,2.1.2 软件生命周期中的测试策略 软件测试是一系列事先需计划、事中需管理的活动及过程。

      测试从程序模块层始,然后扩大延伸到整个计算机系统 不同的测试技术适用于不同的测试进程及时间点测试工作由开发或独立测试组织策划和管理测试策略指测试将按什么样思路和方式进行设计、制定,及实施 测试技术(方法)是指在测试具体实施过程中运用的具体技术 测试策略内容:确定测试组织、进行测试策划、执行测试过程(或部署)、实施测试管理等2.1.3 软件测试通用流程 软件测试的通用流程 软件测试的通用流程框架如图所示 目前软件业界针对测试的流程规划与实施过程大体一致 主要由测试策划、测试需求、测试用例设计、产品集成、 集成测试、确认测试(系统测试和发布测试)及验收测试等7部分组成 每阶段测试过程都将产生相应测试文档8,2.1 软件生命周期中的测试,软件测试教程(第3版) 第2章 软件生命周期的测试,2. 软件测试的阶段性进程 测试具阶段性,按测试先后次序,一般分为单元(或组件)测试、集成测试、确 认测试、系统测试和验收测试 在测试各阶段输入信息中还包括有关的配置信息 软件配置:包括不同阶段版本需求说明、设计说明和被测源程序等 测试配置:包括测试计划、测试步骤、测试用例及实施测试的测试脚本及工具,软件测试教程(第3版) 第2章 软件生命周期的测试,9,2.1 软件生命周期中的测试,2.2 软件测试技术分析,软件测试教程(第3版) 第2章 软件生命周期的测试,10,2.2.1 基于动态测试分析与静态测试分析,若按软件测试针对是否运行软件和执行程序而进行的测试,测试分为静态测试和动态测试两大类 两大类测试分别实现不同测试目标和达到不同测试目的,既有区分又有联系 针对一项测试工程,静态测试动态测试均不可或缺,软件测试教程(第3版) 第2章 软件生命周期的测试,11,2.2.2基于规格说明的测试技术,2.2 软件测试技术分析,若测试规划及用例设计基于软件各项功能(Specification-based),则测试目的就是检查软件各功能是否能按预期目标和期望实现。

      基于软件规格说明的测试主要有黑盒测试(Black-box Testing)从用户观点(依需求而定出发,以确认软件功能正确性和可操作性,可用于生命周期各阶段 基本思想:任何程序都可看作是从输入定义域映射到输出值域的函数过程,被测程序被视为黑盒,测试只知输入和输出间的关系或软件功能,只依靠能反映这一关系和功能需求规格的说明书来确定测试用例和推断测试结果的正确性黑盒测试不探究软件内部结构,因此也称功能测试、数据驱动的测试和基于规格说明的测试 常用技术: -等价类划分/边界值分析(Equivalence Partitioning/Boundary Value Analysis) -因果图/决策表测试(Decision table testing) -状态转换测试(status transform testing) -用例测试(Use case testing) -配对测试(Pairwise testing) - ……,,软件测试教程(第3版) 第2章 软件生命周期的测试,12,2.2.2基于规格说明的测试技术,2.2 软件测试技术分析,黑盒测试主要针对软件各种功能、界面、性能、外部系统条件和数据 的访问,及软件初始化等方面测试。

      (1)检查程序功能能否按需求规格说明书规定正常体现,测试程序功能是否遗漏、程序性能等特性要求是否得到满足 (2)检查人机交互是否存在错误,检测数据结构或外部数据访问是否异常,程序能否正确接收输入数据而产生正确输出结果,并保持外部信息完整 (3)检测程序初始化和终止运行方面的错误等 黑盒测试可喻为中医诊病过程,通过“望、闻、问、切”的方法来判 断程序是否存在“病症” 黑盒测试属有限“穷举”测试用例的测试方法,把所有可能输入都作 为测试情况分析检测,找出程序缺陷与错误但通常输入所有可能测试用例将会受时间、成本等客观条件限制,实际上无法实现完全穷举软件测试教程(第3版) 第2章 软件生命周期的测试,13,2.2 软件测试技术分析,2.2.3 基于结构的测试技术,基于结构(Structure-based)的测试,主要分析程序内部结构,测试依赖于对程序细节的严格检验,其实质是通过测试全面了解程序内部逻辑结构、对所有程序的逻辑路径检验,测试按程序内部结构进行,从检查程序逻辑着手,获得测试数据这个原理类似于我们体检时所做的各种器官透视,如 X光照射、B超、CT扫描等,检查身体内部各种器官是否正常。

      基于结构的测试主要有:控制流测试(Control Flow Testing)、基于路径测试(Basis Path Testing)、元素比较测试(Elementary Comparison Testing)均属白盒测试范围 白盒测试是对程序逻辑路径进行遍历性和响应性的测试,在程序内容的不同点去检验程序的状态,来判定其实际情况是否和预期状态相一致概括说,白盒测试焦点集中在如何根据其内部结构去设计测试用例,执行测试,分析结果软件测试教程(第3版) 第2章 软件生命周期的测试,14,2.2 软件测试技术分析,2.2.3 基于结构的测试技术,白盒测试要求对程序结构特性做到一定程度覆盖,或说测试“基于覆盖率的测试”可严格定义测试确切内容,明确要达到的测试覆盖率,以减少测试过度和盲目,有效找出可能已被忽视的程序错误 通常程序结构覆盖有5种: 语句覆盖:最常见且最弱的逻辑覆盖准则,通过测试用例使被测程序每个语句都至少被执行一次 判断覆盖:判定覆盖或分支覆盖要求设计若干测试用例使被测程序每个判定的真、假分支都至少被执行一次 条件覆盖:当判定含有多条件时,要求设计若干个测试用例使被测程序每个条件的真、假分支都至少被执行一次。

      在对程序路径进行全面检验时可使用条件覆盖 判断/条件覆盖:根据判定覆盖与条件覆盖的混合原则设计测试用例进行覆盖 路径覆盖:对程序所有路径各种覆盖虽结构测试提供评价测试的逻辑覆盖准则,但结构测试是不完全的如程序结构本身存在问题,程序逻辑错误或遗漏了规格说明书中已规定的功能,那么无论哪种结构测试,即使其覆盖率达到百分之百,也检查不出问题因此提高结构测试覆盖率,可增强对被测软件可信度15,2.2 软件测试技术分析,2.2.4 基于经验的测试技术,1.探索性测试 基于经验(Experience-based)的测试方法在缺少有关技术文档而使测试用例设计不能应用前述方法进行时所运用的测试技术较多探索性测试 探索性测试是一种测试思维技术体现,其本身没有确定测试方法、技术与测试工具探索性测试强调人的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,在遇实际测试问题时及时调整和改变策略,提出新方向 强调测试过程发散性思维(非盲目发散),由测试经验者进行并坚持缺陷聚集原则,实施对软件连续地“提问” 探索性测试核心思想:测试设计与测试执行同时实施,软件测试教程(第3版) 第2章 软件生命周期的测试,软件测试教程(第3版) 第2章 软件测试概述,16,探索性测试的提问范围包括软件产品、测试、问题3个方面 产品 (1)该软件是做什么的? (2)能控制和观测到软件的哪些方面? (3)应该测试什么? 测试 (1)应该采用不一样的测试策略吗? (2)怎样提高对产品好坏的理解程度? (3)如果系统存在严重问题,应该如何发现它? (4)应该加载什么文档?按哪个按钮?输入什么值? (5)这次的测试是否有效? (6)从测试中学到什么东西可以应用到下一次测试? (7)刚才发生了什么问题?如何更好地检查它? 问题 (1)这个缺陷问题违背了什么软件质量标准? (2)在这个产品中可以发现什么类型的软件错误? (3)现在看到的是一个问题吗?如果是,为什么? (4)这个问题的严重程度如何?为什么需要修正?,2.2 软件测试技术分析,2.2.4 基于经验的测试技术,17,2.探索性测试的过程管理与度量 探索性测试不是严谨测试方法,缺乏严格的可管理性和度量性,但提出基于任务的测试管理方法。

      探索性测试管理也叫“基于Session的测试管理”,这种管理把测试过程划分成多个Session,或称“探索任务”,每个Session都是由目的驱动的,都由一测试者负责执行在一个Session结束后,提交Session报告,附上关于测试过程重要信息 探索性测试需测试领导者领测者须亲自参加测试并指。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.