1.测试用例的概念
测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素
2.设计原则
测试用例是一个文档,是执行的最小实体。测试用例包括输入、动作、时间和一个期望的结果,其目的是确定应用程序的某个特性是否可正常工作,并且达到程序所设计的结果,以便测试某个程序路径或核实是否满足某个特定需求般在进行测试用例设计前要全面了解被测试产品的功能、明确测试范围(特别是要明确哪些是不需要测试的)、具备基本的测试技术与方法等。测试用例设计一般遵循以下原则: [3]
(1)正确性。输入用户实际数据以验证系统是否满足需求规格说明书的要求;测试用例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。 [3]
(2)全面性。覆盖所有的需求功能项;设计的用例除对测试点本身的测试外,还需考虑用户实际使用的情况、与其他部分关联使用的情况、非正常情况(不合理、非法、越界以及极限输入数据)操作和环境设置等。 [3]
(3)连贯性。用例组织有条理、主次分明,尤其体现 在业务测试用例上;用例执行粒度尽量保持每个用例都有测点,不能同时覆盖很多功能点,否则执行起来牵连太大,所以每个用例间保持连贯性很重要。 [3]
(4)可判定性。测试执行结果的正确性是可判定的,每一个测试用例都有相应的期望结果。 [3]
(5)可操作性。测试用例中要写清楚测试的操作步骤,以及与不同的操作步骤相对应的测试结果。 [3]
3.用例包含内容
功能用例:
功能模块 | 用例ID | 标题 | 优先级 | JIRA优先级 | 是否自动化 | 测试数据(前置条件) | 操作步骤 | 预期结果 |
---|---|---|---|---|---|---|---|---|
举例:
功能模块 | 用例ID | 标题 | 优先级 | JIRA优先级 | 是否自动化 | 测试数据(前置条件) | 操作步骤 | 预期结果 |
---|---|---|---|---|---|---|---|---|
淘宝登录 | TBDL-01 | 【TB_login】输入正确账号密码是否可正常登录 | P0 | Medium | 否 | 1.账号:12345678912 2.密码:admin |
1.在账号区输入账号 2.在密码区输入密码3.点击登录 |
1.提示登录成功 2.跳转到用户首页 |
接口用例:
用例编号 | 用例标题 | 接口路径 | 请求方法 | 请求类型 | username | password | confirm | name | 参数 | 前置条件 | Status | Result | Message | 预期结果 | 验库表名 | 验库sql | 数据库预期行数 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
举例
用例编号 | 用例标题 | 接口路径 | 请求方法 | 请求类型 | username | password | confirm | name | 参数 | 前置条件 | Status | Result | Message | 预期结果 | 验库表名 | 验库sql | 数据库预期行数 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
signup_01 | 验证用户注册成功 | /apitest/signup/ | post | json字符串 | test06 | 123456 | 123456 | 注册成功 | {‘username’:’test06’,’password’:’123456’,’confirm’:’123456’,’name’:’注册成功’} | 先删除’注册成功’姓名,再删除’test06’用户 | 1000 | Success | 注册成功 | {‘Status’:’1000’,’Result’:’Success’,’Message’:’注册成功’} | users,info | SELECT COUNT() AS users_count ,(SELECT COUNT() AS info_count FROM info WHERE id=users.id AND name=’注册成功’) AS info_count FROM users WHERE username=’test06’ AND PASSWORD=MD5(‘123456’) |
(1,1) |
4.常见编写测试用例方法
等价类
边界值
因果图
场景设计法
正交实验法