1 概述
1.1目的
标准化统一测试用例编写规范,为测试设计人员提供良好有效的测试用例编写指引,提高测试用例的可读性,可执行性、可追溯性和合理性等。为测试效率测试提供强有力赋能,最终提高产品的质量。
1.2 范围
适用于集成测试用例和系统测试用例的编写,测试用例工具不限。
1.3 术语解释
集成测试:
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
系统测试:
系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指的要求,检查软件的行为和输出是否正确,这并非是一项简单的任务,它被称为测试的“先知者问题”。
2 测试用例原则
2.1 全面性
2.1.1 应尽可能覆盖程序的各种路径
2.1.2 应尽可能覆盖系统的各个业务
2.1.3应考虑存在跨年、跨月的数据
2.1.4 大量数据并发测试的准备
2.1.5 系统中各功能、业务的异常情况
2.2 系统性
2.2.1 完整说明系统业务流程的需求,系统的组成结构,以及它们之间的关系
2.2.2 完成说明模块业务流程的需求,子系统模块的内部功能、重点功能场景以及它们之间的关系
2.3 连贯性
2.3.1 对于系统业务来说,各子系统之间的连接关系,接口or页面链接
2.3.2 对于模块业务来说,同级模块与上下级模块之间的构成关系以及调用关系
2.4 可追溯性
2.4.1 测试用例的每一条都可以追溯到产品设计文档中的需求
2.5 可操作性
2.5.1 测试用例应包含重要的元素,比如前置条件、操作步骤、期望结果等,且根据操作步骤实现的实际结果应该可以规范描述填入。
2.6 元素完整性
2.6.1 测试名称:测试用例编号和测试用例名称
2.6.2 前置条件:执行该用例步骤需要提前具备的前提步骤或前提数据
2.6.3 状态:测试用例状态
2.6.4 描述:测试用例详细描述步骤
2.6.5 预期结果:测试预期结果
2.7 规范性
2.7.1 对于每个功能,从类型1至类型N依次撰写相应用例,如:功能用例、性能用例、兼容性用例等
2.7.2 对于不满足要求的非常规类型,可以不写相应的用例
2.7.3 对于边界、空值、格式错误、溢出这几个类型,一个功能如有多个数据项测试类型相同,则可以放在一个用例里
2.7.4 测试用例均为最小的用例覆盖要求
2.7.5 在测试过程中,输入数据可在测试用例规定的范围内做一定变化
3 测试用例编写规范
3.1 常规测试用例
3.1.1 对于一个功能一个模块(页面),每个数据项输入或选中典型的取值,生成一个用例
3.1.2 对于一个功能多个模块(页面),多个模块(页面)一起生成一个用例
3.1.3 对于多个功能一个模块(页面),每个功能生成一个用例
3.1.4 每个功能操作需覆盖,如删除对话框点击确定、取消分别生成2个用例步骤
3.1.5 输入框测试,在允许范围内尽可能覆盖多的字符类别,如中文、英文、数字等
3.1.6 对于每个功能点,必须通过一组(一个或多个)用例满足其业务覆盖:对于某条记录的每个状态,对于能进行的每个操作,都生成一个用例(即对业务功能流程中的每个角色,每个功能操作,生成一个用例)
3.1.7 对于相互关联的两个或多个数据项,生成一个用例,确保当一个数据项改变时,其他数据项的变化正确
3.1.8 某些业务的数据字段要求是唯一的,生成一或两个用例(新建、编辑),使得输入数据与原有数据在该字段重复,预期结果为页面返回该数据已存在的提示
3 1.9 业务功能流程涉及一到多个角色,对于每个角色,都生成一个用例,预期结果为用户以这个角色登陆时,他仅能执行权限允许的操作
3.2 初始化测试用例
进入功能模块(页面)后,某些控件会初始化填入数据,生成一个用例确保所有的初始数据正确
3.3 边界测试用例
3.3.1 每个数据项,生成一个边界用例(含最大、最小两个边界值)
3.3.2 字符串数据以字符串长度为计量单位
3.3.2 布尔值数据的所有取值都需测试
3.3.4 多个复选框一组时,需测同时都被选中及都不被选中
3.3.5 下拉菜单、列表框、单选按钮组为最大、最小的2个取值
3.4 空值测试用例
对于每个必填数据项,都生成一个用例(不提供空值的除外,比如无空值的下拉框、有缺省值的单选按钮组),则预期结果提示该数据项为空
3.5 异常测试用例
3.5.1 格式错误的输入框数据项,都生成一个用例,预期结果提示该数据项格式错误,如:日期输入框、数字输入框、字符串输入框(Email、邮编、用户名等带格式要求的)
3.5.2 溢出的输入框数据项,都生成一个取值范围外的测试用例,预期结果提示该数据项超出范围日期输入框,如:范围的日期输入框,需添加上边界日期小于下边界日期的用例;数字输入框(如‘金额’一般为正整数,填入一个负数);字符串输入框超出规定长度的字符串
3.5.3 权限不足测试用例,对于功能模块,生成一个用例,以没有权限的用户身份访问,预期结果为提示权限不足