1.2 软件生命周期的各个阶段

当一个项目来临,我们该从何做起?做哪些事情?一个用户的口头要求怎么变成一个计算机软件呢?如何能做到让用户使用的计算机软件和用户需求是一样的呢?需要哪些过程呢?作为一名软件测试人员,不仅要有良好的软件测试理论知识、良好的测试技能,还要对软件的生命周期有所了解。

在介绍软件测试之前,我们先了解一下一个软件从“萌芽”变成“参天大树”的生命周期。主要包括:项目启动、项目策划、需求开发与管理、系统设计、编码阶段、测试阶段、部署上线、项目结项。

1.项目启动

项目启动是一个必要而且必需的过程,在此过程中,根据市场需求及项目评审团对项目可行性分析,经公司及项目领导的批准,确定实施该项目,从而确定项目的生命周期模型、生命周期、工作量、人力资源等信息,并告知项目相关人员项目启动信息。

这个阶段的任务是申请项目立项、审核项目立项、召开项目立项会议。

2.项目策划

项目策划是一个具有逻辑性、组织性的思维过程,此过程需要总结整个项目周期过程所有可能带来的影响、发生的风险,以对项目的整体过程起到指导、控制和跟踪的作用,并最终完成项目策划的目标。它以具体的项目活动为对象,体现出对象的所有属性,以及所有属性的关联性。

这个阶段的任务是制订项目策划方案、评审项目策划方案、修改项目策划方案。

3.需求开发与管理

通俗地讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标,以及实现这些目标所需要的条件。需求包括:技术性需求、非技术性需求、功能需求、非功能需求,它是一个程序或系统开发工作的说明,一般以文档为表现形式。

项目组应该管理需求变更(当出现变更时),并且识别在项目计划、工作产品和需求之间发生的不一致的项。作为需求管理的一个部分,需求变更及其理由应填入记录文档,并且在最初需求与产品和产品组件的所有需求之间维持双向可追溯性。

这个阶段的任务是编写用户需求说明书、评审用户需求说明、修改用户需求说明书;编写软件需求说明书、评审软件需求说明、修改软件需求说明书、填写需求跟踪矩阵。

4.系统设计

系统设计是系统的物理设计阶段。根据系统分析阶段所确定的系统逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。

这个阶段的任务是设计软件系统的模块层次结构、设计数据库的结构,以及设计模块的控制流程,其目的是明确软件系统“如何做”。这个阶段又分两个步骤:概要设计和详细设计。概要设计解决软件系统的模块划分和模块的层次结构,以及数据库设计;详细设计解决每个模块的控制流程、内部算法和数据结构的设计。这个阶段结束,要交付概要设计说明书和设计说明,也可以合并在一起,称为设计说明书。另外,还要评审概要设计和详细设计、修改概要设计和详细设计。

5.编码阶段

编码阶段是软件生命周期的重要阶段,是软件由思想变成实物的重要阶段。

根据需求及系统设计,软件开发工程师开始使用某种开发语言(如Java)设计、编写代码,通过对代码的设计、编写、调试,最后形成一个软件产品。

6.测试阶段

对软件单元、集成,以及最终系统进行全面的测试,确保最终软件系统满足用户需求,并且遵循测试的标准和规定。

这个阶段的任务是编写、评审、修改单元测试计划;编写、评审、修改单元测试用例;执行单元测试;编写、评审、修改单元测试报告;编写、评审、修改集成测试计划;编写、评审、修改基础测试用例;执行集成测试;编写、评审、修改集成测试报告;编写、评审、修改系统测试计划;编写、评审、修改系统测试用例;执行系统测试;编写、评审、修改系统测试报告。

7.部署上线

计算机软件通过测试阶段后,部署到用户环境,方便用户使用。

这个阶段的任务是给用户部署计算机软件的环境,并且为用户提供使用培训,接受用户的培训反馈,修改、完善计算机软件。

8.项目结项

结项管理是项目生命周期的最后一个过程,包括对项目有形资产和无形资产进行清算、对项目进行综合评估、总结经验教训等。组织过程资产积累。

这个阶段的任务是编写项目结项报告,召开项目结项会议,总结项目过程中的经验教训,并且预估项目的后续工作。

了解了软件生命周期的各个阶段后,我们来看看到底什么是软件测试。