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