软件测试概述.重要课件

上传人:我*** 文档编号:144173946 上传时间:2020-09-06 格式:PPT 页数:89 大小:452KB
返回 下载 相关 举报
软件测试概述.重要课件_第1页
第1页 / 共89页
软件测试概述.重要课件_第2页
第2页 / 共89页
软件测试概述.重要课件_第3页
第3页 / 共89页
软件测试概述.重要课件_第4页
第4页 / 共89页
软件测试概述.重要课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《软件测试概述.重要课件》由会员分享,可在线阅读,更多相关《软件测试概述.重要课件(89页珍藏版)》请在金锄头文库上搜索。

1、软件测试概述,王珍英 2010年12月,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程 微软软件测试简介,课程概览,课程目标,掌握软件测试的基本概念 理解测试对于软件质量保障的重要性 了解软件测试的基本流程和过程 理解白盒测试、黑盒测试的含义和方法 理解测试的分类和内容,课程内容,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程 微软软件测试简介,软件测试基本概念,什么是软件测试 软件测试的目的 软件测试原则 软件测试的重点 软件测试质量 软件测试度量 软件的可测试性,什么是软件测试,广义的概念 指软件生存周期中所有的检查、评审和确认工作,其中

2、包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认 狭义概念 识别软件缺陷的过程,即实际结果与预期结果的不一致,什么是软件测试,软件测试通常包括验证(verification)和确认(validation): 验证指保证软件正确的实现了某一特定功能的一系列活动 确认指的是保证软件的实现满足了用户需求的一系列活动,软件测试的目的,测试的目的就是发现软件中的各种缺陷 测试只能证明软件存在缺陷,不能证明软件不存在缺陷 测试可以使软件中缺陷降低到一定程度,而不是彻底消灭 以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量,测试的目标,最终目的是确保软件的功能符

3、合用户的需求,把尽可能多的问题在发布或交付前发现并改正: 确保软件完成了它所承诺或公布的功能 确保软件满足性能的要求 确保软件是健壮的和适应用户环境的,测试的目标,为软件的质量评估提供依据 为软件质量改进和管理提供帮助,软件测试原则,Good-enough: 一种权衡投入/产出比的原则 保证测试的覆盖程度,但穷举测试是不可能的 所有的测试都应追溯到用户需求 越早测试越好,测试过程与开发过程应是相结合的 测试的规模由小而大,从单元测试到系统测试 为了尽可能地发现错误,应该由独立的第三方来测试 不能为了便于测试擅自修改程序 既应该测试软件该做什么也应该测试软件不该做什么,测试的规律,木桶原理: 软

4、件质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至 文化因素也会影响最终软件的质量 测试是提高软件质量的必要条件,最直接、最快捷的手段,但决不是一种根本手段,测试的规律,Bug的80-20原则 在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug 而系统测试又能找出其余Bug中的80% 最后的5%的Bug可能只 有在用户的大范围、长时间使用后才会曝露出来,软件测试的重点,测试用例的良好设计 测试用例的设计是整个软件测试工作的核心 测试用例反映对被测对象的质量要求,决定对测试对象的质量评估,软件测试的重点,测试工作的管理 尤其是对包含多个子系

5、统的大型软件系统,其测试工作涉及大量人力和物力,有效的测试工作管理是保证有效测试工作的必要前提,软件测试的重点,测试环境的建立 测试环境应该与实际测试环境一致,软件测试的质量,软件测试可以发现以下软件缺陷: 软件实现的功能不正确 “缺少”:软件没有实现某项功能 “多余”,软件实现的某项功能在需求中没有定义 发现第一类软件缺陷的过程 - “验证” 发现后两类软件缺陷的过程 - “确认”,软件测试的质量,软件测试本身的质量在于: 发现软件缺陷并能区分其类型 提供关于软件质量和开发过程质量的信息,软件测试度量,测试覆盖率 有多少需求、代码已经被测试了 缺陷发现率 缺陷是何时被发现,并且有多少缺陷已经

