题目
什么是测试用例?什么样的测试用例才是好的测试用例?
答案
测试用例是软件开发和测试过程中,为了验证软件是否满足需求而设计的一组条件或步骤的集合。它通常包含输入数据、执行操作、预期结果等要素,用于检查软件在特定场景下的行为是否符合预期。
一个好的测试用例应具备以下特点:
1. **准确性**:测试用例应准确反映需求,预期结果应明确且正确,确保测试结果可判定。
2. **完整性**:覆盖软件的各种功能、边界条件、异常情况等,不遗漏重要场景。
3. **可重复性**:相同的测试用例在相同环境下多次执行,应得到一致的结果。
4. **独立性**:每个测试用例应独立存在,不依赖其他测试用例的执行结果。
5. **简洁性**:步骤清晰、描述简洁,避免冗余信息,便于理解和执行。
6. **可维护性**:当需求或软件发生变化时,测试用例易于修改和更新。
7. **有效性**:能够发现软件中潜在的缺陷,不包含无效或冗余的测试内容。
还是以用户登录功能为例,我们来看看怎么设计测试用例:
**测试对象**:网站登录模块(用户名 + 密码登录)
**核心需求**:验证登录功能的正确性、安全性及异常处理能力
| 用例 ID | 测试场景 | 输入数据 | 操作步骤 | 预期结果 | 优先级 |
| ------- | ---------------------- | ------------------------------------------- | ---------------------------------------- | ------------------------------------------------- | ------ |
| LOG-001 | 正常登录(正确信息) | 用户名:test@example.com密码:Test123! | 1. 输入用户名 2. 输入密码 3. 点击 "登录" | 成功跳转至首页,显示用户昵称 | 高 |
| LOG-002 | 密码错误 | 用户名:test@example.com密码:Wrong123 | 同上 | 登录失败,提示 "密码错误,请重新输入" | 高 |
| LOG-003 | 用户名不存在 | 用户名:nonexist@test.com密码:Any123 | 同上 | 登录失败,提示 "用户名未注册" | 高 |
| LOG-004 | 空用户名 | 用户名:(空)密码:Test123! | 同上 | 输入框提示 "用户名不能为空" | 中 |
| LOG-005 | 密码长度超限(边界值) | 用户名:test@example.com密码:(30 位字符) | 同上 | 输入时限制长度,超过提示 "密码最长 20 位" | 中 |
| LOG-006 | SQL 注入尝试 | 用户名:' OR '1'='1密码:任意 | 同上 | 登录失败,无数据库错误信息泄露 | 高 |
| LOG-007 | 连续 5 次密码错误 | 用户名:test@example.com密码:错误 * 5 次 | 连续输入错误密码 5 次 | 账号临时锁定 10 分钟,提示 "多次错误,账号已锁定" | 高 |
**优秀测试用例的共性**:
1. **场景覆盖全面**:不仅包含正常流程,还覆盖边界值(如最大长度、库存临界值)、异常情况(如格式错误、恶意输入)。
2. **预期结果明确**:每个用例的预期结果可量化、可判定(如 "提示 XX 信息" 而非 "提示错误")。
3. **独立性强**:每个用例可单独执行,不依赖其他用例的前置条件(如登录用例无需依赖注册用例的执行结果)。
4. **与需求对应**:所有测试场景均基于需求设计,避免无关测试(如文件上传用例不测试与文件无关的功能)。
