<!doctype html>
是软件的产生直到报废的生命周期
定义与规划、需求分析、系统设计、软件编程、软件测试、软件运维等阶段
用来描述和表示一个复杂的开发过程
软件开发模型分为瀑布模型、快速原型模型、螺旋模型
瀑布模型是线性模型的一种,是所有其他模型的一个基础
瀑布模型严格定义了各个开发阶段的输入和输出,打不到要求的输出,下一阶段的公做就不展开
测试的切入点是,开发完成之后,必须留给测试足够时间给测试人员,否则会导致测试不充分,导致很多问题到项目的后期才体现出来
优点:
缺点:
改良
沿用瀑布模型的线性思想,细化各个阶段,在某些重要关注的阶段之间掺入迭代的思想
问题的定义及规划
确定软件开发目的可行性,指定开发计划
需求分析
在确定开发可行性正确下,对软件所需功能进行详细分析,明确客户需求,输出原型图
软件设计
概要设计:架构的实现,表述各模块接口和数据传递等事务
详细设计:对表述的各模块深入分析,要求达到代码级别,将程序具体实现描述出来,以及数据库设计
软件编码
按照详细的模块功能表,编程人员编写出计算机可运行代码
在开发真实系统出来,先构造一个圆形,在该原型的基础上逐渐完成整个系统开发的开发工作
开发原型,让用户对原型评价,逐步调整
在原型的基础上开发出用户满意的软件
优点:
克服瀑布模型的缺点,适合预先不能确切定义需求的软件开发。适合开发小型的、灵活性高的系统
缺点:
不适合大型系统的开发,前提要有一个展示的原型作为参考,因此一定程度上可能会限制只开发的创新
将开发分为螺旋周期,每个螺旋周期和瀑布模型相符,坐标轴的四个想先表示四个活动
螺旋模型的核心是不需要正在刚开始就把所有事情搞清楚,先定义最主要功能,实现它,然后听取客户的意见
制定计划:确定软件目标,选定实施方案,弄清楚项目开发的限制条件
风险分析:分析评估所选方案,弄清楚项目开发的限制条件
实施工程:实施软件开发和验证
客户评估:评价开发工作,提出修正意见,指定下一步计划
螺旋模型相似与一种风险驱动的方法体系,因为在每一阶段都会进行风险评估
优点:
引入其他模型不具备的风险分析,使得软件遇见风险时可以停止,减少损失
要求每个迭代阶段都需要构建原型,进行软件测试,以减小项目开发风险
整个过程都有较高灵活性,开发过程的任意阶段自由应对变化
缺点:
需要测试人员有丰富的风险评估经验和专业才能及时标识风险,减少软件缺陷损失,过多的评审迭代,造成开发成本压力
软件是在逐步的改进增减的过程中,最终达到用户满意度
敏捷开发就是迭代+增量
敏捷开发对于自动化测试的要求较高,开发人员注重开发,测试人员注重测试过程
敏捷开发需要测试人员更好的掌握自动化技术
全量:完整的版本包、
增量:在某一个全量的版本包上更新的内容包,增量的基础是全量包
本身是软件开发中瀑布模型的变种,他反映测试活动与分析和设计的关系
v模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程间的阶段对应关系
v模型中的过程从左到右,描述了基本的开发过程和测试行为
v模型的价值在于他非常明确地标注测试过程中存在的不同级别,并且清楚的描述了这些测试阶段和开发过程期间各个阶段对应关系
局限性:把测试作为编码之后的最后一个活动,需求分析等等前期产生的错误直到后期的验收才能发现
v模型的优点:
v模型既包含了底层测试又包含了高层测试:
底层测试,如单元测试
高层测试,系统测试
v模型清晰的标出了软件开发的各个阶段
v模型自顶向下逐步求精的方式把整个开发过程分为不同阶段,每个阶段的工作都很明确,因此便于控制开发过程,当所有的阶段都完成后,该软件开发过程也随之结束
v模型的缺点:
缺点也是显而易见,正是它自身的顺序性导致,只有到了测试阶段,才开始执行测试流程。但有写错误直到这时才被发现,甚至无法发现
另外,在实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此当需求变更时将会导致阶段反复
在软件开发过程中,开发一个v,测试一个v,组合而来的w,所以W模型也称双v模型
测试伴随着整个软件开发周期,并且成测试对象不仅仅是程序,需求和设计阶段同样需要测试
开发和测试的协调工作图,绿色为开发V,橙色为测试V
W模型的优点
W模型缺点
一般只有大型企业使用W模型
H模型将活动完全独立出来,形成一个完全独立的流程,同时将测试执行也清晰的表现出来。
测试准备:所有测试执行活动的准备,判断是否测试的就绪点。
测试就绪点:测试准入准则,即是否可以开始执行测试的条件。
测试执行:具体的执行测试的程序
按测试职位分类
白盒测试:测试主体就是软件的底层
原文:https://www.cnblogs.com/g15009428458/p/12088987.html