6、被发现。缺陷可以根据严重性来分类。需记录以下值: 缺陷数目 缺陷的严重性,软件测试度量,测试成功率: 有多少测试已经通过了,并且有多少是运行正常的?需记录以下值: 已通过的测试用例的数目 可利用的测试用例的数目,软件测试的分类,典型的软件测试类型 功能测试 可靠性测试 容错性测试 恢复测试 易用性测试,性能测试 可维护性测试 可移植性测试 安全性测试 用户文档测试,软件的可测试性,软件容易被测试的程度,包括下面几个指标: 可确认性:可以明确确认软件是否符合要求,例如有明确的要求和指标 可观察性:用于确认的结果可以进行有效的观察 可控制性:相对应的测试环境可以进行控制,从而保证测试的有效性 可分

7、解性:软件可以进行分解,对分解的结构进行测试,课程内容,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程 微软软件测试简介,软件测试技术,黑盒测试/白盒测试 动态测试/静态测试,黑盒测试和白盒测试,什么是黑盒测试 又称功能测试或数据驱动测试,是针对软件的功能需求/实现进行测试 通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构 穷举输入测试,黑盒测试和白盒测试,黑盒测试方法 功能划分 等价类划分 边界值分析 因果图 错误推测等,黑盒测试和白盒测试,什么是白盒测试 白盒测试也称结构测试或逻辑驱动测试 必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、

8、设计正常运行 通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例,黑盒测试和白盒测试,白盒测试的主要方法 对应于程序的一些主要结构:语句、分支、逻辑路径、变量;白盒测试的主要方法是: 语句覆盖方法 分支覆盖方法 逻辑覆盖方法,动态测试和静态测试,动态测试 动态测试需要在开发/测试环境或实际运行环境中运行软件,并使用测试用例去查找软件缺陷 动态测试包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等,动态测试和静态测试,静态测试 静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估 静态测试包括代码检查、程序结构分析、代码质量度量等。它可以由人工进行,也可以

9、借助软件工具自动进行,黑盒白盒测试与动态静态测试的关系,黑盒测试、白盒测试 测试用例设计阶段采用的方法 动态测试、静态测试 测试执行阶段采用的方法,课程内容,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程 微软软件测试简介,手工测试和自动测试,手工测试 自动测试 适合自动化的测试操作 手工测试和自动测试的比较,手工测试,传统的测试方法 由测试人员手工编写测试用例 缺点在于测试工作量大,重复多,回归测试难以实现,自动测试,利用软件测试工具自动实现全部或部分测试工作:管理、设计、执行和报告 自动测试节省大量的测试开销,并能够完成一些手工测试无法实现的测试,适合自动化的测试

10、操作,测试用例的生成(包括测试输入,标准输出,测试操作指令等) 测试的执行与控制(包括单机与网络多机分布运行;夜间及假日运行) 测试对象、范围、版本等的控制,适合自动化的测试操作,测试结果与预期输出的对比 不吻合的测试结果的分析、记录、分类、和通报 测试的统计,报表的产生,手工测试和自动测试的比较,手工完成测试的全部过程无法保证测试的科学性与严密性: 修改的缺陷越多,回归测试越困难 没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率 反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一 测试花费的时间越长,测试的严格性也就越低,手工测试和自动测试的比较,自动测试将测试人员从反复、

11、烦杂的测试执行中解放出来,用更多的时间进行测试设计和结果分析 软件测试不可能完全自动化 不能完成所有手工测试任务 无创造性且灵活性差,不能改进测试的有效性 过程中可能会遇到许多意想不到的问题,特别是当软件不稳定时 测试脚本的维护高,课程内容,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程 微软软件测试简介,测试流程,单元测试 集成测试 系统测试 用户验收测试 回归测试,V模型示意图,单元测试,完成对最小的软件设计单元模块的验证工作 目标是确保模块被正确地编码 使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误 通常情况下是面向白盒的 对代码风格和规则

