软件开发模型
大爆炸模型
最简单的软件开发模式,没计划进度安排,所有精力都花在代码上
一般几乎没测试,有也挤在产品发布之前
边写边改模型
未开发模式
至少考虑产品需求
自靠着简单的想法进行简单的设计,然后开始漫长的编码,修改测试,直到觉得满足,发布
测试中最可能遇到的
瀑布模型
从走出构思到最终产品,每一步都要经过一系列步骤,项目结束小组审查,如果没准备好下一步,就停下来,直到准备好,在进行开发
螺旋模型
1.螺旋模式中包含瀑布模式(分析设计开发测试步骤),一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从边界观察),该模式发现问题早,成本低,相当好的开发模式
2.测试喜欢该模式,可以从最初设计阶段,尽早地影响该产品,把产品来龙去脉摸清楚,不至于最后匆忙全面测试
3.软件测试员测试一直都在进行,最后只是验证表面部分有没有问题
敏捷开发模型
没有提供任何死板僵化的开发方法和复杂的技术结构层次
个体交互重于过程工具 可用的软件重于完备的文档的 客户写作重于合同谈判 响应变化重于遵循计划
软件测试模型分类
v模型
旨在改进"瀑布模型"开发效率和结果
用户需求--------------------验收测试--------需求
----需求分析--------------系统测试----------需求
-----概要设计-----------集成测试------------代码
-------- 详细设计-----单元测试--------------代码
--------------------编码
右边测试对应左边开发步骤
优点 |
---|
明确将测试分为不同级别和阶段 |
每个阶段测试都与各阶段开发对应 |
包含低层测试和高层测试,高层测需求,高层测代码 |
缺点 |
测试是开发后的一个阶段,实际容易导致需求方面错误到最后系统测试阶段才发现 |
测试对象是程序本身,忽略了对需求的分析,系统设计的验证和确认 |
过程是线性的,不能够迭代 |
w模型
1.需求分析------需求测试__________________7.系统安装------验收测试
__2.概要设计-----概要设计测试 __________6.系统构建-----系统测试
______3.详细设计-----详细设计测试___5.模块集成------模块测试
________________4.编码编码 _________单元测试
优点 | 缺点 |
---|---|
测试开发同步进行,有利于尽早发现问题 | w模型中,需求,设计,编码等活动被视串行 |
测试开发同步进行 | 测试开发活动保持线性前后关系 |
测试对象不仅是程序,还包括设计,需求 | 上一阶段结束,才可正式开始下一阶段 |
H模型
真正的测试开发之间不存在严格的次序关系,各阶段之间可以反复触发,迭代,增量,解决v模型和w模型存在的问题
测试流程 | 其他流程 |
---|---|
准备测试 | (准备需求,详细设计,编码) |
准备OK | 准备OK |
测试执行 | 编写需求,编写设计,编码 |
1.测试活动独立出来,形成一个独立流程
2.不仅仅测试执行,还包括计划群,需求分析区,用例设计,环境搭建,提交缺陷,评估总结等
3.某个测试四家店就绪时,软件测试从准备阶段进入执行
4.尽早准备,尽早执行
敏捷测试模型
极限测试
- 极限测试为满足极限编程,该方法强调连续测试
- 极限测试在极限编程中非常重要,需要首先创建单元测试和验收测试的用例,然后才能编码,这种形式称为极限测试
- 极限编程需要客户参与,高度依赖模块的单元和验收测试
对任意代码变更,开发都会进行单元测试
单元测试完成客户进行验收测试
极限编程的步骤
- 程序员和客户会晤,交流产品需求,然后客户不在时候,程序员会晤,分解需求,分配任务,估计每个任务所用时间,然后向客户提交任务清单和时间估计,并要求客户给出一个功能优先级清单
- 每一对程序员根据长旭规格说明,对编程任务生成单元测试用例
- 编程成对程序员一人编码,一人测试,不断修改重测代码,每天整合,集成代码库,发布一个预览版本
- 客户验收测试,要么确认程序,要么给出一份报告,指出bug不足,程序员在客户验收测试的基础上,发布一个产品版本,开发人员个编程小组随时接触客户,快速准确解决问题
- 程序员根据最新经验更新时间评估
- 不允许加班,每周25h全力工作,就不用加班除非重大版本发布前一星期
敏捷测试要点总结
- 程序员成对协同编程,一个程序员做测试员的角色(连续测试)
- 侧重单元测试和验收测试,单元测试的过程是先设计单元测试用例,然后编码,然后进行测试
- 强调客户参与,单元测试通过后的代码集成到代码库,再有客户进行验收测试
测试模型的使用
- 不同的生命周期模型需要不同的测试方法
- 应尽可能勇利用测试模型中对项目有价值的方面,而不能轻信使用模型
- 各种模型可以适当结合