瀑布模型
瀑布模型是开发过程是通过一系列阶段顺序展开的,从系统需求分析开始到产品发布和维护,每个阶段都会产生循环反馈,若有信息未被覆盖或发现了问题,那么最好“返回”上一阶段进行适当的修改,项目开发进程是从一个阶段“流动”到下一阶段。
特点:
1、线性模型的一种,在所有模型中占有重要位置,是所有其他模型的基础;
2、每个阶段执行一次文档驱动,按线性顺序进行软件开发。
优点:
1、开发的各个阶段比较清晰;
2、当完成前一阶段后,只需关注后续阶段。
缺点:
1、依赖于早期的需求调查,不适应需求的变化;
2、风险往往延至后期才显露,失去及早纠正的机会。
结构:
V模型
V模型,简称RAD,Rapid Application Development 快速应用开发模型,是软件开发过程中的一个重要模型,又称软件测试的V模型。
优点:
包含了底层和高层的测试过程,每个步骤都是文档驱动
缺点:
和瀑布模型一样,不能适应需求的改变,灵活性较低;
W模型
相对于V模型,增加了软件开发各阶段中同步进行的验证和确认活动。由两个v模型组成,分别代表测试与开发的过程,明确表示出了测试与开发的并行关系。
优点:
1)、强调测试伴随着整个开发周期,而且测试的对象不仅仅是程序,需求与概要设计同样要测试;
2)、更早地介入测试,可以发现开发初期的缺陷,可以用更低的成本进行缺陷修复;
缺点:
技术复杂度高,对测试工程师要求高,实施困难。
螺旋模型
螺旋模型将开发过程分为几个螺旋周期,每个周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标上4个象限分别表示4个方面的活动:制定计划、风险评估、实施开发、客户评估。
优点:
1)、强调严格的全过程风险管理;
2)、强调各研发阶段的质量;
3)、提供机会检讨项目是否有价值继续下去;
缺点:
引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。
敏捷模型
当前最为主流的开发测试模型;
跟传统的瀑布模型、v模型不同,等到开发人员提测的时候,测试用例已经开发完成,可以直接开展测试工作。执行测试的过程中,发现了Bug立即反馈给开发团队修复,修复后进行回归测试,直到全部测试用例通过,由产品经理验收。
敏捷模型的产生:
在v模型中,描述了基本的开发过程和测试行为,它的优点在于,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了测试各阶段和开发各阶段的关系;v模型的局限:测试介入时间太晚,只是把测试作为编码后的一个活动,需求分析等前期产生的错误,直到后期的验收测试才能发现。针对v模型的局限,引入敏捷模型。
X模型
X 模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序,这些可执行程序还需要进行测试。已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。
“继续记录学习生活,坚持更新~”