《 软件测试基础持续更新中》
一、软件开发模型
1.1 大爆炸模型
优点:思路简单, 通常可能是开发者的“突发奇 想”
缺点:开发过程是非工程化的,随意性大,结果不可预知
测试:开发任务完成后,修复较困难
1.2 边写边改模型
优点:简单考虑到了软件的需求,产品周期短
缺点:没有计划和文档的编制
测试工作:由于新的版本不断产生,测试工作长期循环
1.3 瀑布模型
优点:
- 如同瀑布流水,逐级下落——样式
- 将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型
- 易理解,阶段明显,强调需求分析,明确测试阶段,提供了一套模板
- 文档驱动
缺点:
- 线性严格——成果晚出——风险大
- 阶段固定——反复&迭代不适合——灵活性差
- 单次需求——需求变更多——适应性差
- 测试滞后——缺陷晚查——代价大
适合场景:
- 功能、性能明确完整
- 需求固定,无重大变动
1.4 螺旋模型
每一个螺旋(开发阶段)包括5个步骤:
1. 确定目标,选择方案
2. 评估方案,解决风险
3. 本阶段的开发和测试
4. 计划下一阶段
5. 确定下阶段方法
优点:严格的全过程风险管理;强调各开发阶段的质量;提供机会评估项目是否有价值继续下 去。(发现问题早)
敏捷模型(略)
二、软件测试模型
V模型
局限性:测试滞后
V模型特点:动态测试行为应与开发行为对应,每个测试阶段的基础是对应开发阶段的提交物,并通过低层测试确保源代码正确,通过高层测试保证整个系统满足用户需求
W模型
局限性:
- 将软件开发看成需求分析、设计和编码等一系列串行的活动
- 开发、测试之间保持着线性的前后关系,无法支持迭代的开发模型,无法支持变更调整
- 未体现测试流程的完整性
W模型特点:静态测试和动态测试行为伴随整个开发阶段,并与开发行为对应,有助于早期发现缺陷、了解项目难度、评估测试风险,并加快项目进度,降低项目成本
H模型
测试流程应独立于其他流程,且应保持自身的完整性,即测试是一个独立的流程,与其他流程并 发进行,且其本身的测试准备和执行活动是分离的,不同测试活动可按某个次序先后进行,也可 能是重复的,只要测试准备工作完成,就可以开始测试执行
X模型
清晰地体现了单元测试→集成测试→系统测试的过程,该模型还能处理开发中包括交接、频繁重 复的集成等工作,更加贴合实际的项目开发流程。