测试用例设计指南
来源 | OSCHINA 社区
作者 | 京东云开发者-京东无论 王玉坤
原文链接:https://my.oschina.net/u/4090830/blog/8590153
1 测试用例设计原则
有效性:测试用例步骤必须描述清晰,不能出现模棱两可的以及重复的话语,测试用例应该按照一定的顺序进行编写,这样执行的时候效率比较高。
清晰性:用例的操作步骤要描述清晰,包含清晰的输入数据以及预期输出,验证点必须明确清晰,并能突出重点,对于流程性的用例建议按照流程顺序进行用例安排,从第一个验证点到最后一个验证点,组成流程的开始到结束,方便测试执行。测试用例包含前置条件的必须将前置条件描述清楚,包括入口等。
可复用性:可重复使用,并尽量将具有相似功能的测试用例抽象并归类。
可维护性:测试用例因为业务需求发生变更的时候,需要及时更新维护测试用例,做到测试用例的实时性与有效性,测试用例需要细化和不断的完善,是个循序渐进的过程。
完整性:用例是否完成并覆盖所有需求点,做到对需求的完全理解。
兼容性:测试用例要包含新老版本的兼容、新老数据兼容、浏览器兼容等测试点。
可管理性:能够检测测试人员的测试进度、工作量等。
可评估性:测试用例的通过率和缺陷的数目是评估软件质量的好坏的标准。
2 测试用例的生命周期
2.1 需求分析
2.2 测试用例设计
2.3 测试用例实现
2.4 测试用例执行
2.5 测试用例管理
按照软件功能模块组织:软件系统一般是根据软件的功能模块来进行工作任务分配的。因此,根据软件功能模块进行测试用例设计和执行等是很常用的一种方法。根据模块来组织测试用例,可以保证测试用例能够覆盖每个系统模块,达到较好的模块测试覆盖率。
按照测试用例优先级组织:测试用例是有优先级的。对于任何软件,实现穷尽测试是不现实的。在有限的资源和时间内,首先应该执行优先级高的测试用例。
测试用例执行的跟踪:在测试执行的过程中,对测试用例的状态进行跟踪,可以有效的将测试过程量化。比如,执行一轮测试过程中,测试的测试用例数目是多少,测试用例中通过、未通过、未测试的比例各是多少。这些数据可以提供一些信息来判断软件项目执行的质量和执行进度,并对测试进度、状态提供明确的数据,有利于测试进度和测试重点的控制。
3 测试用例编写要素
用例编号:用例的唯一标识
测试模块:测试用例所属模块
用例标题:测试用例的简要说明
前提条件:用例执行的前提
测试步骤:执行用例步骤
预期结果:应该得到的结果
优先级:用例重要程度
4 功能测试用例设计方法
4.1 等价类划分法
输入具有代表性的数据子集
有效等价类:满足需求的
无效等价类:不满足需求的
具有单个输入的功能
明确需求
确定有效和无效等价类
编写测试用例
4.2 边界值分析法
对于输入等价类和输出等价类而言稍高于其边界或者稍低于其边界的一些特定情况
正好等于
刚刚好大于
刚刚好小于
上点:边界上的点
离点:距离边界最近的点
内点:范围内的点
有输入参数,且输入类型或范围长度有边界时(适用于题目需求中有长度或者范围的情况)
和等价类一起使用,适用于单个功能的输入的情况
明确需求
确定有效和无效等价类
明确题目条件中的边界值
编写测试用例
4.3 判定表法
判定表表示的是有多个输入和多个输出,而且输入与输入之间相互的组合关系,输入和输出之间有相互的制约和依赖关系
条件桩:题目条件中的所有的测试输入
动作桩:题目条件中的所有输出
条件项:测试输入的取值
动作项:测试输出的取值
明确条件桩
明确动作桩
对条件桩进行全组合
明确每个组合对应的动作桩
设计测试用例
4.4 因果图法
理论中是通向判定表的一个中间过程
因果图是一种利用图解法来分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况
所谓的原因就是输入,所谓的结果就是输出。
因果图的因 — 输入条件
因果图的果 - 输入结果
恒等:若 Ci 是 1,则 ei 也是 1;否则 ei 是 0
非:若 ci 是 1,则 ei 是 0;否则 ei 是 1
或:若 c1 或 c2 或 c3 是 1,则 ei 是 1;否则 ei 是 0
与:若 c1 和 c2 都是 1,则 ei 是 1;否则 ei 是 0
标识输入和输出
画出因果图
将因果图转换为判定表
生成测试用例
4.5 正交分析法
正交法又叫正交试验法,又叫正交排列法,使用最小的测试过程集合获得最大的测试覆盖率,(测试用例的条数写的少一点,而测出的 bug 多一点),正交试验设计法,是从大量的试验点中挑选出适量的,有代表性的点,应用依据伽罗瓦理论导出的 “正交表”,合理安排试验的一种科学的试验设计方法。
n 表示行数,也就是需要测试组合的次数
k 表示的列数,表示控件的个数(因素的个数,或是因子的个数)
m 是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)
有 4 个控件
每个控件有 3 个取值
9 为需要测试的组合个数、有 9 条测试用例
叫 4 因素 3 水平
根据需求形成因子状态表 —- 因子:控件名称 状态:每个控件对应的取值
确定所采用的正交表
将正交表中的数字用文字代替
一行就是一条测试用例
在线生成:https://jaccz.github.io/pairwise/tools.html
正交试验的实例表可套用到用例中 http://support.sas.com/techsup/technote/ts723_Designs.txt
4.6 场景法 - 流程图法
模拟用户操作时的场景,主要用于测试多个功能之间的组合使用情况
用户角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用
测试人员角度:平时测试的都是单个功能点进行测试,为了保证测试的全面性,考虑多个功能之间组合测试的场景
多个功能之间的组合测试
往往在冒烟测试时经常使用
基本流:按照正确的业务流程操作的一种路径
备选流:出现错误的操作流程
确定项目角色
明确角色的常用功能
根据需求构建测试场景
一个场景就是一条 case
5 安全性测试设计
sql 注入
明文传输
越权访问
短信邮箱验证
鉴权缺失
密码安全
数据健壮性等
END
这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦
微信扫码关注该文公众号作者