软件生命周期模型是更为了更好的完成软件的开发及维护,从产品需求、开发难度、交付情况等方面考虑,选择最适合软件开发的方式。软件开发过程中常用的软件生命周期模型有瀑布模型、原型化模型、增量模型和螺旋模型
瀑布模型
瀑布型是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题
优点:
1.为项目提供了按阶段划分的检查点
2.当前一阶段完成后,只需要去关注后续阶段。
缺点:
1.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2.由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3.通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4.瀑布模型的突出缺点是不适应用户需求的变化。
原型化模型
原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。
模型要点:瀑布和原型模型相结合,强调版本升级。
增量模型
增量模型也是原型化开发方法。
螺旋模型
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。
优点:
1.设计上很灵活,可以在项目的各个阶段进行变更;
2.以小的分段来构建大型系统,使成本计算变得简单容易;(国企项目)
3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
4.随着项目推进,客户始终掌握项目的最新信息 , 从而能够和管理层有效地交互;
5.客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点:
螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的。因此,这种模型往往适应于内部的大规模软件开发。该模型建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
V模型
V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。
优点:
1.每一个阶段都清晰明了,便于控制开发的每一个过程。
2.既包含单元测试又包含系统测试。
缺点:
1.测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
2.测试和开发串行。
W模型
相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
优点
1.测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
2.测试于开发是并行独立进行的。
缺点
1.对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2.对于需求和设计的测试技术要求很高,实践起来很困难。
软件测试工具
软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示,使测试人员更好的找出软件错误所在。
测试管理工具是为了复用测试用例,提高软件测试的价值。
一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。
Bug管理工具: 禅道 ,Jira(付费),Trac,gitlab