测试类型
1. 功能测试#
按「测什么目标」划分测试类型,是排期与资源分配的基本框架。本文概览各
类型的目标与方法,细节在对应专题文档展开(性能见「性能与接口测试」
「压力测试与稳定性测试」,安全见「安全测试」,层级归属见「测试层级」)。
先给一张总览表:
| 类型 | 回答的问题 | 主要手段 |
|---|
| 功能测试 | 功能对不对 | 黑盒方法设计用例 |
| 性能测试 | 快不快、扛不扛得住 | 压测工具 + 分位值指标 |
| 安全测试 | 恶意输入面前守不守得住 | SAST/DAST/渗透 |
| 兼容性测试 | 换个环境还正常吗 | 多浏览器/设备矩阵 |
| 回归测试 | 改完之后还正常吗 | 自动化套件 |
1.1 定义#
验证软件功能是否符合需求规格说明。
1.2 黑盒测试方法#
| 方法 | 描述 |
|---|
| 等价类划分 | 将输入分为有效/无效等价类 |
| 边界值分析 | 测试边界条件 |
| 决策表 | 组合条件测试 |
| 状态转换 | 状态变迁测试 |
| 用例测试 | 基于用例场景 |
1.3 功能测试流程#
需求分析 → 测试用例设计 → 测试执行 → 缺陷报告 → 回归验证
2. 性能测试#
2.1 类型#
| 类型 | 描述 | 指标 |
|---|
| 负载测试 | 正常负载下的表现 | 响应时间、吞吐量 |
| 压力测试 | 超出负载的表现 | 系统极限 |
| 稳定性测试 | 长时间运行的稳定性 | 内存泄漏 |
| 并发测试 | 多用户同时访问 | 并发数 |
| 容量测试 | 最大处理能力 | 最大用户数 |
2.2 关键指标#
| 指标 | 描述 | 目标 |
|---|
| 响应时间 | 请求到响应的时间 | < 200ms (P95) |
| 吞吐量 | 单位时间处理量 | QPS/TPS |
| 并发用户 | 同时在线用户数 | 根据业务 |
| 错误率 | 失败请求占比 | < 0.1% |
| CPU 使用率 | 服务器 CPU 占用 | < 70% |
| 内存使用率 | 服务器内存占用 | < 80% |
2.3 性能测试流程#
1. 需求分析 → 确定性能指标
2. 测试设计 → 设计场景
3. 环境搭建 → 模拟生产环境
4. 脚本开发 → 编写测试脚本
5. 执行测试 → 运行并监控
6. 结果分析 → 分析瓶颈
7. 优化验证 → 优化后复测
3. 安全测试#
3.1 测试内容#
| 类型 | 描述 |
|---|
| 漏洞扫描 | 自动化扫描已知漏洞 |
| 渗透测试 | 模拟攻击者入侵 |
| 认证测试 | 验证认证机制 |
| 授权测试 | 验证权限控制 |
| 数据加密 | 验证加密实现 |
| 会话管理 | 验证会话安全 |
3.2 OWASP 测试清单#
| 类别 | 测试项 |
|---|
| 注入 | SQL/XSS/命令注入 |
| 认证 | 弱密码/会话固定 |
| 授权 | 越权/IDOR |
| 配置 | 默认配置/信息泄露 |
| 加密 | 弱加密/证书问题 |
4. 兼容性测试#
4.1 测试维度#
| 维度 | 示例 |
|---|
| 浏览器 | Chrome, Firefox, Safari, Edge |
| 操作系统 | Windows, macOS, Linux, iOS, Android |
| 分辨率 | 1920×1080, 1366×768, 375×812 |
| 设备 | PC, 平板, 手机 |
4.2 浏览器兼容性#
| 浏览器 | 版本策略 |
|---|
| Chrome | 最近 2 个主版本 |
| Firefox | 最近 2 个主版本 |
| Safari | 最近 2 个主版本 |
| Edge | 最新版 |
4.3 响应式测试断点#
| 断点 | 设备 |
|---|
| < 576px | 手机 |
| 576-768px | 平板竖屏 |
| 768-992px | 平板横屏 |
| 992-1200px | 小桌面 |
| > 1200px | 大桌面 |
5. 其他测试类型#
5.1 回归测试#
验证修改后的代码没有引入新缺陷。
| 策略 | 描述 |
|---|
| 全量回归 | 执行所有测试用例 |
| 选择性回归 | 执行受影响的用例 |
| 自动化回归 | CI/CD 自动执行 |
5.2 冒烟测试#
验证基本功能是否正常,决定是否进行深入测试。
5.3 探索性测试#
不预先编写用例,基于经验和直觉进行探索式测试。
| 特点 | 描述 |
|---|
| 学习 | 了解系统行为 |
| 设计 | 即时设计测试 |
| 执行 | 执行并观察 |
| 反馈 | 根据结果调整 |
5.4 无障碍测试#
| 标准 | 描述 |
|---|
| WCAG 2.2 | Web 无障碍标准(2023 年发布的现行版本,2.1 仍在广泛引用) |
| 键盘导航 | 仅用键盘操作 |
| 屏幕阅读器 | 语音辅助 |
| 颜色对比度 | 4.5:1 (AA) |
| ARIA | 无障碍标签 |
5.5 本地化/国际化测试#
| 测试项 | 描述 |
|---|
| 语言翻译 | 界面文字正确 |
| 日期格式 | 各地区格式 |
| 货币符号 | 正确显示 |
| 字符编码 | Unicode 支持 |
| 布局适配 | 文字长度变化 |
6. 测试类型选择矩阵#
| 项目阶段 | 推荐类型 |
|---|
| 开发期 | 单元+集成 |
| 发布前 | 功能+性能+安全 |
| 发布后 | 监控+回归 |
| 迭代中 | 冒烟+回归+探索 |
选择矩阵的用法是「每阶段至少做哪几类」,不是「每类只在对应阶段做」:
性能与安全前移到开发期发现问题,修复成本远低于发布前才暴露。
- 初学者要点:功能测试按黑盒方法设计用例;性能看响应时间分位值与吞吐
(P95 < 200ms 只是常见的通用参考线,真实目标应来自业务需求);回归
与冒烟是每个迭代的基本盘。
- 进阶注意:类型划分是「目标」维度,与「层级」维度(单元/集成/E2E)
正交——同一个功能可以在多个层级、以多种类型被测;无障碍、本地化
属于容易被排期遗忘的非功能项,纳入发布检查单而不是事后补救。