软件测试 第二讲 软件测试策略与过程

上传人:woxinch****an2018 文档编号:45019125 上传时间:2018-06-14 格式:PPT 页数:39 大小:6.37MB
返回 下载 相关 举报
软件测试 第二讲 软件测试策略与过程_第1页
第1页 / 共39页
软件测试 第二讲 软件测试策略与过程_第2页
第2页 / 共39页
软件测试 第二讲 软件测试策略与过程_第3页
第3页 / 共39页
软件测试 第二讲 软件测试策略与过程_第4页
第4页 / 共39页
软件测试 第二讲 软件测试策略与过程_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《软件测试 第二讲 软件测试策略与过程》由会员分享,可在线阅读,更多相关《软件测试 第二讲 软件测试策略与过程(39页珍藏版)》请在金锄头文库上搜索。

1、软件测试第2讲 软件测试策略与过程1李钏 licleadall.cc软件测试策略与过程软件测试的策略与方法软件测试过程软件测试的分类软件测试的策略与方法软件测试的策略与方法方法目标/特性单元测试系统测试验收测试性能测试强壮性测试功能测试 白盒测试黑盒测试测试阶段或层次适用性测试可靠性测试集成测试安全性测试动态测试和静态测试静态测试不执行程序来寻找代码中存在的错误或评估代码的过程。 由人工来进行,发挥了人的逻辑思维的优势或测试经验。 能够批量性地发现问题,并直接定位到缺陷或错误的具体 位置。用静态测试来进行代码检查、静态结构分析。 动态测试必须生成测试数据来运行被测试程序,取得程序运行的 真实情

2、况、动态情况,进而进行分析测试质量依赖于测试 数据生成测试数据、分析测试结果的工作量大,使开展测试 工作费时、费力、费人动态测试和静态测试静态测试静态测试 不实际运行软件,主要是对软件的编程格式 、结构等方面进行评估静态测试 包括代码检查 、程序结构分析、代码质量度 量等。它可以由人工进行,也可以借助软件工具自动 进行 代码检查比动态测试更有效率,能快速找到缺陷,发 现30%70%的逻辑设计和编码缺陷黑盒测试和白盒测试什么是黑盒测试(Black-box Testing)功能测试,数据驱动测试:是在已知软件产品具有何种功 能的前提下,用来检验每个功能是否能够正常使用的一个 测试方法。测试的方法和

3、原理:把程序看成是一个不能打开的黑盒子 ,在不考虑程序内部结构的情况下,测试人员用操作接口 的方式进行测试,检查程序能否按照需求指定的功能接收 输入数据产生正确的结果。 黑盒测试主要在开发后期进行。基于对需求、设计、用 户要求的理解黑盒测试关注输入、输出的信息域,而不关注软件的内部结构黑盒测试是穷举输 入测试黑盒测试和白盒测试什么是白盒测试白盒测试也称结构测试或逻辑驱动测试必须知道软件内部工作过程,通过测试 来检测软 件内 部是否按照需求、设计正常运行通过逻辑 覆盖、路径覆盖等方式选择测试 用例,可以 用测试覆盖率评价测试用例白盒测试法是否可以用穷举逻辑 或路径法来测试?黑盒测试和白盒测试PI

4、NOUT白盒测试:黑盒测试:黑盒测试和白盒测试黑盒测试主要工作:检查实现 功能与实际需求 的满足程度;(确认和验证的过程) 白盒测试主要工作: -代码检查(语法、逻辑、书写) -静态结构分析(内部关系如系统结构、函数调用 关系等) -功能确认与接口分析(主要是确认过程) -逻辑覆盖率分析(内部的执行路径、提高软件的 可靠性) -性能与效率分析 -内存分析(内存泄露、内存越界等)手工测试测试 和自动测试动测试手工测试自动测试适合自动化的测试操作手工测试和自动测试 的比较手工测试测试 和自动测试动测试手工测试传统的测试方法由测试人员手工编写测试用例缺点在于测试工作量大,重复多,回归测试难 以 实现

