本文由小编根据慕课网视频亲自整理,转载请注明出处和作者。
1.软件测试的分类,按照测试模式分类:
瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等
2.传统的瀑布模型:
项目计划、需求分析、软件设计、程序开发、软件测试、集成维护
每个阶段按照顺序到下一个阶段。每一个阶段都是用上一个阶段的输出作为下一个阶段的输入。
- 项目计划:制定项目总体的研发计划,确定主要的里程碑节点。这个阶段会输出项目计划书。
- 需求分析:明确用户的需求定义,并对定义进行清晰的描述,使充分了解客户需求,描述产品功能的一个重要阶段。这个阶段会输出产品的需求规格说明。
- 软件设计:则会根据需求的定义来确定产品实现的方案,包括定义软件、硬件的结构,组件、模块的实现方法。接口、界面、数据如何进行组织。这个阶段会输出概要设计,详细设计在内的多份设计说明书。
- 程序开发:由开发团队来根据需求和设计具体地实现产品,根据编程规范构建各类组件和模块。最后输出产品版本。
- 软件测试:则是通过独立的测试小组,来评估产品是否满足需求的定义。最后输出测试结果、测试报告。
- 集成维护:产品经过测试以后,交付给用户,根据用户的使用情况,再对产品进行维护及必要的修改升级。
瀑布模型的优缺点:
优点:
- 强调需求、设计的作用
- 前一阶段完成后,只需关注后续阶段
- 为项目提供了按阶段划分的检查点,里程碑清晰
- 文档规范
缺点:
- 难以适应需求的频繁变化
- 项目周期后段才能看到成果
- 强制的里程碑、完成时间点
- 文档工作量大
3.V模型
需求分析、概要设计、详细设计、软件编码
单元测试、集成测试、系统测试、验收测试
V模型是当前使用最广泛的模型。
V模型是瀑布模型的变种,明确地表明了测试过程的不同级别,并且描述了这些测试阶段和开发过程的对应关系。
- 单元测试、集成测试,检测程序是否满足设计上的要求。
- 系统测试则检测软件在功能、性能这些质量特性上是否能够满足系统要求的指标。
- 验收测试则确定软件是否满足用户的最终需求,还有合同里的规定。
在V模型里,强调了软件开发的协作和速度,反映测试活动和分析设计的关系,并且将软件的实现和验证有机地结合起来。
V模型当中,明确地界定了测试过程是存在不同阶段的,明确了不同的测试阶段和研发过程中每个阶段的对应关系。
V模型的局限性:
仅仅把测试过程作为在需求分析、系统设计和编码之后的一个阶段,忽视了测试对于需求的分析和验证,对需求的验证,对系统设计的验证需要到后期的验收测试才能够被发现。对于测试需要尽早执行这一点,在V模型里没有得到很好的体现。
4.W模型
W模型,也称双V模型。
相对于V模型,W模型增加了软件开发各个阶段中同步进行验证和确认活动,测试是伴随着整个开发周期进行的。
测试的对象也不再仅仅是程序,对需求和设计都要进行相应的测试。基本上开发和测试是2个并行的流程。
W模型有利于尽早地发现问题,对V模型只能在后期发现问题进行了改进。
W模型有利于及实地了解项目的测试风险,来及早地制定相应的应对方案,加快项目的进度。
W模型的局限性:
在W模型中,需求、设计、编码仍然是串行的,测试和开发保持着一种线性的相互关系,在上一个阶段完成之后,才能进行下一个阶段。因此W模型不能很好地支持迭代这种开发模型。
5.X模型
X模型是针对V模型的改进。主要是解决交接和频繁集成的周期的问题。
X模型的左边描述的是针对单独的程序片段所进行的相互分离的编码和测试,此后进行频繁的交接,再通过集成最终合成可执行的程序。然后对这些程序进行测试。
X模型还定位了探索式测试,探索式测试是不进行事先计划的一种特殊类型的测试,能够帮助测试人员在测试计划之外发现更多的软件错误。
6.H模型
H模型把软件测试看作完全独立的流程,贯穿在整个产品的生命周期当中。它与其它流程并发地进行。“其它流程”可以是软件的开发流程,设计流程、编码流程,甚至也可以是测试流程。
H模型强调把测试流程分为测试准备和测试执行2个不同的阶段,然后只要由于其它流程的进展引发了测试就绪点的到位,只要测试活动准备完毕,就可以或者需要开展测试执行。
在H模型当中,因为测试是一个完全独立的流程,所以它可以和其它的流程交叉地进行,便于尽早地执行测试。