测试工程概念
目录
好的,我帮你把这些测试概念和覆盖率分类整理成一个清晰的体系,并给出具体例子。我们可以从两个维度来看:测试类型(功能/非功能/UI/API) 和 覆盖率指标(专业 QA 关注的覆盖率)。
一、按测试类型分类
| 类型 | 说明 | 覆盖点 / 举例 |
|---|---|---|
| User Story / 功能测试 | 针对用户需求和业务功能 | 验证功能是否满足用户故事。 例:用户能成功注册账号并收到激活邮件 |
| 非功能测试 (NFR, Non-Functional Requirements) | 验证系统在性能、可靠性、安全等方面的质量 | 性能覆盖:压力测试、负载测试、吞吐量覆盖等 例:系统在 1000 并发下响应时间 < 1s 可靠性覆盖:崩溃率、重启恢复能力等 例:服务在连续运行 7 天不崩溃 安全测试覆盖:权限验证、SQL 注入、XSS 攻击等 例:未登录用户不能访问敏感接口 |
| API 测试 (AP 测试) | 针对服务接口进行验证 | 验证请求/响应、状态码、错误处理、边界值 例:POST /user 接口参数缺失返回 400 |
| UI 测试 | 验证用户界面交互 | 界面元素、点击流程、可视化结果 例:点击“提交”按钮后弹窗显示“成功提交” |
二、专业 QA/测试工程师关注的覆盖率分类
这些覆盖率通常用于衡量测试的全面性和质量。可以和上面类型结合使用。
| 覆盖率类型 | 说明 | 举例 |
|---|---|---|
| 决策覆盖 (Decision Coverage / Branch Coverage) | 每个判断(if/else)都至少被执行一次 | if (x > 0) {...} else {...} 两条分支都要测试 |
| 条件覆盖 (Condition Coverage) | 每个布尔条件至少取 true 和 false | if (x>0 && y<5) → x>0 true/false, y<5 true/false 都要测试 |
| 边界覆盖 (Boundary Coverage) | 测试边界值和临近值 | 输入范围 1~100 → 测试 0,1,2,99,100,101 |
| 等价类覆盖 (Equivalence Class Coverage) | 将输入分成有效/无效等价类,每类选一个代表测试 | 年龄输入 0~150 → 有效类 1~150,无效类 <0 或 >150 各测试一次 |
| 场景覆盖 (Scenario Coverage) | 测试实际业务流程或使用场景 | 用户注册 → 登录 → 下单 → 支付 → 发货,覆盖整个场景 |
| 参数组合覆盖 (Pairwise / Orthogonal Array Coverage) | 对多个参数组合进行覆盖,尤其对交互影响大的情况 | 用户输入城市(3种) + 设备类型(2种) → 覆盖 3×2 组合或用 Pairwise 减少测试用例 |
三、结合类型和覆盖率的例子
| 测试类型 | 覆盖率方式 | 示例 |
|---|---|---|
| User Story 功能测试 | 场景覆盖 | 测试购物流程:添加商品 → 支付 → 发票生成 |
| API 测试 | 条件覆盖 + 边界覆盖 | 测试用户注册接口:用户名为空 / 超长 / 特殊字符 |
| NFR 性能测试 | 场景覆盖 | 并发 1000 用户下完成支付流程的响应时间 |
| NFR 可靠性 | 决策覆盖 | 服务异常重试机制是否覆盖所有异常分支 |
| UI 测试 | 等价类覆盖 | 输入框只允许数字 → 输入字母、空值、特殊符号 |
自动化测试指标
在行业实践里,自动化测试覆盖率并不是只看一个指标,而是综合考虑多维度的覆盖能力,确保测试既全面又有价值。可以分为几个主要关注点:
1️⃣ 功能覆盖(Functional Coverage)
目标:确保自动化测试覆盖了核心业务功能和用户需求。
| 指标 | 说明 | 举例 |
|---|---|---|
| User Story/场景覆盖率 | 业务流程或用户故事是否被自动化脚本覆盖 | 注册 → 登录 → 下单 → 支付流程 |
| 接口/API 覆盖率 | 系统所有 API 是否至少被调用一次 | /register, /login, /checkout 等接口都被测试 |
| 状态码覆盖率 | API 返回的各种 HTTP 状态码是否被触发 | 200, 400, 401, 500 |
| 逻辑/分支覆盖率 | 接口或函数内 if/else、switch 分支是否被执行 | if age>150 → error 分支被测试 |
2️⃣ 输入/参数覆盖(Input/Parameter Coverage)
目标:验证各种输入和参数组合是否被充分测试。
| 指标 | 说明 | 举例 |
|---|---|---|
| 等价类覆盖率 | 输入划分的有效/无效等价类是否被覆盖 | 年龄输入 0~150 为有效,<0 或 >150 为无效 |
| 边界值覆盖率 | 输入边界值和邻近值是否被覆盖 | 输入长度 0,1,最大长度,最大长度+1 |
| 参数组合覆盖率 | 多参数交互是否被覆盖(Pairwise 或 Orthogonal) | 用户类型 × 权限 × 设备类型组合测试 |
3️⃣ UI / 端到端覆盖(UI / End-to-End Coverage)
目标:验证用户界面和流程操作是否正确。
| 指标 | 说明 | 举例 |
|---|---|---|
| 场景覆盖率 | 用户操作流程是否完整自动化 | 登录 → 搜索 → 加购物车 → 下单 → 支付 |
| 控件状态覆盖 | 不同控件状态是否被验证 | 按钮禁用/启用,弹窗显示/隐藏 |
4️⃣ 非功能覆盖(Non-Functional Coverage)
目标:确保系统在性能、可靠性、安全等维度满足要求。
| 指标 | 说明 | 举例 |
|---|---|---|
| 性能覆盖率 | 高并发、负载场景是否被自动化测试 | 并发 1000 用户下完成支付流程 |
| 可靠性覆盖率 | 异常场景、重试机制是否被触发 | 服务断开后自动重连是否生效 |
| 安全覆盖率 | 权限、注入、越权等安全场景是否覆盖 | 普通用户访问管理接口被拒绝 |
5️⃣ 自动化测试自身指标(Tool / Quality Coverage)
| 指标 | 说明 | 举例 |
|---|---|---|
| 脚本执行覆盖率 | 自动化脚本实际执行的用例比例 | 自动化回归覆盖 80% 核心业务用例 |
| 用例通过率 / 故障发现率 | 自动化测试发现缺陷能力 | 自动化用例每轮发现新缺陷数量 |
| 重复性 / 回归覆盖 | 同一功能的多轮回归是否被覆盖 | 新版本上线,旧功能是否自动化回归验证 |
🔹 总结
在行业实践中,自动化测试覆盖率关注的是“多维度的覆盖能力”,而不是单纯看代码覆盖率。核心关注点包括:
- 业务功能覆盖(场景、API、分支)
- 输入和参数覆盖(等价类、边界、组合)
- UI/端到端流程覆盖
- 非功能覆盖(性能、可靠性、安全)
- 自动化质量指标(执行率、缺陷发现率、回归覆盖)
最佳实践