5、手工测试测试 和自动测试动测试自动测试利用软件测试工具自动实现 全部或部分测试工 作:管理、设计、执行和报告自动测试节 省大量的测试开销,并能够完成一 些手工测试无法实现的测试自动化测试前必须首先手工测试(调试)缺点:无法及时进行动态调 整和数理分析,例如 :计算正确不代表逻辑性上没有错误;手工测试测试 和自动测试动测试适合自动化的测试 操作 测试用例的生成(包括测试输 入,标准输出,测试操作 指令等) 测试的执行与控制(包括单机与网络多机分布运行;夜 间及假日运行) 测试对 象、范围、版本等的控制 测试结 果与预期输出的对比 不吻合的测试结 果的分析、记录、分类、和通报 测试的统计,报表的产

6、生手工测试测试 和自动测试动测试 的比 较较手工完成测试的全部过程无法保证测试 的科学性 与严密性:修改的缺陷越多,回归测试 越困难没有人能向决策层提供精确的数据以度量当前的工作 进度及工作效率反复测试带 来的倦怠情绪及其他人为因素使得测试标 准前后不一测试花费的时间越长,测试的严格性也就越低难以对不可视对象或对象的不可视属性进行测试。手工测试测试 和自动测试动测试 的比 较较自动测试 将测试人员从反复、烦杂的测试执 行 中解放出来,用更多的时间进 行测试设计 和结 果分析 软件测试不可能完全自动化 不能完成所有手工测试任务 无创造性且灵活性差,不能改进测试 的有效性 过程中可能会遇到许多意想

7、不到的问题,特别是 当软件不稳定时 测试脚本的维护高软件测试的各个阶段开发生命周期.维护 需求定义应用定义应用开发修订建立 建立测试生命周期.执行. 执行执行.测试计划缺陷跟踪测试开发测试设计评估n 好处:可以找到软件的Bug,提高软件可靠性!n 不好:这些Bug可能让开发人员疯掉!可能项目延期!软件测试是“不得不做”!软件测试阶段阶 段输 入 输 出需求分析需求定义, 市场分析文档, 相关技术 文档市场需求分析会议记要 , 功能设计, 技术设计设计审查 市场需求文档, 技术设计文档 测试计划, 测试用例功能验证 代码完成文件包,功能详细设计说 明书 最终技术文档完整测试用例,完备的测试计划,

8、 缺 陷报告, 功能验证测试报告系统测试代码修改后的文件包 完整测试用例,完备的测试计划 缺陷报告 缺陷状态报告 项目阶段报告 确认测试代码冻结文件包 确认测试用例缺陷状态报告 缺陷报告审查 版本审查版本发布 代码发布文件包 测试计划检查清单当前版本已知问题的清单 版本发布报告测试阶段(SDLC)需求和设计审查测试人员参与产品需求分析和系统设计, 认真阅读有关文档,真正理解客户的需求 和技术上的设计,检查需求说明书对产品 描述的准确性、一致性等,检查系统设计 的合理性和可测试性等单元测试单元测试的对象是程序系统中的最小单元-模块或组件 上,在编码阶段进行,针对每个模块进行测试,主要通 过白盒测

9、试方法,从程序的内部结构出发设计测试用例 ,检查程序模块或组件的已实现的功能与定义的功能是 否一致、以及编码中是否存在错误。多个模块可以平行 地、对立地测试,通常要编写驱动模块和桩模块单元测试一般由编程人员和测试人员共同完成,而以开发人员为主单元测试包括代码评审,代码评审可以发现程序50%70%代码的缺陷。单元测试 单元测试又称为模块测试,什么是模块?并没有严格 的定义,不过按照一般的理解,模块应该具有以下的 一些基本属性:名字; 明确规定的功能;内部使用的数据,或称局部数据;与其它模块或外界的数据联系;实现其特定功能的算法;可被其上层模块调用,也可调用其下属模块进行协同工作。单元测试1. 单

