一、瀑布模型
瀑布模型在软件测试工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都之执行一次,因此是线性顺序的软件开发模式。
优点: 缺点:
-强调开发的阶段性; -串行,有去无回
-强调早期计划及需求调查 -测试介入晚,导致项目前期的问题到后面才发现,失去了错误及时修正的机会
-强调产品测试 -不支持项目频繁变动
二、螺旋模型
一个项目分多层小迭代
适合风险比较大并且整个项目也比较庞大,每一个迭代做风险分析,讨论项目是否有价值继续。
缺点:
-风险分析要求很高,需要投入专业人员,导致时间,项目支出费用比较高
-风险对比对测试人员和开发人员要求比较高
三、迭代增量模型
4周时间开发 系统的A模块,B模块,C模块,D模块的功能
增量,第一周完成A模块;第二周完成B模块:第三周完成C模块:第四周完成D模块:
迭代:第一周完成A B C D四个模块的基础框架部分,第二周完成基础功能的开发和测试,第三周进一步开发复杂的功能,第四周完善细节;
四、敏捷开发模型
特点:-重目标,重产出,轻文档,轻流程(拥抱变化,客户可以在项目开发过程中改变需求)
-注重和客户的沟通,整个研发团队有效沟通,注重产品质量,注重产品规定的交付日期。
-敏捷开发周期很短(1-4周时间),研发团队人员5-9个人
Scrum流程:
角色:
PO(product owner)产品经理:负责整理用户需求,形成userstory。
SM(scrum Master)项目经理,负责保证整个敏捷开发流程的顺利实施,开发,和各种协调等。
ST(scrum team)研发团队,负责整个项目的研发,各种技能的人组成,测试,开发,UI设计师等。
具体怎么做:
1.发布计划会 2.迭代计划会议 3.每日站会 4.产品演示会议 5.项目总结
五、软件测试模型
软件测试V模型:
特点:
-左边 开发的每一个阶段
-右边 测试的每一个过程
-左边的每一个阶段是右边测试每一个阶段的依据
-串行过程,瀑布模型的变种
缺点:
串行的过程,测试是在编码后有的,测试的介入比较晚导致前期的错误后期才发现,后期测试发现时,已经失去了错误及时纠正的最好时机。
软件测试W模型:
特点:
-测试人员在项目需求就开始介入,前期的问题可以及时发现
-测试和开发是并行的
-一个V是开发阶段,另一个V是测试阶段
缺点:
-串行,阶段性强,不适合需求频繁变更的项目
-不支持敏捷开发