软件测试理论及工具(一)

一、软件开发模型

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。

几种常用的软件开发模型

(1)瀑布模型(V模型)

彻彻底底运行程序分析市场你
V模型又称为瀑布模型,是一种普遍的软件开发模式,旨在改进软件开发的效果和效率,反映出测试活动与分析设计活动的关系。每个测试环节都是按照步骤来进行的,一种测试完毕后,才能开始下一种测试。
优点:迫使开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。
缺点:实用性不高,而且如果后期发现问题,修复成本大,前一阶段完成后,才能开始后一阶段,前一阶段的输出文本为后一阶段的输入文本,从开始就需要确定需求。

(2)W模型

相对于V模型,W模型增加了软件各个开发阶段中应同步进行的验证和确认活动,W模型由两个V字模型组成,分别代表测试与开发的过程,其强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样需要测试,测试与开发是同步进行的,W模型有利于尽早的全面的发现问题,例如,需求分析完成后,测试人员应及时参与到对需求的验证和确认活动中,尽早找出缺陷所在,减少总体测试时间,加快项目进度。
在这里插入图片描述

优点: 开发伴随着整个开发周期,需求和设计同样要测试;更早的介入测试,可以发现初期的缺陷,修复成本低;分阶段工作,方便项目整体管理。
缺点: 开发和测试依然是线性的关系,需求的变更和调整,依然不方便;如果没有开发测试文档,无法执行w模型。

(3)螺旋模型

适应于内部的大规模软件开发,螺旋模型强调风险分析,许多客户都无法接受和相信这种分析因此适合于大规模软件项目(执行风险分析将大大影响项目的利润,进行风险分析就毫无意义),软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。模型核心:不需要在刚开始的时候就把所有事情都定义的清清楚楚。在定义最重要的功能时,去实现它,然后听取客户的意见,之后再进入到下一个阶段,如此不断轮回重复,直到得到最终产品,自我感觉是在开发过程中不断满足需求的改变。
在这里插入图片描述
优点:

  1. 设计上的灵活性,可以在项目的各个阶段进行变更。
  2. 以小的分段来构建大型系统,使成本计算变得简单容易
  3. 客户始终参为保证了项目不偏离正确方向以及项目的可控性
  4. 客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。

缺点:
建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足新的用户需求。

(4)喷泉模型

该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限。
在这里插入图片描述
优点:

喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

缺点:

由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

(5)快速原型模型

快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。 快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
在这里插入图片描述
优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。  
缺点:所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。

(6)增量模型

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交
在这里插入图片描述
优点:

  1. 短时间内向用户提供可完成部分工作的产品
  2. 逐步增加产品功能可以使用户有时间了解和适应新产品
  3. 开放结构的软件拥有的维护性明显好于封闭结构的软件

缺陷:

  1. 容易退化为边做边改模型,从而使软件过程的控制失去整体性
  2. 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值