12、、程序设计和结构、业务逻辑等进行静态测试,及早地发现和解决不易显现的错误,单元测试,单元测试的内容 接口测试 内部数据结构 全局数据结构 边界 语句覆盖 错误路径,单元测试,单元测试的工具 OpenSource: xUnit Junit - Java NUnit - C# DevPartner ,集成测试,通过测试发现与模块接口有关的问题 目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构 应当避免一次性的集成(除非软件规模很小),而采用增量集成,集成测试,集成测试主要内容 API API/参数组合 ,系统测试,根据软件需求规范的要求进行系统测试,确认系统满足需求的要求 系统测

13、试人员相当于用户代言人 在需求分析阶段要确定软件的可测性,保证有效完成系统测试工作,系统测试,系统测试主要内容 所有功能需求得到满足 所有性能需求得到满足 其他需求(例如安全性、容错性、兼容性等)得到满足,用户验收/确认测试,配置审查 确保已开发软件的所有文件资料均已编写齐全,并分类编目 Alpha测试 是由用户在开发者的场所来进行的,Alpha测试是在一个受控的环境中进行的,用户验收/确认测试,Beta测试 由软件的最终用户在一个或多个用户场所来进行的 开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者 开发者对系统进行最后的修改,并开始准备发布最终的软件,回归测试,当发现并修改缺陷

14、后,或者在软件中添加新功能后,重新测试,用来检查被发现的缺陷是否被改正,并且所作的修改没有引发新的问题 回归测试可以通过人工重新执行测试用例,也可以使用自动化的捕获回放工具来进行,回归测试,回归测试方式 再测试全部用例 选择基线测试用例库中的全部测试用例组成回归测试包,测试成本最高 基于风险选择测试 可以基于一定的风险标准来从基线测试用例库中选择回归测试包,各阶段测试所使用的方法技术,单元测试 白盒、自动、静态 集成测试 白盒、黑盒、自动、静态 系统测试 黑盒、自动、手工 用户验收/确认测试 黑盒、自动、手工,课程内容,软件测试基本概念 软件测试技术 软件测试方法 软件测试流程 软件测试过程

15、微软软件测试简介,软件测试过程,软件测试环境 测试的基本过程 测试的管理 测试的组织和运作,软件测试环境,软件测试设计环境 软件测试管理环境 软件测试实施环境,测试基本过程,一个规范化的软件测试过程包括以下基本的测试活动 拟定软件测试计划、方案 设计和生成测试用例、准备测试数据 执行测试,记录原始数据,对缺陷进行管理 生成软件测试报告、缺陷的统计和报表,测试基本过程,测试基本过程,软件测试过程与整个软件开发过程基本上是平行进行的 一个开发机构还应当制定软件测试规程,按照软件工程的规范,定义各项活动的目标和详细过程,测试基本过程示图,测试基本过程,测试计划 时间进度和人员安排、风险管理 测试范围

16、的确定、测试数据的生成 测试工具、方法的选择和工具开发 测试完成标准 影响资源分配的特殊考虑等,测试基本过程,测试方案 定义被测软件功能以及相关的测试,并详细说明的测试方法和策略 创建测试方案是开始测试设计的第一步。测试方案的定义应当基于需求分析和设计文档,并遵从测试计划文档,测试基本过程,测试用例 为实施一次测试而向被测系统提供的输入数据、操作或各种环境设置 控制着软件测试的执行步骤 是对测试方案中每个测试项的进一步实例化,测试基本过程,测试用例的几条基本准则 测试用例的代表性 测试结果的可判定性 测试结果的可再现性,测试基本过程,如何编写/生成测试用例 对于手动执行的测试用例 确定测试用例,描述执行步骤及预期结果 对于可自动执行的测试用例 采用工具录制回放脚本 性能测试工具 使用通用的脚本语言,测试基本过程,软件测试的执行 执行测试用例 记录原始测试数据 记录缺陷 对所发现的缺陷进行跟踪、管理和监控,测试基本过程,测试评估 结合量化的测试覆盖率及缺陷跟踪报告,对整个软件质量、测试工作和软件缺陷进行总结 对软件项目的质量和开发团队的工作进度及工作效率进行综合评价

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号