📖 前言:在软件开发过程中,理解和应用合适的开发模型与测试模型至关重要。本文将详细介绍几种常见的开发模型,如瀑布模型、螺旋模型、增量模型和敏捷过程,以及测试模型如V模型和W模型。
目录
- 🕒 1. 开发模型
- 🕘 1.1 瀑布模型(Waterfall Model)
- 🕘 1.2 螺旋模型(Spiral Model)
- 🕘 1.3 增量模型和迭代模型
- 🕘 1.4 敏捷过程(Agile Process)
- 🕒 2. 测试模型
- 🕘 2.1 V模型
- 🕘 2.2 W模型(双V模型)
🕒 1. 开发模型
🕘 1.1 瀑布模型(Waterfall Model)
注:这里的“测试”指的是所有的测试活动
特点:线性结构,每个阶段只执行一次,每个阶段做什么,产出什么非常清晰,是其他模型的基础框架。
缺点:
- 测试后置:
① 遗留在前期各阶段的风险,直到测试阶段才被发现,导致项目需要大规模返工,错失了早期修复的机会。
② 测试活动必须有足够的时间,否则可能导致测试不完全,从而使缺陷暴露给用户(产品质量低)。 - 周期过长,产品推向市场的时间延迟,用户需等待很长时间才能看到和使用产品;这可能导致需求或功能变得过时。
使用场景:需求固定的小项目。
🕘 1.2 螺旋模型(Spiral Model)
- 螺旋模型拉直之后就相当于瀑布模型,螺旋模型中增加了风险分析和原型。
- ② 螺旋模型需要招聘专业的风险分析人才。
特点:螺旋模型中增加了风险分析和原型。
缺点:
- 项目中可能存在的风险性与风险管理人员的技能水平有直接的关系。
- 需要人员、资金、时间的增加和投入,可能会导致项目的成本过高。
使用场景:规模庞大、复杂度高、风险大的项目尤其适合。
🕘 1.3 增量模型和迭代模型
- 增量模型中把大的需求划分成一个个可以独立开发上线的功能。
- 增量模型在开发上线各功能时是可以并行开发的。
迭代模型(反复求精):迭代模型在开发上线软件的各功能时,先开发个功能的基础版本,然后再在基础版本上不断进行功能的完善。
🕘 1.4 敏捷过程(Agile Process)
- 敏捷模型不强调流程,而是更多地思考如何去激发开发人员的工作热情。
- 敏捷模型的考核标准是:可交付的软件。
- 特点:敏捷模型拥抱变化
🔎 敏捷软件开发宣言
- 个体与交互重于过程和工具: 要注重人与人之间的交流沟通。
- 可用的软件重于详尽的文档: 不过分关注过程中的文档,更重视是否能交付可用的软件。
- 客户协作重于合同谈判:用户需求多变,可能随时间改变,因此应重视与客户的沟通和协调,确保及时进行修改和更新。
- 响应变化重于遵循计划:要能够灵活应对变化。
- 虽然上述比较中的后者也有其价值,但我们更加重视前者。
总结:敏捷模型的特点:轻流程、轻文档、重目标、重产出。
敏捷开发有很多种方式,其中Scrum是比较流行的一种。
Scrum敏捷软件开发架构图:
- 三个关键角色:产品经理、项目经理和研发团队。
- 产品经理(Product Owner):负责整理用户故事(User Story),界定其商业价值,进行优先级排序,制订产出列表(Product Backlog),并对产品结果负责。
- 项目经理(Scrum Master):负责组织各种会议,协调项目进度,为研发团队提供支持。
- 研发团队(Team):由具备不同技能的成员构成,通过密切合作,实现每个迭代的目标,交付最终产品。
- 五个重要会议:
发布计划会议(Product Backlog)、迭代计划会议(Sprint Planning Meeting)、每日站会(Daily Stand Up)、演示会议(Review Meeting)、回顾会议(Retrospective Meeting)。
- 发布计划会议:产品经理负责整理User Story,进行估算和排序,会议的结果是确定本次迭代要完成的Story列表(Sprint Backlog)。
- 迭代计划会议:项目团队将每个Story细分为具体任务,标准是完成所有任务以实现该Story,每项任务都指定明确的负责人,并进行初步工时估计。
- 每日站会:Scrum Master每天组织站立会议,团队成员汇报昨日所做、今日计划以及遇到的问题。
- 演示会议:迭代结束后,举行演示会议,邀请相关人员参加,团队展示本次迭代的成果。会中收集的反馈由产品经理整理,转化为新的Story。
- 回顾会议:项目团队总结本次迭代,识别不足之处,制定改进措施,以便在下一次迭代中持续改进。
🔎 Scrum 是什么?概念、定义、实施指南
🕒 2. 测试模型
🕘 2.1 V模型
- 用户需求:PM将用户需求收集形成软件需求
- 需求分析与系统设计:验证需求是否正确,确定编程语言与框架
- 概要设计:项目结构如何设计
- 详细设计:每个接口,涉及那些库表,涉及哪些任务
- 单元测试:测试每一个方法/函数/接口
- 集成测试:将许多的方法,集成到一起测试
- 系统测试:模块与模块之间没有影响
- 验收测试:验收的人、产品、运营
特点:左侧是开发,右侧是测试,类似于瀑布模型
优点:测试被划分成许多类型
缺点:测试人员介入太晚,发现问题时机太晚
🕘 2.2 W模型(双V模型)
优点:开发人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的,不能拥抱变化,不能适用于敏捷
OK,以上就是本期知识点“开发模型与测试模型”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页