10、单元测试测试 的任务务 模块接口测试对被测模块,检测数据能否正确无 误地进入和流出模块; 模块局部数据结构测试检测模块在工作过程中, 其内部数据能否保持其完整性,包括内部数据的内容、 形式以及相互之间关系; 模块边界条件测试检测在数据边界处,模块能否 正常工作; 覆盖测试检测模块运行能否满足特定的逻辑覆盖 ; 出错处理检测检测模块出错处理是否有效。单元测试2.单元测试过 程 单单元测试测试 一般在编码编码 之后进进行。 由于每个模块在整个软件中并不是孤立的,在对每个 模块进行单元测试时 ,需要考虑它和周围模块的相互 联系。为模拟这一联系,在进行单元测试时 ,必须设 置若干个辅助测试模块。这些辅

11、助模块分为两种: 驱动驱动 模块块(driver): 用以模拟被测模块的上级模块,相当于被测模块的主程序。 桩桩模块块(stub): 用以模拟被测模块的下级模块,相当于被测模块调用的子模块。 单元测试被测模块与其相关的驱动模块和桩模块共同构成 了一个“测试环 境”,如图所示。 集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方式。集成测试 一些模块单独能够工作,并不能保证连接起 来也能正常工作。 程序在某些局部反映不出的问题,在全局上 很可能暴露出来

12、,影响功能的发挥。可能的原因有:模块相互调用时引入了新的问题;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误等。集成测试集成测试非增式测试 增式测试 自顶向下测试自底向上测试独立地测试程序的每个模块,然后再把 它们组合成整个程序的集成测试方法。把下一个待测试的模块组合到已 经测试过的那些模块上去,再进 行测试。从主控模块开始,按 照软件的控制层次结 构,逐步把各个模块 集成在一起。 从最下层的模块开始,按照 程序的层次结构,逐渐形成 完整的整体。集成测试 在软软件集成阶阶段,测试测试 的复杂杂程度远远 远远的超过单过单 元测试测试 的复杂杂程度。 确认测

13、试 集成测试完成以后,分散开发的模块被 联接起来,构成一个完整的程序。其中各 模块之间接口存在的种种问题都已消除。 于是进入了确认测试阶段。 所谓确认测试,是对照软件需求规格说 明书,对软件产品进行评估以确定其是否 满足需求规格的过程。 确认测试经过确认测试,应该为已开发的软件做出结 论性的评价。这无非是两种情况之中:(1)经过检验,软件功能、性能及其它要求都已 满足需求规格说明书的规定,是一个合格的软件。(2)经过检验,发现与需求说明书有相当的偏离 ,我们得到一个缺陷清单,这就需要开发部门和顾 客进行协商,找出解决的办法。系统测试系统测试是将软件放在整个计算机环境下 ,包括软硬件平台、某些支

14、持软件、数据 和人员等,在实际运行环境下进行一系列 的测试,包括恢复测试、安全测试、强度 测试和性能测试等 系统测试系统测试实际上是针对系统中各个组成部分 进行的综合性检验,很接近我们的日常测试实 践。 系统测试的目标不是要找出软件故障,而 是要证明系统的性能。 系统测试很困难,需要很多的创造性。那 么,系统测试应该由谁来进行测试。我们说: 系统开发人员不能进行系统测试。 系统开发组织不能负责系统测试。 系统测试最好由独立的测试机构完成。 验收测试 验验收测试测试 是将最终产 品与最终用户的 当前需求进行比较的过程,是软件开发结 束后,软件产品向用户交付之前进行的最 后一次质量检验 活动,回答

15、开发的软件产 品是否符合预期的各项要求,用户是否接 受等问题 。验收测试 不只检验软 件某方面的质量 ,还要进行全面的质量检验 并决定软件是 否合格。因此验收测试 是一项严严格的正规规 的测试 活动,并且应该 在生产环产环 境中而不 是开发环 境中进行。各阶阶段所使用的方法技术术单元测试白盒、自动、静态 集成测试白盒、黑盒、自动、静态 系统测试黑盒、自动、手工 用户验收/确认测试黑盒、自动、手工软件测试分类软件测试的分类按测试的对象或范围分类,如单元测试、文档测试、系统测试等按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性 测试等根据测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试按测试方法分类数据库测试、压力测试、恢复测试、安全测试、兼容性测试等注意: 不要在术语上纠缠,因为不同的测试小组可能使用不同的术语。理 解其含义及其在小组中的应用是软件测试人员的职责。Ron Patton 软件测试3939

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

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