软件测试--软件测试的五种开发模型

软件工作的范围不仅局限在程序编写,而且扩展到了软件的整个生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安全部署、运行维护,指导软件被更新和替换新的版本。软件工程还包括过程管理、产品管理、资源管理和质量管理等技术性的管理工作。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用于作为软件工作的基础。

软件的生命周期

指从软件产品的设想开始到软件不再使用而结束的时间。

软件生命周期的六个阶段:需求分析--计划--设计--编码--测试--运行维护。

开发模型的分类:瀑布模型、螺旋模型、增量模型、迭代模型、敏捷模型

瀑布模型(Waterfall Model):

作用:瀑布模型是所有其他模型的基础框架,在软件工程中占有重要地位。

瀑布模型是线性顺序进行的软件开发模式,因为瀑布模型的每一个阶段都只执行一次。

优点:1. 强调开发的阶段性;

           2. 强调早起计划及需求调查;

           3. 强调产品测试;

           4. 是英语需求变更小、稳定的项目; 

缺点:1. 依赖于早期进行的唯一一次需求调查,不能适应需求的变化;

           2. 瀑布模型是单一流程,开发中的经验教训不能反馈应用于本产品的过程;

           3. 风险性往往迟至后期的测试阶段才显露,因而失去及早纠正的机会;

           4. 可以运行的产品很迟才能被看到,会给项目带来很大的风险,尤其是集成的风险;

在瀑布模型中,测试阶段处于软件实现之后,也就是说代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给客户。

螺旋模型(Spiral Model):

软件测试--软件测试的五种开发模型_第1张图片

螺旋模型是渐进式开发模型的代表之一,在软件开发初期阶段需求不明确时使用。

螺旋模型适用于规模庞大、复杂度高、风险大的项目。

要求:不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代,体现回归测试的重要性。

优点:1. 强调严格的全过程风险管理;

           2. 强调各开发阶段的质量;

           3. 提供机会检讨项目是否有价值继续下去;

缺点:1. 引入非常严格的风险识别、风险分析、风险控制,对风险管理的技能水平提出了很高的要求;

           2. 需要大量人员、资金和时间的投入;

螺旋模型适用于规模庞大、复杂度高、风险大的项目。

增量模型:

优点:1. 显著降低项目风险;

           2. 鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发;

增量模型开发模式下,每一次迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密的合作。增量模型是一步一步迭代,是逐块建造的概念。

迭代模型:

迭代模型是反复求精的概念,先从轮廓出发,再细致进行。

敏捷模型:

敏捷模型是有关软件开发的社会工程的。敏捷的主要贡献是它更多地思考了如何去激发开发人员的工作热情。

敏捷模型强调人与人之间的沟通,轻文档、要求用户参与、拥抱变化

敏捷的价值观:

1. 强调人与人之间的沟通;

2. 轻文档(对文档的要求较低);

3. 要求客户参与;

4. 拥抱变化(变化中与计划);

敏捷开发中的scrum方式:

scrum中的角色:

1. 产品经理(product owner):负责 user story(用户故事),定义其商业价值,对其进行排序,指定发布计划,对产品负责;

2. 项目经理(scrum master):负责召开各种会议,协调项目,为研发团队服务;

3. 研发团队(team):由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

敏捷模式的特点:

1. 敏捷的迭代周期一般为3~4周;

2. 一个组为5~9人;

3. 每天的站立会需回答昨天做了什么、有什么问题、今天打算做什么等,大概10~15分钟左右;     

你可能感兴趣的:(测试)