- 
开发流程概览(基于瀑布模型) 以经典的瀑布模型(Waterfall)*为基础解释。 - 主要阶段:- a. 需求定义 (Requirement Definition):- 目的: 明确客户/用户的需求和期望,并将其文档化为系统需求。
- 关键活动: 反复与客户沟通,确保开发方准确理解用户要求,消除理解偏差。
- 重要性: 此阶段的沟通不足会直接导致项目失败。有疑问必须沟通到完全理解。
 
- b. 设计 (Design):- 目的: 基于确定的需求,编写各种设计文档。
- 重要性: 后续实现阶段将依据这些设计文档进行,是至关重要的阶段。
- 产出文档 (示例): 系统设计书、架构设计书、详细设计书、数据库设计书、接口设计书、UI设计书、安全设计书、测试设计书等。
 
- c. 实现 (Implementation/Coding):- 目的: 实际编写代码。
- 工程师印象: 很多人以为工程师主要时间在写代码(但实际在其他阶段如设计、测试、沟通上花的时间可能更多)。
 
- d. 测试 (Testing): (本文重点)- 目的: 对实际完成的系统进行测试。
- 关键点: 测试包含多种类型,都需要执行。
- 后续: 测试完成且质量达标后,系统方可发布。
 
- e. 维护与运维 (Maintenance & Operation):- 目的: 系统发布后并非结束,此阶段处理系统故障等问题。
 
 
- a. 需求定义 (Requirement Definition):
 
- 主要阶段:
- 
测试的种类与目的 (核心内容) - 这部分详细解释了开发流程中“测试”阶段包含的不同层级测试:- a. 单元测试 (Unit Test - UT):- 评估范围: 函数/方法 (Function/Method) 级别。
- 目的: 测试编写的单个函数/方法是否按照设计规格(spec)执行预期的行为。
- 执行方式: 通常通过编写测试代码来自动化执行。虽然不是绝对必须,但进行UT有助于早期发现缺陷。
- 执行者: 通常是编写代码的开发者本人同时编写并执行单元测试。
 
- b. 模块测试 (Module Test - MT):- 评估范围: 单个模块 (Module)。
- 目的: 测试每个独立的模块是否按照设计规格正确运行。开发通常是分模块进行的,各模块开发完成后再集成成完整系统。
- 执行者: 通常由负责该模块的开发团队执行(因为一般按模块划分开发团队)。
 
- c. 集成测试 (Integration Test - IT 或 Joint Test - JT):- 评估范围: 多个模块集成后的行为。
- 目的: 测试将各个模块组合(集成)后,整个子系统或系统能否正常工作。重点是验证模块间接口(Interface)和交互(Interaction)是否如预期。
- 与MT区别: MT只保证单个模块内部行为正确。IT确保模块A传给模块B的数据格式正确、模块B能正确处理模块A的输出、模块间的调用关系无误等。
 
- d. 系统测试 (System Test - ST):- 评估范围: 整个系统。
- 目的: 确认构建完成的整个系统是否满足用户(客户)的需求。其评价视角与IT不同。
- 依据: 基于需求定义阶段确定的用户需求和规格进行测试。
- 关注点: 系统作为一个整体,其功能、性能、安全性、可靠性等是否达到用户要求。
 
- e. 验收测试 (Acceptance Test - UAT):- 评估范围: 整个系统,从最终用户/客户视角。
- 目的: 这是交付前的最终评估阶段。通常由用户/客户亲自执行(或密切参与),确认系统是否符合他们的要求和期望。
- 时机: 系统部署(上线)前的最后一步。
 
 
- a. 单元测试 (Unit Test - UT):
 
- 这部分详细解释了开发流程中“测试”阶段包含的不同层级测试:
关键点总结
- 流程基础: 以瀑布模型为例介绍开发阶段:需求 -> 设计 -> 实现 -> 测试 -> 发布 -> 运维。
- 测试是核心阶段: 测试不是单一活动,而是一系列层级化、目标明确的活动。
- 测试层级与目的:- 单元测试 (UT): 验证最小代码单元(函数/方法)的正确性。(开发者做)
- 模块测试 (MT): 验证单个独立模块的正确性。(模块开发团队做)
- 集成测试 (IT/JT): 验证模块间接口和交互的正确性。(保证模块拼装没问题)
- 系统测试 (ST): 验证整个系统是否满足用户需求规格。(验证系统整体达标)
- 验收测试 (UAT): 由用户最终确认系统满足其业务需求。(用户签字认可)
 
- 循序渐进: 这些测试层级通常是自底向上进行的(UT->MT->IT->ST->UAT),每一层为上一层奠定基础,确保问题尽早被发现。