CS335 L3 敏捷软件开发 QA 复习提纲
CS335 L3 敏捷软件开发 QA 复习提纲
1. 敏捷基础与演进
问: 软件过程经历了怎样的演进?当前哪种过程最流行?
答: 经历了从瀑布模型(预测式)到增量开发、集成与配置(面向重用),再到迭代式过程,最终发展到敏捷过程。目前敏捷过程最为流行。
问: 请列举几种常见的敏捷过程方法。
答: Scrum, 极限编程 (XP), 看板 (Kanban), 精益 (Lean), 水晶方法 (Crystal), Scrumban, RAD, DSDM, Agile RUP 等。
问: 根据2017年的调查,哪种敏捷方法采用率最高?
答: Scrum。
问: 敏捷软件开发宣言的核心价值观是什么?(四个对比)
答:
- 个体和互动 高于 流程和工具
- 可工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
问: 请简述敏捷方法的五个核心原则(PPT中列出的)。
答: 客户协作、拥抱变化、增量交付、保持简洁、以人为本(而非过程)。
2. 极限编程 (XP - eXtreme Programming)
问: 什么是极限编程 (XP)?
答: XP 是一种软件开发风格,专注于卓越地应用编程技术、清晰沟通和团队合作。
问: XP 包含哪三个层次?
答: 价值观 (Values)、原则 (Principles)、实践 (Practices)。
问: XP 的核心价值观是什么?
答: 沟通、简洁、勇气、反馈、尊重。
问: 请列举几个 XP 的原则。
答: 人性化、经济性、互惠互利、改进、多样性、反思、自相似性、流动、机遇、冗余、失败、质量、小步快跑、承担责任。
问: XP 认为详尽的内部文档违反了哪个原则?
答: 互惠互利 (Mutual Benefit)。
问: XP 的基本工作流程是怎样的?(涉及故事、估算、周期)
答: 用户/产品经理编写故事 -> 程序员估算(必要时拆分或用 Spike 探索) -> 决定季度周期主题 -> 选择周周期故事(含缓冲任务) -> 迭代执行周周期 -> 迭代执行季度周期。
问: 什么是用户故事 (User Story)?它的标准模板是什么?
答: 用户故事是从最终用户角度对软件特性的一般性描述,是敏捷中最小的工作单元。模板:“作为一个 <角色>, 我想要 <活动>, 以便 <价值>”。
问: XP 中的“速率 (Velocity)”指的是什么?由谁决定?
答: 指的是一个迭代周期(如周周期)内团队能完成的用户故事点数。通常由追踪者 (Tracker) 或类似角色根据历史数据和当前情况决定。
问: XP 程序员的典型日常工作流程包含哪些关键实践?
答: 站会 -> 结对编程与快速设计 -> 测试先行编程 -> 编码 -> 重构 -> 现场客户问答 -> 持续集成(含十分钟构建)-> 必要时丢弃 -> 返回结对设计(若有时间)。
问: 请列举几个 XP 的核心实践。
答: 结对编程、测试先行编程、重构、持续集成、十分钟构建、现场客户、用户故事、周/季度周期、缓冲任务、坐在一起、整个团队、信息化工作空间、充沛精力工作。
问: XP 中有哪些主要角色?
答: 程序员、产品经理、用户、测试员、追踪者、教练、项目经理、交互设计师、架构师等。
3. Scrum
问: 什么是 Scrum?
答: Scrum 是一个框架,用于解决复杂自适应问题,并高效、创造性地交付最高价值的产品。
问: Scrum 基于哪三大经验主义支柱?
答: 透明性 (Transparency)、检视 (Inspection)、适应 (Adaptation)。
问: Scrum 框架包含哪些主要组成部分?
答: Scrum 价值观、团队、事件、工件、规则。
问: Scrum 的五个核心价值观是什么?
答: 承诺 (Commitment)、勇气 (Courage)、专注 (Focus)、开放 (Openness)、尊重 (Respect)。
问: 一个典型的 Scrum 团队由哪些角色组成?
答: 产品负责人 (Product Owner)、开发团队 (Development Team)、Scrum Master。
问: Scrum 有哪四个主要的正式事件?
答: Sprint 规划会议 (Sprint Planning)、每日 Scrum 会议 (Daily Scrum)、Sprint 评审会议 (Sprint Review)、Sprint 回顾会议 (Sprint Retrospective)。(Sprint 本身也是一个包含这些事件的容器事件)
问: Scrum 的主要工件有哪些?
答: 产品待办列表 (Product Backlog)、Sprint 待办列表 (Sprint Backlog)、(产品)增量 (Increment - 虽然PPT没直接列为工件,但它是Sprint的产出)。
问: 什么是产品待办列表 (Product Backlog)?由谁负责管理?
答: 它是产品所有需求(特性、功能、修复、增强等)的唯一来源,是一个动态变化的列表。由产品负责人负责管理其内容、可用性和排序。
问: 什么是 Sprint 待办列表 (Sprint Backlog)?它包含什么?
答: 它是为 Sprint 选择的产品待办列表项,以及交付产品增量和实现 Sprint 目标的计划。由开发团队在 Sprint 规划会议上创建,并由开发团队在 Sprint 期间管理和修改。
问: Sprint 规划会议的目标是什么?产出是什么?
答: 目标是规划 Sprint 期间要完成的工作,确定 Sprint 目标和如何实现。产出是 Sprint 待办列表。
问: Sprint 的主要规则有哪些?
答: 团队自组织工作;Sprint 目标不变;质量不降低;时长固定(通常不超过一个月);只有 PO 能取消 Sprint。
问: 每日 Scrum 会议的目的是什么?讨论哪三个问题?时长限制?
答: 目的是检视进展、规划当天工作。讨论:昨天做了什么?今天要做什么?有无障碍?时长限制为 15 分钟。
问: Sprint 评审会议的目的是什么?谁参加?产出是什么?
答: 目的是检视 Sprint 完成的工作(增量),获取反馈,并调整产品待办列表。Scrum 团队和利益相关者参加。产出是修订后的产品待办列表。
问: Sprint 回顾会议的目的是什么?产出是什么?
答: 目的是反思上一个 Sprint 的过程(人员、关系、工具、流程),识别改进点并制定实施计划。产出是改进计划。
问: Scrum Master 的主要职责是什么?
答: 帮助团队理解和实践 Scrum,引导事件,移除障碍,指导团队,帮助 PO,规划 Scrum 实施等(服务于 PO、开发团队和组织)。
4. XP 与 Scrum 的比较
问: XP 和 Scrum 有哪些共同点?
答: 都基于敏捷原则,采用迭代增量开发,以团队为中心,强调客户协作和响应变化。
问: XP 和 Scrum 的主要区别体现在哪些方面?
答:
- 焦点: Scrum 更侧重项目管理框架(角色、事件、工件),XP 更侧重工程实践(TDD, 结对编程等)。
- 文档: XP 通常比 Scrum 更轻量化,更依赖代码和沟通。
- 灵活性: XP 的实践可以更灵活地选用,Scrum 的框架相对固定。
5. 用户故事与燃尽图
问: 如何编写一个标准的用户故事?
答: 使用模板:“作为一个 <用户类型>, 我想要 <某个目标> 以便 <某个原因>”。
问: 什么是燃尽图 (Burndown Chart)?它在 Scrum 中用于什么?
答: 燃尽图是一种可视化工具,用于展示剩余工作量随时间的变化。在 Scrum 中,常用于监控 Sprint 期间的进度,显示 Sprint 待办列表中剩余的故事点数或任务数量。
问: 如何解读燃尽图上的实际工作线与理想线的关系?
答: 实际线在理想线下方表示进度超前,在理想线上方表示进度落后。
6. DevOps
问: 什么是 DevOps?它的主要驱动力是什么?
答: DevOps 是开发 (Development) 和运维 (Operations) 的结合。主要驱动力是减少需求变更、高度关注测试与质量、实现更快的交付周期。
问: DevOps 依赖什么来实现其目标?
答: 尽可能依赖自动化工具(例如 CI/CD)。
7. 敏捷方法的局限性
问: 敏捷方法可能不适用于哪些场景?
答: 嵌入式系统工程、大型复杂系统开发。
问: 在实践中,敏捷方法可能面临哪些问题?
答:
- 与大型企业严格的合同模式可能不兼容。
- 在软件维护阶段的应用不如新开发阶段普遍。
- 对于大型、地理分布的团队,管理和协调难度大,有效性可能降低。
浙公网安备 33010602011771号