第一章 概 述 [ 本章要点 ] 软件测试的发展历史; 软件测试技术的分类方法; 软件测试原则; 软件测试的定义; 软件测试同软件开发之间的关系; 软件测试与开发模型; 软件测试工作流程。 [ 本章目标 ] 了解软件测试的发展历程和行业现状; 掌握软件测试技术的分类; 理解软件测试的目的和软件测试原则,以及了解 人们对软件测试行业的错误认识; 掌握软件测试中的基本定义、基本知识 ; 理解软件开发与软件测试的关系。 1.1 软件测试的发展历程及现状 1.1.1 软件测试的发展历程 20 世纪 50-60 年代,软件仍然处于次要位置 ,测试理论和方法的发展比较缓慢。 70 年代以后,软件技术的成熟和完善使得软件测试的规模和复杂度加大,软件测试也逐渐形成了一套完整的体系,逐渐走向规范化。 1.1.2 软件测试的现状 与一些发达国家相比,国内测试工作还存在一定的差距。国内测试人员所占比例小,但是,在软件测试实现方面都是相当的,而且向产业化方向发展。 1.2 什么是软件测试 1.2.1 软件测试的定义 根据侧重点的不同,主要有以下三种观点: 1 ) 1983 年 IEEE 将软件测试定义为:“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需求为目标。 2 ) Myers 认为:“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。 3 )从软件质量保证的角度看:是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。 测试过程中的活动包括“分析”软件(静态测试)和“运行”软件(动态测试)。 也有人认为软件测试( software testing )就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 软件测试有两个基本职责:即验证和确认。 注意:区分软件测试和软件调试。 1.2.2 软件测试生命周期 测试的生命周期( software testing life cycle )分为几个阶段(如图 1-1 所示 )。 前三个阶段就是引入程序错误阶段; 后三个阶段就是清除程序错误的阶段。 需求规格说明设计编码测试缺陷分类缺陷分离缺陷排除修复错误错误错误错误错误错误错误错误3(失效)图 1-1 测试生命周期 1.2.3 软件开发与测试模型 ...