第1章 软件测试概述
1.1 软件、软件危机和软件工程
1.1.1 软件、软件危机和软件工程的基本概念
计算机系统分为硬件系统和软件系统两大部分。在过去的50多年里,随着微电子技术的发展和进步,计算机硬件技术以令人惊讶的速度发展,现在已经达到相当成熟的状态。
计算机软件是在计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。程序是指按特定的功能和性能要求而设计的能够执行的指令序列;数据是指程序能正常操纵、处理的信息及其数据结构;文档是指与程序设计开发、维护和使用有关的图文材料。
进入20世纪60年代,随着计算机技术的进步,软件功能日益复杂,人们对软件的需求急剧增加。软件开发从早期以个人活动为主的手工作方式,逐步转到以程序员小组为代表的集体开发方式。在这一转换达程中,国外的软件开发人员在开发一些大型软件系统时遇到了许多困难,有些系统最终彻底失败了;有些系统虽然完成了,但比原计划推迟了好几年,而且费用大大超过了预算;有些系统未能完全地满足用户的期望;有些系统则无法被修改和维护。例如,美国IBM公司的OS/360系统和美国空军某后勤系统都耗费了几千人·年的工作量,历尽艰辛,但结果却令人失望。在计算机软件的开发和维护过程中产生了一系列严重问题,软件生产与市场需求出现了严重对立——这就是软件危机。软件危机主要表现在以下几个方面。
展开