作者:爱塔居
专栏:软件测试
作者简介:大三学生,希望同大家一起进步!
文章简介:主要介绍软件生命周期、瀑布模型和螺旋模型两个开发模型,V模型和W模型两个测试模型
文章目录
目录
文章目录
一、软件的生命周期
二、开发模型
2.1 瀑布模型
2.2 螺旋模型
编辑
三、增量、迭代
4、软件测试模型
4.1 软件测试v模型
一、软件的生命周期
软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
软件生命周期的六个阶段:需求分析、计划、设计、编码、测试、运行维护
二、开发模型
软件开发模型总体上有传统的瀑布模型和后来兴起的快速原型模型两类。在实践中,软件开发人员对上诉两类开发模型进行了改进,产生了一些可行的软件开发模型,常见开发模型有:瀑布模型、快速原型模型、增量模型、喷泉模型、螺旋模型。
2.1 瀑布模型
瀑布模型遵循软件生命周期的划分规划,明确规定每个阶段的任务,各个阶段的工作以线性顺序展开,恰如奔流不息的瀑布。
实线箭头表示开发工作的流程,每个阶段顺序进行,有时会返工;虚线箭头表示维护工作的流程,根据不同的情况返回到不同的阶段进行维护。
瀑布模型三个特点:
1.软件生命周期的顺序性
顺序性是指只有前一个阶段工作完成以后,后一个阶段的工作才能开始。前一阶段的输出文档就是后一阶段的输入文档。只有前一阶段有正确的输出,后一阶段才可能有正确的阶段。瀑布模型的特点是由文档驱动的。
2.尽可能推迟软件的编码
瀑布模型在编码之前安排了需求分析、概要设计和详细设计等阶段,从而把逻辑设计和编码清楚地划分开,尽可能推迟编码阶段。
3.保证质量
瀑布模型坚持两个重要的说法:
(1)每个阶段都要完成规定的文档
(2)每个阶段都要对已完成的文档进行复审,以便及早发现隐患,排除故障
瀑布模型的优点:
1.强调开发的阶段性
2.强调早期计划及需求调查
3.强调产品测试
瀑布模型的缺陷:
由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;风险往往迟至后期的检测阶段才显露,因而失去及早纠正的机会。如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才会发现,通常会导致前面阶段的工作大面积返工。
瀑布模型使用场合:
瀑布模型开发适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。
2.2 螺旋模型
一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型时渐进式开发模型的代表之一。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试世间和阶段,测试必须跟随开发的迭代而迭代。
螺旋模型的优点:
1.强调严格的全过程风险管理
2.强调各开发阶段的质量
3.提供机会检讨项目是否有价值继续下去
螺旋模型的缺点:
引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求,这需要人员、资金和时间的投入
螺旋模型的使用场合:
适合那些规模庞大、复杂度高、风险大的项目
三、增量、迭代
增量开发能显著降低项目风险、结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地写作。
增量是逐快建造的概念,比如画一副人物画,可以先画头、再画脖子、画手脚……
迭代是精益求精的概念,先画整体轮廓,再勾勒出基础雏形,再细化、着色。
4、软件测试模型
4.1 软件测试v模型
V模型最早是由Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果。是瀑布模型的变种。
(1)V模型明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
(2)V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。
4.2 软件测试W模型
W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系
W模型的特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的。
W模型的优点:有利于尽早地全面地发现问题。同样,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度
W模型的局限性:需求、设计、编码等活动被视为串行的,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作,无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能接触测试管理面临的困惑。