同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。根据GB8566-88(《软件工程国家标准——计算机软件开发规范》),可以将软件生命周期概括为 6个阶段:可行性研究、需求分析、设计、实现、测试和维护。
1、可行性研究阶段
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2、需求分析阶段
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。
分析来源(原型图/软件需求说明书)、参与人员(主持–产品经理,其他参与、研发、设计、测试)、关注一个问题–测试参与这个需求分析的目的是什么?(知己知彼、方便提出疑问)
3、设计阶段
软件设计可以分为两个阶段概要设计和详细设计,实际上软件设计的主要任务就是把软件分解成模块是指实现某个功能的数据和程序的说明。
概要设计:概要设计确定整个软件的技术蓝图,负责将需求分析的结果转化为技术层面的设计方案。在概要设计中,需要确定系统架构、各子系统间的关系、接口规约、数据库模型、编码规范等内容。概要设计的结果将作为程序员的工作指南,供程序员了解系统的内部原理,并在其基础上进行详细设计和编码工作。
详细设计:详细设计完成编码前最后的设计,详细设计在概要设计的基础上,进行细化,如类设计。详细设计不是开发过程中必需的阶段,在一些规模较小、结构简单的系统中,详细设计往往被省略。同样,在某一次软件开发中,可能只会对部分关键模块进行详细设计。
4、实现阶段
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一段程序设计语言表示的“源程序清单”。充分了解软件开发语言,工具的特性和编程风格,有助于开发工具的选择 保证开发产品的开发质量。
5、测试阶段
在设计测试用例的基础上,测试软件的各个组成模块,然后,在把各个模块集成起来,测试整个产品的功能和性能是否能够满足已有的规格说明。测试阶段有集成测试和确认测试。
集成测试:集成测试又称为组装测试。通过单元测试的程序并不意味着没有缺陷,当程序单元被集成到一起进行交互的时候,往往会出现单元测试中不能发现的问题。同单元测试不同,集成测试必须经过精心的组织,指定集成测试计划,确定如何将这些程序单元集成到一起,按照什么样的顺序进行测试,使用哪些测试数据等问题。
确认测试:当完成集成测试后,软件之间的接口方面的错误已经排除,这时需要验证软件是否同需求一致,是否达到了预期目标。同集成测试一样,确认测试也需要进行计划和组织,逐步地验证软件系统同需要的一致性。经过确认测试的软件将投入正常使用,并进入维护期。
6、维护阶段
维护是指已经完成对软件的研制工作并交付使用后,对软件产品所进行的错误改正,适应环境变化和增强功能等软件工程修订,做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以扩展软件功能,提高性能,为用户带来明显的经济效益。