六、生命周期、周期模型、测试流程
1.软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。
软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
2.测试周期是指从测试项目计划建立到BUG提交的整个测试过程,包括软件项目测试计划,测试需求分析,测试用例设计,测试用例执行,BUG提交五个阶段。
软件测试周期并行与软件生命周期,存在于软件生命周期的各个阶段。
软件开发过程是将用户需求转换为软件的过程,通常包括:需求--设计--实现--测试。
3.软件测试生命周期模型:瀑布模型、V模型、螺旋模型、迭代模型、W模型、H模型、X模型
(1)瀑布模型:瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃。
优点:
有利于大型软件开发过程中人员的组织及管理;
提高了大型软件项目开发的质量和效率;
缺点:
由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果,只有等到整个过程的末期才能见到开发成果,软件与用户见面的时间间隔较长,也增加了一定的风险;
早期的错误可能要等到开发后期的测试阶段才能发现,可能会扩散,进而可能会造成整个软件项目开发失败;
各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量(软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的);
(2)V模型
V模型大体可以划分为以下几个不同的阶段步骤:客户需求分析、软件需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
局限性: 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现。
(3)螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
(4)迭代模型
最早的迭代过程可能被描述为“分段模型(stagewise model)”。迭代模型是RUP推荐的周期模型。
迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。
实质上,它类似小型的瀑布式项目。
优点:与传统的瀑布模型相比较,迭代过程具有以下优点:
1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
(5)W模型:文档驱动
优点:
将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
更早的介入到软件开发中,能尽早的发现缺陷进行修复。
测试与开发独立起来,并与开发并行。
缺点:
对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
对于需求和设计的测试技术要求很高,实践起来很困难,文档驱动。
(6)H模型
相对于V模型和W模型,H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
(7)X模型
目标是弥补V模型的一些缺陷。
4.测试基本过程
(1)一个规范化的软件测试过程包括以下基本的测试活动:
拟定软件测试计划、方案;
设计和生成测试用例、准备测试数据;
执行测试,记录原始数据,对缺陷进行管理;
生成软件测试报告、缺陷的统计和报表;
(2)软件测试过程与整个软件开发过程基本上是平行进行的;
(3)一个开发机构还应当制定软件测试规程,按照软件工程的规范,定义各项活动的目标和详细过程;
(4)测试基本过程示意图:
标签:生命周期,迭代,流程,开发,测试,软件,模型 From: https://www.cnblogs.com/zhuo-90/p/16633126.html