软件测试技术完整教程

上传人:n**** 文档编号:50763878 上传时间:2018-08-10 格式:PPT 页数:234 大小:1.31MB
返回 下载 相关 举报
软件测试技术完整教程_第1页
第1页 / 共234页
软件测试技术完整教程_第2页
第2页 / 共234页
软件测试技术完整教程_第3页
第3页 / 共234页
软件测试技术完整教程_第4页
第4页 / 共234页
软件测试技术完整教程_第5页
第5页 / 共234页
点击查看更多>>
资源描述

《软件测试技术完整教程》由会员分享,可在线阅读,更多相关《软件测试技术完整教程(234页珍藏版)》请在金锄头文库上搜索。

1、第一章 概 述 本章要点 l 软件测试的发展历史; l 软件测试技术的分类方法; l 软件测试原则; l 软件测试的定义; l 软件测试同软件开发之间的关系; l 软件测试与开发模型; l 软件测试工作流程。 本章目标 u 了解软件测试的发展历程和行业现状; u 掌握软件测试技术的分类; u 理解软件测试的目的和软件测试原则,以及了 解 人们对软件测试行业的错误认识; u 掌握软件测试中的基本定义、基本知识; u 理解软件开发与软件测试的关系。 1.1软件测试的发展历程及现状1.1.1软件测试的发展历程20世纪50-60年代,软件仍然处于次要位置,测 试理论和方法的发展比较缓慢。70年代以后,

2、软件技术的成熟和完善使得软 件测试的规模和复杂度加大,软件测试也逐渐 形成了一套完整的体系,逐渐走向规范化。1.1.2软件测试的现状与一些发达国家相比,国内测试工作还存在 一定的差距。国内测试人员所占比例小,但是 ,在软件测试实现方面都是相当的,而且向产 业化方向发展。1.2 什么是软件测试1.2.1软件测试的定义根据侧重点的不同,主要有以下三种观点: 1)1983年IEEE将软件测试定义为:“使用人 工或自动手段运行或测定某个系统的过程,其目 的在于检验它是否满足规定的需求或是弄清预期 结果与实际结果之间的差别”,该定义明确地提 出了软件测试以检验是否满足需求为目标。2)Myers认为:“是

3、为了发现错误而执行程序 的过程”,明确提出了“寻找错误”是测试目的 。 3)从软件质量保证的角度看:是一种重要的软 件质量保证活动,其动机是通过一些经济、高效 的方法,捕捉软件中的错误,从而达到保证软件 内在质量的目的。测试过程中的活动包括“分析”软件(静态测试 )和“运行”软件(动态测试)。也有人认为软件测试(software testing)就 是在软件投入运行前,对软件需求分析、设计规 格说明和编码的最终复审,是软件质量保证的关 键步骤。软件测试有两个基本职责:即验证和确认。注意:区分软件测试和软件调试。 1.2.2软件测试生命周期测试的生命周期(software testing lif

4、e cycle )分为几个阶段(如图1-1所示 )。前三个阶段就是引入程序错误阶段;后三个阶段就是清除程序错误的阶段。图1-1 测试生命周期1.2.3软件开发与测试模型下面我们将介绍几种典型的软件开发与测试模型 。一、软件开发与测试V模型在传统开发过程中测试不受重视,仅把它作为 在需求分析、概要设计、详细设计及编码之后的 一个阶段。尤其在瀑布模型中。如图1-2所示,在V模型中,描述了一些不同的 测试级别,并说明了这些级别所对应的生命周期 中不同的阶段,清楚地描述了这些测试阶段和开 发过程期间的对应关系。 图1-2 V模型示意图 V模型适用于所有类型的开发过程,但并不 一定适用于开发和测试过程的

5、所有方面。 二、软件开发与测试W模型由于各种原因,开发的每一个环节都可能产 生错误,如果坚持各个阶段的技术评审,就能够 尽早发现和预防错误。图1-3为软件开发与测试的W 模型,形象地 说明了软件测试与开发的这种同步性。图1-3 W模型示意图 应用该模型的优点在于,每个软件开发活 动结束后就可以执行相应的测试,如:在需求分 析结束后,就可以进行需求分析测试。三、软件开发与测试H模型与前两种模型相比,H模型充分地体现了测 试过程。如图1-4所示的H 模型揭示了:1、 软件测试不仅仅指测试的执行, 还包括很多 其他的活动。2、软件测试是一个独立的流程, 贯穿产品的整个 开发周期, 与其它流程并发进行

