软件测试工作与软件开发模型息息相关,你了解多少?
发表时间:2023-10-08 11:05:53
文章来源:炫佑科技
浏览次数:151
菏泽炫佑科技
软件测试工作与软件开发模型息息相关,你了解多少?
1.瀑布模型
瀑布模型是WW Royce于1970年提出的一种软件开发模型。从模型名称可以看出,该模型遵循从上到下一次性完成整个软件产品的开发方法。 瀑布模型将软件开发过程分为六个阶段。 :规划→需求分析→软件设计→编码→测试→运维。 开发流程如图1-1所示。
图1-1 瀑布模型
在瀑布模型中,所有的软件开发活动都严格遵循这条线。 只有完成一个阶段的任务软件开发,才能开始下一阶段的工作。 软件开发的每个阶段都必须产生结果。 结果经过审核验证后,将作为下一阶段的输入,使下一阶段能够顺利进行。 审核结果未通过的,需退回修改。
瀑布模型为整个项目划分了明确的检查点。 当一个阶段完成后,你只需要把全部精力集中到后续的开发上即可。 有利于大规模软件开发人员的组织和管理以及工具的使用和研究。 提高开发效率。
但瀑布模型严格按照线性方式进行软件测试工作与软件开发模型息息相关,你了解多少?,无法适应用户需求的变化。 用户只能等到*后才能看到开发结果,增加了开发风险。 如果开发人员和客户对需求的理解存在差异,那么*终开发完成后,*终的结果可能会与客户需求有很大差异。 在使用瀑布模型开发软件时,如果项目完成后才发现早期的错误,此时纠正原来的错误将花费很大的成本。 瀑布模型要求每个阶段都必须产生结果,这必然会增加文档数量,增加软件开发的工作量。
另外,对于现代软件来说,软件开发的各个阶段之间的关系大多不会是线性的,很难使用瀑布模型来开发软件。 因此,瀑布模型已经不再适合现代软件开发,已被逐渐抛弃。
2. 快速原型模型
快速原型模型与瀑布模型正好相反。 在初步确定用户需求时,快速构建可运行的软件原型。 该软件原型向用户展示了所要开发的软件的全部或部分功能和性能,并由客户对原型进行评审和评估。 ,然后给出更具体的需求意见,从而逐步丰富和细化需求,*后开发人员和客户达成*终共识,确定客户的真正需求。 确定了客户的真正需求后,就开始实际的软件开发。
快速原型模型类似于建造房屋。 确定客户对房屋的需求后,快速搭建房屋模型。 客户对房屋模型进行评估,看房屋的风格、功能、布局等是否满足需求,哪些地方需要改进。 *终决定已做出。 房屋的实际建造始于客户对房屋的要求。 该模型的开发流程如图1-2所示。
图1-2 快速原型模型
与瀑布模型相比,快速原型模型克服了需求不明确带来的风险,适用于无法提前确定需求的软件项目。 然而,快速原型模型的关键是快速构建软件原型,而准确设计软件原型是困难的。 另外,这种开发模式也不利于开发者扩展产品。
4. 迭代模型
迭代模型也称为增量模型或进化模型。 它将一个完整的软件拆分成不同的组件,然后逐一开发和测试每个组件。 每个完成的组件都会呈现给客户,以便客户确认该组件的功能和性能。 *终确定是否满足客户需求,并将组件集成到软件架构中。 整个开发工作被组织成一系列短期的、简单的小项目,称为一系列迭代。 每次迭代都需要经历需求分析→软件设计→编码→测试的过程。 开发流程如图1-3所示。
图1-3 迭代模型
在迭代模型中,**次迭代(即**个组件)往往是软件基本需求的核心部分。 **个组件完成后,经过客户评审和评估后形成下一个组件的开发计划,包括对核心产品的修改。 以及新功能的发布,不断重复迭代步骤,直至达到*终完美的产品。
迭代模型能够很好地适应客户需求的变化。 它逐个组件地交付产品。 顾客经常可以看到产品。 如果某个组件不能满足客户需求,只需更改该组件即可,降低了软件开发的成本和风险。 。 然而,代选模型需要将开发的组件集成到软件架构中,这会导致集成失败的风险。 因此,软件必须具有开放的架构。 另外,迭代模型逐个组件地进行开发和修改,很容易退化为“边做边改”的开发形式,从而失去对软件开发过程的总体控制。
4. 螺旋模型
螺旋模型由Barry Boehm于1988年提出。该模型结合了瀑布模型和快速原型模型。 其*大的特点是引入了其他模型所忽视的风险分析。 如果项目不能消除重大风险,则停止项目以减少损失。 这种模式更适合开发复杂的大型软件。
螺旋模型将整个项目开发过程分为几个不同的阶段,每个阶段逐步执行。 这种划分方法采用瀑布模型。 在每个阶段开始之前必须进行风险评估。 如果可以消除重大风险,则可以开始该阶段。 每个阶段首先构建软件原型,基于快速原型模型完成迭代过程,生产出*终的完美产品,然后进入下一阶段。 在下一阶段开始之前还必须进行风险评估,并持续循环直至所有完成。 阶段任务。 螺旋模型的几个阶段沿着螺旋模式进行,如图 1-4 所示。
图 1-4 螺旋模型
图1-4有4个象限:规划、风险分析、项目实施和客户评估。 各象限的含义如下。
(1)制定计划:确定软件目标,制定实施计划,列出项目开发的约束条件。
(2)风险分析:对制定的实施方案进行评估,识别风险并消除风险。
(3)实施工程:开发产品并验证
(4)客户评价:客户对产品进行审查和评价,提出整改建议,制定下一步计划。
在螺旋模型中,每一代都需要经历这四个步骤,直到*终产品完成并可以提交。
螺旋模型强调风险分析,这意味着对替代方案和约束条件进行评估,更有利于将软件质量作为特殊目标融入到产品开发中。 它以小段构建大软件,使成本计算变得简单易行,并且客户始终参与到开发的每个阶段,确保项目不偏离正确的方向,并且项目可控。
5. 敏捷模型
敏捷模型是20世纪90年代出现的一种软件开发模型。 现代社会,技术发展非常快,软件开发也是在快节奏的环境中进行的。 在业务快速变化的环境中,在软件开发之前通常不可能收集完整且详细的软件需求。 没有完整的软件需求,传统的软件开发模式将难以发挥作用。
为了解决这个问题,人们提出了敏捷开发模型。 敏捷模型以用户需求的演化为核心,采用迭代、分步的方式进行软件开发。 在敏捷模型中,一个软件项目在构建初期被拆分为多个相互关联、独立运行的子项目,然后迭代完成各个子项目。 在开发过程中,每个子项目都必须经过开发测试。 当客户需求发生变化时,敏捷模型可以快速对子项目进行修改以满足客户需求。 在此过程中,该软件始终可供使用。
除了响应需求之外,敏捷模型还有一个重要的概念——迭代,就是不断地对产品进行细微的、渐进的改进,一次改进一小部分,在可行的情况下逐步扩大改进范围。 在敏捷模型中,软件开发不再是线性的。 开发的时候也会进行测试,甚至可以提前写好测试代码。 因此,敏捷模型中有“测试先于开发”的说法。
另外,与传统的软件开发模型相比,敏捷模型更加注重“人”在软件开发中的作用。 项目各部门要紧密合作,快速有效地沟通(如面对面沟通),提出需求的客户可以参与整个过程。 以适应开发过程中频繁变化的软件需求。 为此,敏捷模型描述了一套软件开发的价值观和原则,具体如下。
(1)个体和交互比流程和工具更重要。
(2) 可用的软件比完整的文档更重要。
(3)客户协作比合同谈判更重要。
(4) 应对变化比遵循计划更重要。
对于敏捷模型来说,并不是工具、文档等不重要,而是更强调人与人之间的沟通。
敏捷模式可以及时响应客户需求的变化,不断适应新的趋势,但在灵活开发的同时也带来了一定程度的混乱。 例如,缺乏文档; 以前版本软件的再现性和可追溯性较低; 对于较大的项目,人员越多,面对面有效沟通就越困难。 因此,敏捷模型更适合小型项目的开发,但不太适合大型项目。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等