一、前言
1.1 为什么编写测试用例?
作为测试工程师,为什么要编写测试用例,分析特征如下:
- 需求复杂:多重输入输出无法穷举的场景,系统复杂涉及上下游系统关联等;
- 重复繁琐:测试工作重复且繁琐,需要多轮回归,测试维度及关注点众多;
- 人:高并发、多线程工作,容易遗忘导致漏测。
帮助人梳理复杂的需求高质量完成繁琐的测试工作。
1.2 如何评估测试用例?
编写测试用例的关键点是什么?该如何评价测试用例呢?总结出以下几点:
- 完备性:能完全覆盖需求,越完全越好;
- 结构化:分类清晰,需要的前置条件,上下游关系,入口步骤等;
- 重点突出:突出测试点,风险点,难点,疑问点;
- 准确性高:等价类划分准确,所有可能的边界值和边界条件能正确识别。
基本原则:站在用户角度,保证系统在各种应用场景下的功能是符合设计要求的!
1.3 如何编写测试用例?
在实际工作中,如何编写一份测试用例?本文章将从方法论,经验结构,实践应用三个方面阐述。
二、设计模式
设计模式是从方法论方面高度总结出设计测试用例思维方式方法,分为两大类:
2.1 黑盒测试
- 等价类:所有可能的数据划分多组不同的子集,互不相交又完整汇合;
- 边界值:是对于恰好大于、小于和等于边界的边界值测试,等价类方法的补充;
- 错误推断法:基于经验和直觉推测程序中所有可能存在的各种错误、和容易发生错误的特殊情况;
- 场景法:事件触发时的情景形成了场景,而同一时间不同的触发顺序和处理结构就构成了事件流;
- 因果图判断表:因果图利用图解法分析输入的各种组合互相制约关系,复制场景适用。判定表是分析多逻辑条件下不同操作的情况工具,同因果图配合;
- 其他:正交试验设计法,功能图法等
2.2 白盒测试
- 代码检查法:桌面检查、代码审查和走查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面。 如静态扫描,CodeView等;
- 覆盖逻辑法:包括语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正判定条件覆盖、点覆盖、边覆盖、路径覆盖,测试程序内部的逻辑结构;
- 静态结构分析法:通过使用测试工具分析程序源代码的系统结构、数据结构、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图标等;
- 其他:静态质量度量法,基本路径测试法,域测试法,符号测试法等。
编写测试用例,可能用到各种方法,各方法的本质是帮助人理清复杂的逻辑及场景,设计出完备的测试用例!
2.3 案例分析
等价类/边界值/错误推断法-案例
场景法-案例
本章节总结了常见测试用例设计模式,是方法论思维方式的锻炼!!
三、基准用例
基准用例根据不同类型的需求,总结出测试用例编写的重点,需求的分类如下:
3.1 移动端
移动端APP的特点为品牌多、分辨率多、网络有wifi和流量等、系统安卓/ios/鸿蒙、适配版本多等,随时随地流量大。其移动端基准用例如下:
3.2 H5基准用例
通过手机浏览器打开的网页,简称H5,这类需求的基准用例如下:
针对黑盒测试,主要常见的测试标准指标如下:
3.3 接口测试
接口测试主要用于检查系统、系统与子系统的交互点,上下游数据相互依赖点等;检查数据的交换,传递和控制管理的过程,多重输入->接口处理->输出,底层读写数据库/Redis的数据等。接口测试基准用例如下;
针对灰盒/白盒测试,主要的测试标准如下:
本章节总结她人经验,总结各种类型的基准用例!!
四、实践应用
4.1 实操1-标准案例:H5登录业务测试
等价类,边界值分析功能,设计测试用例-初级工程师
有经验的测试工程师会继续扩充用例,运用错误推断法,想象用户实际中会做哪些操作-中级测试工程师
改进后的测试用例覆盖率得到了提升,但是还是围绕显式功能设计的,那么非显式功能呢?安全/性能/兼容测试-高级测试工程师
4.2 实操2-优秀案例:新房经验值看板用例分析
针对1.2小结写的如何评价用例的标准,分析次优秀用例点如下:
- 完备性:所有可能的入口,不同的角色,不同的页面,UI检查,兜底,报错兼容,数据校验。
- 重点突出:每个用例标明测试点,用符号标明特殊逻辑,测试过程记录,风险点重点
- 结构化:逻辑分层,入口->页面->异常,区分灰度/非灰度不同,单点功能聚集
- 准确性高:特殊逻辑场景标明,边界值遍历
4.3 实操3-需要改进案例:按照需求复制case,无思考
4.4 实操4-需要改进案例:逻辑不清,想到什么写什么
4.5 实操5-需要改进案例:一些不好现象
五、总结回顾
测试用例看似简单,但是能写好一个用例,需要测试工程师不停的琢磨需求!始终站在用户的角度,想象可能出现的场景,实际过程中不停的测试验证,发现尽可能多的bug,难道每次用例都要写的那么全?原则如下:
本文章从方法论,实际经验总结,具体案例分析三个方面讲述应该如何编写一个测试用例。测试用例对需求进行拆分,并重组思考的过程,常见的用例结构如下:
希望对大家有帮助!!