软件测试流程
一、软件生命周期及研发模型
1、什么是软件生命周期
软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件 设计、编码、测试、软件发布维护的过程
2、软件生命周期的三个时期
软件定义
问题定义——要解决的问题是什么
可行性研究——上一阶段所确定的问题是否有行得通的解决办法
需求分析——目标系统必须做什么
软件开发
概要设计——怎样实现目标系统
详细设计——应该怎样具体地实现这个系统
编码和单元测试——写出正确的容易理解、容易维护的程序模块
综合测试——通过各种类型的测试使软件达到预定的要求
运行维护
使软件持久地满足用户的需要
3、软件研发模型
大爆炸模式
特点:简单,计划、进度安排和正规开发过程几乎没有, 所有精力都花在开发软件和编写代码上,没有测试活动
边写边改模式
特点:开发组最初有粗略的想法,进行简单的设计,然后 开始漫长的来回编写、测试和修改缺陷的过程。适合快速 制作而且用完就扔的小项目,例如,原型范例和演示程序
软件生命周期的瀑布模型: 计划——需求分析——设计——编码——测试——运行+维护
瀑布模型的特点
①瀑布模型非常强调产品的定义 开发或者代码编制阶段只是其中单独的一块
②瀑布模型各步骤是分立的\没有交叉
③ 瀑布模型无法回溯( 一旦进入某个步骤,就要完成该步骤的任务,然后才能向下继续——无法 回溯)
④每个阶段都要仔细验证,线性过程太理想化,越来越不适合现代软件的开发 模式
软件生命周期的快速原型模型 快速分析——需求说明——构造原型——原型——运行原型——评价原型——修改意见
快速原型模型的特点
①克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带 来的项目开发风险
②适合预先不能确切定义需求的软件系统的开发
③不适合大型系统的开发(适合开发小型的、灵活性高的系统)
④不适合大型系统的开发(适合开发小型的、灵活性高的系统)
软件生命周期的螺旋模型 制定计划——风险分析——实施工程——客户评估
螺旋模型的特点
①开始不必详细定义所有细节
② 从小开始,定义重要功能,努力实现
③接受反馈,进入下一次循环
④ 测试活动贯穿于每个循环
⑤螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及 经常发生的循环之前,都必须首先进行风险评估
⑥在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。 过多的迭代次数会增加开发成本,延迟提交时间。
敏捷开发 开发流程
①产品经理调研客户需求,协商需求的优先级,进行排序
②项目经理接收到需求,分配任务,计划研发
③迭代周期,每日站会(立会),讲述昨天任务完成情况,今日计划安排,遇到什 么问题等。参会人员有开发、测试、QA、设计人员等
④交付客户进行确认,一个迭代周期结束需要开反思会,避免下个周期出现同样的 错误
⑤进入下一个迭代周期…直到交付客户的所有需求,避免了后期出现大量不符合客 户需求的功能
二、软件测试生命周期及模型
1、软件测试流程概述
软件测试的生命周期 制定测试计划——测试设计开发——实施软件测试——评审——版本发布
2、软件测试 - V模型
用户需求——需求分析与系统——概要设计——详细设计——编码——单元测试——集合测试——系统测试——验收测试
优点: 在V模型里,强调软件开发的协作和速度,反应测试活动和分析测试 的关系,并且将软件的实现和验证有机的结合了起来,V模型,明确的界 定测试过程是存在不同阶段的。
缺点:但是V模型也有一定的局限性,它仅仅