一个优秀的测试用例,应该包含以下信息:
1 ) 软件或项目的名称
2 ) 软件或项目的版本(内部版本号)
3 ) 功能模块名
4 ) 测试用例的简单描述,即该用例执行的目的或方法
5 ) 测试用例的参考信息(便于跟踪和参考)
6 ) 本测试用例与其他测试用例间的依赖关系
7 ) 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限
8 ) 用例的编号( ID ),如可以是 软件名称简写 - 功能块简写 -NO. 。
9 ) 步骤号、操作步骤描述、测试数据描述
10 )预期结果(这是最重要的)和实际结果(如果有 BUG 管理工具,这条可以省略)
11 )开发人员(必须有)和测试人员(可有可无)
12 )测试执行日期
例如以下这个模板:
| 项目 / 软件 | 技术出口合同网络申领系统 | 程序版本 | 1.0.25 | |||
| 功能模块名 | Login | 编制人 | xxx | |||
| 用例编号 - | TC-TEP_Login_1 | 编制时间 | 2010.10.12 | |||
| 相关的用例 | 无 | |||||
| 功能特性 | 用户身份验证 | |||||
| 测试目的 | 验证是否输入合法的信息,允许合法登陆,阻止非法登陆 | |||||
| 预置条件 | 无 | 特殊规程说明 | 如数据库访问权限 | |||
| 参考信息 | 需求说明中关于 “ 登陆 ” 的说明 | |||||
| 测试数据 | 用户名 =yiyh 密码 =1 | |||||
| 操作步骤 | 操作描述 | 数 据 | 期望结果 | 实际结果 | 实际结果 | 测试状态 |
| 1 | 输入用户名称,按 “ 登陆 ” 按钮。 | 用户名 =yiyh ,密码为空 | 显示警告信息 “ 请输入用户名和密码! ” | |||
| 2 | 输入密码,按 “ 登陆 ” 按钮。 | 用户名为空,密码 =1 | 显示警告信息 “ 请输入用户名和密码! ” | |||
| ------------>>> | ||||||
| 测试人员 | 开发人员 | 项目负责人 | ||||
=====需求测试用例=======
| 客户需求列表-需求说明书 | 开发人员-系统说明书-功能列表 | 测试人员--功能点测试列表 |
| 1注册功能 | 1用户可以自动注册 | (对比发现问题) |
===== 接口测试用例===
| 接口 A 的函数原型 | |||
| 输入 / 动作 | 期望的输出 / 相应 | 实际情况 | |
| 典型值 … | |||
| 边界值 … | |||
| 异常值 … | |||
| 接口 B 的函数原型 | |||
| 输入 / 动作 | 期望的输出 / 相应 | 实际情况 | |
| 典型值 … | |||
| 边界值 … | |||
| 异常值 … | |||
| … | |||
==== 路径测试的检查用例====
| 检查项 | 结论 |
| 数据类型问题 | |
| 变量值问题 | |
| 逻辑判断问题 | |
| 循环问题 | |
| 内存问题 | |
| 文件 I/O 问题 | |
| 错误处理问题 | |
| … |
=====功能测试用例=====
| 功能 A 描述 | |||
| 用例目的 | |||
| 前提条件 | |||
| 输入 / 动作 | 期望的输出 / 相应 | 实际情况 | |
| 示例:典型值 … | |||
| 示例:边界值 … | |||
| 示例:异常值 … | |||
| 功能 B 描述 | |||
| 用例目的 | |||
| 前提条件 | |||
| 输入 / 动作 | 期望的输出 / 相应 | 实际情况 | |
| …… | |||
======健壮性测试- 容错能力 / 恢复能力测试用例=====
| 异常输入 / 动作 | 容错能力 / 恢复能力 | 造成的危害、损失 |
| 示例:错误的数据类型 … | ||
| 示例:定义域外的值 … | ||
| 示例:错误的操作顺序 … | ||
| 示例:异常中断通信 … | ||
| 示例:异常关闭某个功能 … | ||
| 示例:负荷超出了极限 … | ||
======性能测试用例=======
| 性能 A 描述 | |||
| 用例目的 | |||
| 前提条件 | |||
| 输入数据 | 期望的性能(平均值) | 实际性能(平均值) | |
| 性能 B 描述 | |||
| 用例目的 | |||
| 前提条件 | |||
| 输入数据 | 期望的性能(平均值) | 实际性能(平均值) | |
| …… | |||
=====界面测试用例-界面检查表=======
| 检查项 | 测试人员的类别及其评价 |
| 窗口切换、移动、改变大小时正常吗? | |
| 各种界面元素的文字正确吗?(如标题、提示等) | |
| 各种界面元素的状态正确吗?(如有效、无效、选中等状态) | |
| 各种界面元素支持键盘操作吗? | |
| 各种界面元素支持鼠标操作吗? | |
| 对话框中的缺省焦点正确吗? | |
| 数据项能正确回显吗? | |
| 对于常用的功能,用户能否不必阅读手册就能使用? | |
| 执行有风险的操作时,有“确认”、“放弃”等提示吗? | |
| 操作顺序合理吗? | |
| 有联机帮助吗? | |
| 各种界面元素的布局合理吗?美观吗? | |
| 各种界面元素的颜色协调吗? | |
| 各种界面元素的形状美观吗? | |
| 字体美观吗? | |
| 图标直观吗? | |
| … |
======信息安全测试用例=========
| 假想目标 A | |||
| 前提条件 | |||
| 非法入侵手段 | 是否实现目标 | 代价-利益分析 | |
| …… | |||
| 假想目标 B | |||
| 前提条件 | |||
| 非法入侵手段 | 是否实现目标 | 代价-利益分析 | |
| …… | |||
======压力测试用例===========
| 极限名称 A | 例如“最大并发用户数量” | ||
| 前提条件 | |||
| 输入 / 动作 | 输出 / 响应 | 是否能正常运行 | |
| 例如 10 个用户并发操作 | |||
| 例如 20 个用户并发操作 | |||
| … | |||
| 极限名称 B |
| ||
| 前提条件 | |||
| 输入 / 动作 | 输出 / 响应 | 是否能正常运行 | |
|
| |||
| … | |||
======可靠性测试用例========
| 任务 A 描述 | |
| 连续运行时间 | |
| 故障发生的时刻 | 故障描述 |
| …… | |
| 统计分析 | |
| 任务 A 无故障运行的平均时间间隔 | ( CPU 小时) |
| 任务 A 无故障运行的最小时间间隔 | ( CPU 小时) |
| 任务 A 无故障运行的最大时间间隔 | ( CPU 小时) |
| 任务 B 描述 | |
| 连续运行时间 | |
| 故障发生的时刻 | 故障描述 |
| …… | |
| 统计分析 | |
| 任务 B 无故障运行的平均时间间隔 | ( CPU 小时) |
| 任务 B 无故障运行的最小时间间隔 | ( CPU 小时) |
| 任务 B 无故障运行的最大时间间隔 | ( CPU 小时) |
====== 安装 / 反安装测试用例============
| 配置说明 | ||
| 安装选项 | 描述是否正常 | 使用难易程度 |
| 全部 | ||
| 部分 | ||
| 升级 | ||
| 其它 | ||
| 反安装选项 | 描述是否正常 | 使用难易程度 |
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。