软件开发与软件测试概述
软件开发是指从提出软件产品开始,直到该软件产品被淘汰的全过程。软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。
软件定义时期的关键任务是明确要解决的问题是什么?可行性研究阶段的关键任务是要明确:做不做用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案的可行性。需求分析阶段的关键任务是要明确:做什么?对目标系统提出完整、准确、清晰、具体的要求,并形成软件需求规格说明书(SRS)。
概要设计阶段的关键任务是要明确:怎么做?定义系统的总体结构及接口之间的关系,并完成系统的概要设计说明书及集成测试计划。详细设计阶段的关键任务是要明确:具体做法?设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。
编码和单元测试阶段的关键任务是编码和单元测试。编写出正确的、易理解的、易维护的程序模块;仔细测试编写出的每一个模块,并提交通过了单元测试的各功能模块及单元测试结果。
综合测试阶段的关键任务是通过各种类型的测试(及调试)使软件达到预定的要求。集成测试、系统测试、验收测试等都是软件测试的重要组成部分。软件维护阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的要求。
软件开发模型是指软件生命周期中不同阶段的活动如何组织和协调的一种方法。瀑布模型、快速原型模型、螺旋模型、迭代-增量模型等都是常见的软件开发模型。每种模型都有其特点和优缺点,选择合适的模型对软件开发的成功至关重要。
迭代-增量模型是一种常用的软件开发模型。它的特点是每次提交的都是一个满足用户需求子集的可运行的产品。使用迭代-增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
在迭代-增量模型中,测试是一个非常重要的组成部分。每个新的增量都需要进行不同级别的测试,以确保软件系统的质量和可靠性。因此,在软件开发过程中,测试活动和软件开发活动密切相关。