软件测试技术完整教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、 软件测试不仅仅指测试的执行, 还包括很多其 他的活动。
2、软件测试是一个独立的流程, 贯穿产品的整个开 发周期, 与其它流程并发进行。
3、软件测试要尽早准备, 尽早执行。
4、软件测试根据被测物的不同是分层次的. 不同 层次的测试活动可以是按照某个次序先后进行的, 但也可能是反复的。
测试就绪点
人们对软件测试行业的错误认识; 掌握软件测试中的基本定义、基本知识; 理解软件开发与软件测试的关系。
1.1软件测试的发展历程及现状
1.1.1软件测试的发展历程
20世纪50-60年代,软件仍然处于次要位置,测 试ห้องสมุดไป่ตู้论和方法的发展比较缓慢。
70年代以后,软件技术的成熟和完善使得软件 测试的规模和复杂度加大,软件测试也逐渐形成 了一套完整的体系,逐渐走向规范化。
测试准备
测试执行
测试流程
其他流程
图1-4 H模型示意图
1.2.4与软件测试相关的术语
1.错误(Error) 程序员在编写代码时会出错,我们把这种错误称之 为bug。随着开发过程的进行,错误会不断的放大。 2.缺陷(Default) 缺陷是错误的结果,更精确的说是错误的表现。 3.失效(Failure) 在缺陷运行时,常常会发生失效的情况。一种是过 错缺陷对应的失效;一种是遗漏缺陷对应的失效。 4.测试(Test) 测试是一项采用测试用例执行软件的活动,在这 项活动中某个系统或组成的部分将在特定的条件下 运行,然后要观察并记录结果,以便对系统或组成 部分进行评价。
软件测试有两个基本职责:即验证和确认。
注意:区分软件测试和软件调试。
1.2.2软件测试生命周期
测试的生命周期(software testing life cycle) 分为几个阶段(如图1-1所示 )。
前三个阶段就是引入程序错误阶段; 后三个阶段就是清除程序错误的阶段。
错误 需求规格说明 错误
错误 错误
3)从软件质量保证的角度看:是一种重要的软 件质量保证活动,其动机是通过一些经济、高效的 方法,捕捉软件中的错误,从而达到保证软件内在 质量的目的。
测试过程中的活动包括“分析”软件(静态测 试)和“运行”软件(动态测试)。
也有人认为软件测试(software testing)就 是在软件投入运行前,对软件需求分析、设计规格 说明和编码的最终复审,是软件质量保证的关键步 骤。
设计
错误 错误
编码
错误 测试 (失效)
缺陷分类
缺陷分离
3
图1-1 测试生命周期
缺陷
修复
排除
错误
1.2.3软件开发与测试模型
下面我们将介绍几种典型的软件开发与测试模型。
一、软件开发与测试V模型
在传统开发过程中测试不受重视,仅把它作为在 需求分析、概要设计、详细设计及编码之后的一个 阶段。尤其在瀑布模型中。
三、按照软件测试的策略和过程分类,软件测 试可分为单元测试(Unit Testing)、集成测试 (Integration Testing)、确认测试(Validation Testing)、 系统测试(System Testing)和验收测试(Verification
1.1.2软件测试的现状
与一些发达国家相比,国内测试工作还存在一 定的差距。国内测试人员所占比例小,但是,在 软件测试实现方面都是相当的,而且向产业化方 向发展。
1.2 什么是软件测试
1.2.1软件测试的定义
根据侧重点的不同,主要有以下三种观点: 1)1983年IEEE将软件测试定义为:“使用人 工或自动手段运行或测定某个系统的过程,其目的 在于检验它是否满足规定的需求或是弄清预期结果 与实际结果之间的差别”,该定义明确地提出了软 件测试以检验是否满足需求为目标。 2)Myers认为:“是为了发现错误而执行程序 的过程”,明确提出了“寻找错误”是测试目的。
程序
图1-2 V模型示意图
V模型适用于所有类型的开发过程,但并不一 定适用于开发和测试过程的所有方面。
二、软件开发与测试W模型
由于各种原因,开发的每一个环节都可能产 生错误,如果坚持各个阶段的技术评审,就能够尽 早发现和预防错误。
图1-3为软件开发与测试的W 模型,形象地说 明了软件测试与开发的这种同步性。
需求分析 需求测试 概要设计 功能测试 详细设计 设计测试
验收
系统测试
确认
确认测试
集成
集成测试
编码
单元测试
图1-3 W模型示意图
应用该模型的优点在于,每个软件开发活动 结束后就可以执行相应的测试,如:在需求分析结 束后,就可以进行需求分析测试。
三、软件开发与测试H模型
与前两种模型相比,H模型充分地体现了测试 过程。如图1-4所示的H 模型揭示了:
如图1-2所示,在V模型中,描述了一些不同的测 试级别,并说明了这些级别所对应的生命周期中不 同的阶段,清楚地描述了这些测试阶段和开发过程 期间的对应关系。
用户
需 求 分 评审 析
需求获取 需求定义 需求分析
评审
需求分析书
概要设计 评审 概要设计书
详细设计
评审 详细设计书 编码
软件产品 可交付软件 评审 系统测试 已确认软件 评审 确认测试 已集成软件 评审 集成测试 已测试模块 评审 单元测试
5.测试用例(Test Case)
测试用例是为特定的目的而设计的一组测试输 入、执行条件和预期的结果。
6.回归测试(Regression testing)
回归测试的目的是为了测试由于修正缺陷而更 新的应用程序,以确保彻底修正了上一个版本的缺 陷,并且没有引入新的软件缺陷。
1.3软件测试技术分类
从不同的角度,可以把软件测试技术分成不同 种类,如:
第一章 概 述
[ 本章要点 ] 软件测试的发展历史;
软件测试技术的分类方法; 软件测试原则; 软件测试的定义; 软件测试同软件开发之间的关系; 软件测试与开发模型; 软件测试工作流程。
[ 本章目标 ]
了解软件测试的发展历程和行业现状; 掌握软件测试技术的分类; 理解软件测试的目的和软件测试原则,以及了解
一 、从是否需要执行被测软件的角度,可分为 静态测试和动态测试。
那些不利用计算运行被测程序,而是通过其他 手段达到测试目的的方法称作静态测试。下面我们 对这几种静态测试分别加以介绍:
①代码检查
②代码走查
③桌面检查
④同行评分
下面我们将要介绍的黑盒测试和白盒测试就属 于动态测试。
二、从软件测试用例设计方法的角度,可分为黑 盒测试(Black-Box Testing)和白盒测试 (White-Box Testing)。
相关文档
最新文档