6、。3、软件测试要尽早准备, 尽早执行。图1-4 H模型示意图4、软件测试根据被测物的不同是分层次的. 不 同层次的测试活动可以是按照某个次序先后进 行的, 但也可能是反复的。1.2.4与软件测试相关的术语1.错误(Error)程序员在编写代码时会出错,我们把这种错误称 之为bug。随着开发过程的进行,错误会不断的放 大。2.缺陷(Default)缺陷是错误的结果,更精确的说是错误的表现。3.失效(Failure)在缺陷运行时,常常会发生失效的情况。一种是 过错缺陷对应的失效;一种是遗漏缺陷对应的失效 。4.测试(Test)测试是一项采用测试用例执行软件的活动,在这 项活动中某个系统或组成的部分

7、将在特定的条件下 运行,然后要观察并记录结果,以便对系统或组成 部分进行评价。 5.测试用例(Test Case)测试用例是为特定的目的而设计的一组测试 输入、执行条件和预期的结果。6.回归测试(Regression testing)回归测试的目的是为了测试由于修正缺陷而 更新的应用程序,以确保彻底修正了上一个版本 的缺陷,并且没有引入新的软件缺陷。1.3软件测试技术分类从不同的角度,可以把软件测试技术分成不 同种类,如:一 、从是否需要执行被测软件的角度,可分 为静态测试和动态测试。 那些不利用计算运行被测程序,而是通过其 他手段达到测试目的的方法称作静态测试。下面 我们对这几种静态测试分别

8、加以介绍:代码检查代码走查桌面检查同行评分下面我们将要介绍的黑盒测试和白盒测试就 属于动态测试。二、从软件测试用例设计方法的角度,可分为 黑盒测试(Black-Box Testing)和白盒测试( White-Box Testing)。 三、按照软件测试的策略和过程分类,软件 测试可分为单元测试(Unit Testing)、集成测试 (Integration Testing)、确认测试(Validation Testing) 、系统测试(System Testing)和验收测试(Verification Testing)。1.4软件测试的目的测试真正的目的是使我们通过对软件错误的 原因和分布进

9、行归纳,来发现并排除当前软件产品 的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。 GMyers给出了关于测试的一些规则,我 们也可以把这些规则看作是测试的目标:1)软件测试是为了发现错误而执行程序的过程 。2)测试是为了证明程序有错,而不是证明程序 无错。3)一个好的测试用例在于他能发现至今未发现 的错误。4)一个成功的测试是发现了至今未发现的错误 的测试。这里要强调的一点是,软件测试不只是软件 测试人员的工作,也是软件开发人员和软件使 用者的工作。1.5软件测试的原则1.5.1尽早地和不断地进行软件测试IBM的研究结果表明,缺陷存在放大趋势。 图1-5表示了缺陷放大

10、模型大致状况。图1-5 缺陷放大模型由此可见,问题发现越早,解决问题的代价就越 小,这是软件开发过程中的黄金法则。1.5.2不可能完全的测试对一个程序进行完全测试就是意味着在测试 结束之后,再也不会发现其它的软件错误了。其 实,这是不可能的,主要原因有以下几点:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性1.5.3增量测试,由小到大 图1-7 测试资源关系图由小到大,指的是软件测试的粒度。无论是 传统的软件测试还是面向对象的软件测试都要遵 循这样的原则。如图1-7所示,多个单元组合过 渡到集成测试阶

11、段,集成测试阶段过渡到更高级 别的系统测试阶段,虚线是各个测试阶段的发布 基线。随着测试的逐步深入,范围的逐步扩大, 测试时间、可用资源也随之增大。1.5.4避免测试自己的程序避免程序员测试自己的代码的主要原因归纳 如下:1.程序员轻易不会承认自己写的程序有错误。2.程序员的测试思路有局限性,在做测试时很容 易受到编程思路的影响。3.多数程序员没有严格正规的职业训练,缺乏专 业测试人员的意识。4.程序员没有养成错误跟踪和回归测试的习惯.1.5.5设计周密的测试用例软件测试的本质就是针对要测试的内容确定 一组测试用例。测试用例至少应该包括如下几个基 本信息:1、在执行测试用例之前,应满足的前提条