明白,我帮你设计一张 “自动化测试覆盖率优先级图”,将覆盖类型按优先级分为 必须 100% 覆盖(高风险) 和 部分覆盖(中低风险),覆盖功能、API、UI、非功能指标。
自动化测试覆盖率优先级图(文字版示意)
───────────────────────────────
自动化测试覆盖率优先级图
───────────────────────────────
【高风险 – 必须 100% 覆盖】 🔴
-------------------------------------------------
功能覆盖:
• 核心业务场景/用户故事(登录、支付、下单)
API 覆盖:
• 核心接口调用
• 核心状态码(200/400/401/500)
• 核心逻辑/分支覆盖
参数覆盖:
• 重要边界值
• 核心等价类
UI/端到端:
• 核心页面控件
非功能覆盖:
• 核心接口性能/可靠性/安全场景
-------------------------------------------------
【中低风险 – 部分覆盖 / 抽样】 🟡
-------------------------------------------------
功能覆盖:
• 次要业务流程
API 覆盖:
• 参数组合 Pairwise/Orthogonal
• 次要状态码/分支
参数覆盖:
• 次要边界值
• 次要等价类
UI/端到端:
• 次要页面控件/低频流程
非功能覆盖:
• 次要接口性能/压力测试
• 非核心服务安全/可靠性测试
-------------------------------------------------

浙公网安备 33010602011771号