软件测试 -- 入门 2 软件生命周期与测试
Posted Rolei_zl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试 -- 入门 2 软件生命周期与测试相关的知识,希望对你有一定的参考价值。
不以规矩,无以成方圆。——孟子
任何事情都有规矩,如果做不到成为一个制定规则的人,那就一定要做一个懂规则,守规则,用规则的人。
1. 软件生命周期
软件生命周期,Software Development Life Cycle,SDLC。
软件生命周期的发展体现了软件工程理论的发展,从无序到有序、从混乱到规则和秩序。
软件同其他事物一样,生命周期包括产生、发展、成熟、消亡4个阶段。生命周期内按时间先后,软件经历了问题定义、可行性分析、计划开发、需求分析、系统设计、程序编码/调试、程序测试、用户验收与交付、运行维护、升级或更换等多种活动,所有活动按标准软件工程思想逐步实施,每个活动都有标准的输入、输出以保证阶段活动执行质量,确保最终软件系统交付质量。
任何软件都是从最模糊的概念开始的:或重建某个处理模式,或改善提效某个流程。
软件产品从概念提出的那一刻,就进入了软件生命周期。
软件产品从简单的概念开始,经历需求、分析、设计、实现、部署、运维多个阶段。
软件产品从产生到消亡,即为软件生命周期,Software Development Life Cycle,SDLC。
2. 软件生命周期模型
软件生命周期模型的发展伴随着软件复杂度的不断变化,体现了软件从业者对软件过程的期望:高质量、按计划交付。虽然软件生命周期的定义大的阶段已无太大变化,但软件开发生命周期模型 ,即软件开发过程的发展却在不断变化和发展中,以适应软件项目对需求、规模、质量、效率更新的要求。
常见的软件生命周期模型包括瀑布模型、V模型、W模型;增量、迭代模型和敏捷开发模型。
1)瀑布模型 Waterfall Model
其他所有的模型都是基于瀑布的演变,适用不同条件、类型的开发项目需要。
2)V 模型 V Model
3)W 模型 W Model
4)X模型 X Model
注:标准X模型来自网络
5)H模型 H Model
注:标准H模型来自网络
6)螺旋模型 (来源:网络)
强调过程迭代。适合于规模大、风险大、需求不明确的项目。将一个项目分解为多个小的迭代,每个迭代执行标准开发过程,强化项目计划、风险评估活动,确认项目迭代执行的必要性和准确性,对项目团队成员的计划和风险识别能力要求较高。
7)增量模型 和 迭代模型
从标准开发过程强调的阶段、顺序大而全执行,转变为小而美的阶段活动,通过一个个的小活动逐步完成整个开发目标。迭代和增量模型强调对软件开发过程变化的适应能力,以及提升对软件开发过程风险的控制能力。迭代模型是,RUP(Rational Unified Process, Rational统一开发流程)重点强调的开发过程模型。
以下表格比较了迭代模型和增量模型的区别。
软件项目S包含a,b,c,d,e5个模块 | ||
增量模型 | 按模块逐步完成软件开发目标 | * 按模块a->b->c->d->e的顺序,按计划逐步完成每一个模块的开发,最终完成程序的集成。 * 每个阶段完成,代表某个模块开发工作的完成,但实际的软件系统并不能运行,看不到整体开发完成情况。 |
迭代模型 | 按不同的开发工作和功能逐步完成 | * 按模块a,b,c,d,e的设计、基本功能、测试完成第一轮,交付可执行的程序,满足基本框架;随后不断在原有基础上完成更复杂的功能实现以及功能细节。 * 每一个交付都是可执行的程序,可以看到未来程序的基本面貌但不是全部,随着迭代的深入,最终的程序被不断完善和交付。 |
8)敏捷开发模型 -- 迭代开发
> 敏捷开发模型强调对变化的适应性:拥抱变化。
> 注重沟通:与客户的沟通,开发团队的内部沟通,强调与客户工作在一起。
> 关注价值输出:重视客户需求,做最有价值的事情;强调可执行的程序展示;轻文档、轻流程,关注变化、适应变化,输出对内部和外部最有价值的产出。
Scrum开发模型(来源:网络)
参考:
* 读书笔记:《Scrum精髓 - 敏捷转型指南》_Rolei_zl的博客-CSDN博客_scrum精髓
* 读书笔记:《Scrum 敏捷软件开发》_Rolei_zl的博客-CSDN博客_scrum敏捷软件开发
* 读书笔记:《Scrum实战 故事 模型与成功秘诀》_Rolei_zl的博客-CSDN博客
任何游戏都有规则:了解游戏规则,然后开始游戏并做到最好;搞懂“游戏规则”,可以让你比别人更快的成长;打破游戏规则的人,永远是最清楚游戏规则的人。
以上是关于软件测试 -- 入门 2 软件生命周期与测试的主要内容,如果未能解决你的问题,请参考以下文章
软件测试常见概念(软件生命周期软件开发模型软件质量模型软件缺陷管理软件测试概述软件测试分类软件测试与软件开发软件测试原则黑盒测试方法白盒测试方法性能测试)
软件测试常见概念(软件生命周期软件开发模型软件质量模型软件缺陷管理软件测试概述软件测试分类软件测试与软件开发软件测试原则黑盒测试方法白盒测试方法性能测试)