软件测试的生命周期&测试流程

一、软件的生命周期
二、开发模型
三、测试模型
四、测试流程
五、缺陷管理流程
六、软件和质量


一、软件的生命周期(基于瀑布模型的生命周期)

软件的生命周期:是指从产生到淘汰的过程
包括:计划(开发方与需求方讨论)、需求分析、设计、编码、测试(单元测试、集成测试、系统测试、验收测试)、运行维护、淘汰升级等

1、可行性研究及计划

开发方和需求方共同讨论,确定软件的开发目的及可行性,并制定实施计划

通过确定软件开发目的,给出软件的功能、性能、可靠性、接口等方面的设想
研究完成这个项目的可行性,问题的解决方案,对资源、成本的估计,制定实施计划

2、需求分析

由需求分析人员和用户共同讨论
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析
弄清用户对软件系统的全部需求,明确哪些需求可以满足,哪些不可以,并给出确切描述
产出《需求规格说明书》

注:唯一不变的是变化本身,同样需求在整个软件开发过程中会不断变化,所以,要制定需求变更计划来应对这种变化
来保证项目的顺利进行

3、软件设计

此阶段是核心,由架构师完成
根据需求分析的结果,对整个软件系统进行设计,如:系统框架设计、数据库设计等
软件设计:分为概要设计(HLD)和详细设计(LLD)
产出《设计说明书》
  • 概要设计(HLD)-----集成测试(接口)
  • 详细设计(LLD)-----单元测试(代码)

4、编码

按照软件设计的结果,程序员开始编写代码

5、软件测试

软件编写完成后,要经过严密的测试,以发现问题并加以纠正
整个测试过程分为:单元测试、集成测试、系统测试、验收测试
测试方法主要有:黑盒测试、白盒测试

在测试过程中,要建立详细的测试计划并严格按照测试计划进行,减少测试的随意性
  • 单元测试:对代码的测试,一般由开发完成
  • 集成测试:对接口的测试,在单元测试之后进行,由开发完成
  • 系统测试:比对需求规格说明书,根据测试用例进行完整的测试,如各功能是否满足需求,系统运行是否存在漏洞
  • 验收测试:用户对软件进行验收,客户拿到软件后,会根据用户需求来进行判定软件是否达到需求

单元测试、集成测试、系统测试之间,好比:砖、墙、楼

6、运行维护

是软件生命周期中,持续时间最长的阶段
软件投入使用后,由于多方面原因,软件不能继续适应用户的要求或要延续软件的使用寿命,就要对软件进行维护
软件的维护:包括纠错性维护、改进性维护

7、淘汰升级

生命周期示意图:


二、开发模型

软件开发模型:边做边改模型、瀑布模型、快速原型模型、螺旋模型、增量模型、迭代模型、演化模型
             喷泉模型、混合模型、敏捷开发模型

1、边做边改模型

这种模型,没有规格说明,也没有经过设计,开发人员拿到项目会立即根据需求编写程序
软件会伴随客户的要求不断被修改,直至客户满意
缺点:缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改
     忽略需求环节,给软件开发带来很大的风险
     没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难

2、瀑布模型

瀑布模型中,包括计划、需求分析、设计、编码、测试、运行维护等六个基本活动
规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,是一种线性模型

瀑布模型强调文档的作用,要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化
已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
(1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
(2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险
(3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果

3、快速原型模型

本质是,开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求
快速原型模型中,第一步:通过一些快速原型语言先构建出软件产品的原型系统,可快速的和用户交互
用户通过该原型系统具体的了解该款软件,对原型进行评价,进一步细化待开发软件的需求。通过逐步
调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步:则在第一步的基础上
开发客户满意的软件产品
快速原型,可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果

4、螺旋模型

螺旋模型,将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,适合于大型复杂的系统
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
(1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
(2) 风险分析:分析评估所选方案,考虑如何识别和消除风险
(3) 实施工程:实施软件开发和验证
(4) 客户评估:评价开发工作,提出修正建议,制定下一步计划
螺旋模型也有一定的限制条件,具体如下:
(1)在软件开发的每个阶段,都增加一个风险分析过程
(2)螺旋模型强调风险分析,但要求客户接受这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
(3)如果执行风险分析会影响项目的利润,那进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。
(4)软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险
在软件开发的每个阶段,都增加一个风险分析过程

5、增量模型

与建造大厦相同,软件也是一步一步建造起来的
增量模型,就是把待开发的软件系统进行模块化,把每个模块都看作一个增量组件,从而分批次的分析、设计
编码和测试这些增量组件。运用增量模型的软件开发过程,就是递增式的过程
相较于瀑布模型,开发人员不需要一次性地把整个软件产品交给用户,可以分批次进行提交
例如:要开发A、B、C、D四个业务功能,增量方法就可以将四个功能分为两次增量来完成
第一个增量完成A、B功能,第二次增量完成C、D功能

其实,增量就是:一块一块来进行测试
比如画一幅人物画,用增量,就是先画人的头部,再画身体,再画手脚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值