系统测试
1. 什么是系统测试?
系统测试是在单元测试、集成测试完成之后,软件系统被构建起来的基础上,在系统层级上进行的测试。
系统测试可进一步分为:
- 功能测试
- 非功能测试
2. 系统功能测试测什么?
系统功能测试的范畴很广,包括但不局限于:
| 测试内容 | 说明 |
|---|---|
| 功能 (Function) | 系统功能是否正确实现 |
| 逻辑 (Logic) | 业务逻辑是否正确 |
| 接口 (Interface) | 内部/外部接口是否正确 |
| 界面 (UI) | 用户界面是否符合需求 |
| 数据 (Data) | 数据处理是否正确 |
| 操作 (Operation) | 操作流程是否顺畅 |
| 平台 (Platform) | 平台兼容性 |
不同的应用系统其功能测试内容的差异很大,侧重点不同。
3. 系统功能测试的基本思路
- 需求分析 - 理解系统需求和业务规则
- 测试用例设计 - 根据需求设计测试用例
- 测试环境准备 - 搭建符合生产环境的测试环境
- 测试执行 - 执行测试用例,记录结果
- 缺陷跟踪 - 记录和跟踪发现的问题
- 测试报告 - 汇总测试结果,输出测试报告
4. 系统功能测试的具体方法
4.1 IDBT (Input Domain Based Testing)
基于输入域的测试 - 黑盒测试
常用方法:
- 等价类划分
- 边界值分析
- 两两组合 (Pairwise)
- 随机测试
4.2 CBT (Code-Based Testing)
基于代码的测试 - 白盒测试
常用方法:
- 基于控制流的标准
- 基于数据流的标准
- CBT参考模型
4.3 FBT (Fault-Based Testing)
基于故障的测试
常用方法:
- 故障模型
- 错误猜测法
- 变异测试
4.4 UBT (Usage-Based Testing)
基于使用的测试 - 黑盒测试
常用方法:
- 操作配置 (Operational Profile)
- 用户观察启发
4.5 MBT (Model-Based Testing)
基于模型的测试
常用方法:
- 决策表
- 有限状态机
- 形式化验证
- TTCN-3
- 工作流模型
4.6 TBNA (Technology-Based Testing)
基于技术的测试 - 应用领域
适用领域:
- OOS (面向对象软件)
- Web应用
- 实时系统 (Real-time)
- SOA (面向服务架构)
- 嵌入式系统 (Embedded)
- 安全关键系统 (Safe-critical)
5. 系统测试与其他测试的区别
| 测试阶段 | 测试重点 | 测试人员 |
|---|---|---|
| 单元测试 | 最小单位(函数/方法) | 开发人员 |
| 集成测试 | 模块间的接口和交互 | 开发人员/测试人员 |
| 系统测试 | 整个系统的功能和业务 | 测试人员 |
| 验收测试 | 满足用户需求 | 用户/测试人员 |
6. 系统测试的执行流程
需求评审 → 测试计划 → 测试用例设计 →
用例评审 → 测试环境搭建 → 测试执行 →
缺陷管理 → 测试报告 → 测试结束
7. 系统测试的关注点
- 功能完整性 - 所有功能是否都已实现
- 功能正确性 - 功能输出是否符合预期
- 业务流程 - 业务流程是否正确
- 数据处理 - 数据存取是否正确
- 用户界面 - 界面是否符合用户习惯
- 错误处理 - 异常情况处理是否合理
- 兼容性 - 与其他系统的兼容性
- 可追溯性 - 测试用例与需求的对应关系