测试的概念:
验证软件的特征是否满足用户的需求,(提高用户的满意度)
虽然软件测试人员主要的职责时保障产品的质量,但是软件的质量并不是只由测试人员保障!项目组(产品经理,前端开发,后端开发,测试,交互,设计)均为产品质量负责。
软件开发的流程:
需求分析-> 计划-> 设计-> 编码-> 测试-> 运行维护
需求分析:分析用户需求是否合理,分别从市场需求,技术等方面进行分析,输出需求等文档。
计划:对成立的需求执行计划,多长时间内完成该需求,每段时间具体完成哪些功能,输出计划等文档。
设计:将需求细化成一个个任务,团队成员各司其职领取任务并进行技术设计(如何进行架构设计,设计哪些接口,采用了什么技术)
编码:开发人员参考需求文档,设计文档,交互图等文件可进行代码的编写。
测试:测试人员需要介入到软件的测试中,参考测试用例对软件进行测试。输出测试用例,测试设计与计划,测试报告等文档。
常见开发模型
1. 瀑布模型(Waterfall Model)
=> 同软件的生命周期基础流程
特点:线性顺序开发,阶段严格划分,前一个阶段完成后才能进入下一个阶段。
适用场景:需求明确、变更少的传统项目(如政府系统、银行核心系统)。
流程:start → 需求分析 → 计划 → 设计 → 编码 → 测试 → 部署 → 维护 → end
优点:结构清晰,文档完整,适合固定需求的项目。
缺点:可以运行的产品很迟才能被看到,可能导致需求/功能过时。 测试后置:1.前面各阶段遗留的风险推迟到测试阶段才能被看到,导致项目大面积返工,失去了及早修复的机会,后期发现问题修复成本高。
2.必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户。
2. 螺旋模型(Spiral Model)
=> 各个阶段都引入了风险分析+原型
特点:结合瀑布模型和迭代模型,强调风险管理,适用于高风险项目。
适用场景:大型复杂系统(如航空航天、军事软件)。
流程(每轮螺旋包含4个阶段):
1. 确定目标与风险分析 2. 开发与测试(原型) 3. 用户评估 4. 规划下一轮迭代
优点:1.强调严格的全过程风险管理 2.强调各开发阶段的质量 3.风险驱动,适合关键系统。
缺点:1.成本高,管理复杂。 2.在螺旋模型中需要额外招聘专业的风险分析人才,各阶段是否遗留问题完全取决于风险分析人员,这跟风险分析人员的技术技能直接挂钩。
3. 增量模型(Incremental Model)
特点:分多个增量(模块)逐步交付,每个增量经历完整的开发周期。
适用场景:需求可拆分、希望尽早交付部分功能的项目。
流程:增量1(需求→设计→编码→测试)→ 增量2 → ... → 最终产品
优点:可提前交付部分功能,降低风险。
缺点:需要良好的架构设计,否则后期集成困难。
4. 迭代模型(Iterative Model)
特点:通过多次迭代完善产品,每次迭代都是一个可运行的版本。
适用场景:需求不明确,需要逐步探索的项目(如创新产品)。
流程:初始版本(基本功能)→ 迭代1(优化)→ 迭代2 → ... → 最终版本
优点:灵活适应需求变化,早期用户反馈可优化产品。
缺点:管理复杂,文档可能不够完善。
5. 敏捷模型(Agile Model)
=>促进项目的快速完成
特点:以用户需求为核心,小步快跑,持续交付可工作的软件。
适用场景:需求变化快、需要快速响应的项目(如互联网产品)。
常见方法:
-
Scrum(冲刺Sprint、每日站会、产品待办列表)
-
Kanban(可视化任务流,限制在制品WIP)
-
流程:需求拆分 → Sprint计划 → 开发&测试 → 评审&回顾 → 下个Sprint
优点:灵活适应变化,快速交付价值。
缺点:依赖团队自律,文档可能较少。
四个特点:轻文档,轻流程,重目标,重产出。
一、Scrum的三大核心角色
1. 产品负责人(Product Owner, PO)
职责:
-
代表客户/利益相关者,负责产品方向和商业价值。
-
维护产品待办列表(Product Backlog),明确需求优先级。
-
在Sprint评审会上验收成果,决定是否发布。
关键能力:
✔ 精通业务需求,能权衡优先级。
✔ 与开发团队紧密沟通,避免需求模糊。
2. Scrum Master(项目经理)
职责:
-
确保团队正确执行Scrum流程,移除障碍(如资源不足、沟通问题)。
-
保护团队免受外部干扰(如临时加需求)。
-
引导每日站会、评审会、回顾会,促进持续改进。
关键能力:
✔ 精通Scrum规则,擅长协调和 facilitation(引导)。
✔ 服务型领导,而非传统管理者。
3. 开发团队(Development Team)
职责:
-
跨职能团队(开发、测试、UI/UX等),通常5~9人。
-
自组织分配任务,共同完成Sprint目标。
-
每日同步进度,承诺交付可工作的增量。
关键原则:
✔ 无层级划分,集体对结果负责。
✔ 全职能覆盖,避免依赖外部团队。
二、Scrum的五个重要会议
scrum的基本流程:
1)产品负责人整理用户故事,形成produce backlog。
2)发布计划会议:product owner负责讲解用户故事,对其进行估算和排序,发布计划会议的产出是制定出这一期迭代要完成的story列表,sprint backlog。
3)迭代计划会议:项目团队对每一个story进行任务分解,标准为完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
4)每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么,今天计划做什么,遇到了哪些问题。
5)演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果,po整理反馈,形成新的story。
6)回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的结果。