12、件。2、输入(合理的、不合理的)。3、预期输出(包括后果和实际输出)。图1-8显示了一个典型的测试用例所应该具 有的基本信息。图1-8 典型的测试用例信息测试用例是测试工作的核心,应该尽量设计的 周密细致,这样才能更好的保证测试工作的质量 。 下面举例来说明这一点。以一个实现登录功能的小程序为例,它允许用 户选择城市和地区,输入自己的账号和密码。如图1-9所示,通过Alt-F4组合键和“Exit” 按钮来终止程序,Tab键在区域中间移动。 图1-9 登录窗口下面根据组成页面的具体元素,分别从几个方面做 了一些比较全面的测试用例:1. 下拉框和输入框测试用例表1-1 下拉框和输入框测试用例测试测

13、试 内容输输入操作预预期输输出实际结实际结 果下拉框未和后台数据库绑库绑 定 (显显示列表元素固 定)不允许许列表中 出现现NULL 现现象,固定 “请选择请选择 - ” 已和后台数据库绑库绑 定 (显显示列表元素活 动动)不允许许列表中 出现现NULL 现现象,固定 “请选择请选择 - ” 输输入框限定字符 型输输入12、6无#,*等错误错误 提示限定型数 字输输入测试测试 数据无12月、7*、0错误错误 提示2、功能测试 (表1-2 功能测试用例)用 例应产生行为结果失败原因1.基本功能测试1.1在输入框内输入资料 并且执行存储程序必须能够接受使用者的输入并且将 输入值存在登录文件内1.2

14、在输入框内不输入资 料但执行储存程序必须能够检查 使用者输入是否为 空白,同时必须能够告知使用者原 因 1.3检查 city字段储存结 果City字段输入 后存入cookies1.4检查 area字段储存结 果Area字段输入 后存入cookies储存结果1.5检查 ID 字段储存结果ID字段输入 后存入cookies2.使用接口功能测试2.1检查输 入字段的输入 值必须组织 使用者输入空白,同时部分字 段只能输入数字2.2检查 使用者接口的Tab Order所有的Tab Order必须按照正常顺序2.2检查 所有的Button所有的Button必须能够起作用2.3检查 所有的Hot Key所

15、有的Hot Key必须能够起作用3、各种错误数据的测试 表1-3 错误数据的测试用例测试内容输入操作预选测试数 据预期输出实际结果点击登录 按钮不完整的数 据City, area, ID, pswd略提示错误对话 框不正确的数 据City, area, ID, pswd略提示错误对话 框回车操作不完整的数 据City, area, ID, pswd略提示错误对话 框点击“退 出” 按钮无无无关闭当前应用 系统4、特殊测试表1-4 特殊测试用例测试内容输入操作预选测试数 据预期输出操作焦点逃 逸连续Tab切换,察看异常无焦点可准确回归 当前操作窗口分配内存不 足启动多个应用程序或模拟 多个程序运

16、行无是否可以正常运 行网络断线切断网络连接无是否可正常抛出 异常1.5.6注意错误集中的现象软件缺陷的“扎堆”现象的常见形式:1、对话框的某个控件功能不起作用,可能 其他控件的功能也不起作用。 2、某个文本框不能正确显示双字节字符, 则其他文本框也可能不支持双字节字符。3、联机帮助某段文字的翻译包含了很多错 误,与其相邻的上下段的文字可能也包含很多的 语言质量问题。 4、安装文件某个对话框的“上一步”或“ 下一步”按钮被截断,则这两个按钮在其他对话 框中也可能被截断。 1.5.7确认BUG的有效性 有时候测试人员提交的BUG并不是真正的BUG 。图1-10具体地描述了无效BUG的来源。一般由A 测试人员发现的BUG,一定要由另外一个B测试人 员来进行确认,如果发现严重的BUG可以召开评 审会进行讨论和分析。图1-10 无效BUG来源构成图1.5.

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

当前位置:首页 > 电子/通信 > 综合/其它

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