一、测试用例组成
(一)测试用例的组成
用例编号,模块,测试点(测试标题),优先级,前提条件,测试步骤,期望结构,实际结果并不是每一项都必须,有些是必须要有的,比如说测试点,测试步骤,预期结果用例编号一般是模块名加数字的方式表示,如果在平台管理用例,那用例编号是自动生成的,用例编号是唯一的。
(二)优先级
优先级表示用例的重要程度为什么设置优先级
在有限的测试资源和时间的情况下,发现最严重的错误,有时候时间很紧张,人力紧张,无法执行全部的用例,怎么保证产品的质量,先去执行优先级高的用例,保障了这些,基本功能就保证了。
测试用例根据重要性分成一定的等级
P0: 是最最核心的功能测试用例,比如冒烟用例,确定这个版本是不是可测,如果P0级别的用例执行不通过,那其他的测试用例都不用去测,直接把这个版本打回去给开发修改,改好后重新提测
P1:是高优先级别的,是保证功能是稳定的,基本的功能测试
P2:是中优先级别的,更全面的去验证功能的各个方面,比如边界测试,异常测试,网络测试,中断测试,容错性,UI测试等
P3:是低优先级的,不会常常被执行,大版本可能会执行一次,小版本就不执行了。比如说性能测试,压力测试,兼容性,安全测试,可用性等
(三)测试用例设计工具:思维导图、excel
二、设计测试用例
(一)黑盒测试方法论——等价类,边界值,因果图法,判定表,场景法
1.等价类划分法
等价类划分原则:
等价类设计步骤:
原则:一条测试用例尽可能多的覆盖有效等价类。对于无效等价类,每一个无效等价类,都必须有一条用例去覆盖他。
等价类划分法的优缺点:
优点:覆盖完全,取值不盲目 缺点:产生的用例多,会有无效的测试用例
2.边界值
边界值确定:
选取数据的时候,要考虑数据的类型和精度。如果边界上的点,上点是实数,精确度是0.01,这个时候离点就是上点加减0.01
边界点划分规则:
用边界值修改前后的用例(1~100内数字的加减)
3.因果图法
概念
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。
适用场景
适用于检查程序输入条件的各种组合情况
因果图法基本步骤
因果图法举例
4.判定表法
因果图和判定表是好朋友,可以 结合着用。
判定表的组成
判定表设计步骤
判定表举例
1.确定条件桩
2.确定动作桩
3.判定表分析
4.得出初始判定表
5.对判定表进行简化
1.abc不构成三角形,c1不成立,c2, c3, c4这三个条件是否成立没有意义,所以前面8个规则可以简化为1个规则 2.对于结果不可能的情况也可以不考虑 3.简化后剩6个规则,对这6个规则设计用例
6.设计测试用例
5.场景法
我们不能只关注一个部件的等价类,边界值,我们也需要关注功能,业务流程有没有实现。验证方法就会用到场景法 优点:适合有业务流程的 缺点:没有验证单个功能点,单个功能点需要用到等价类,边界值
场景法用例设计步骤
场景法案例: 淘宝购物
1.画流程图
2.确定基本流
3.确定备选流
4.构造场景
5.生成测试用例
测试步骤一步一步写清楚,用序号,达到不明白业务的人根据步骤可以完成操作
6.错误推断法
指利用直觉和经验猜测出出错的可能类型,有针对性的列举出程序中所有可能的错误和容易发生错误的情况
(二)选择设计用例的方法(黑盒)
任何情况下,都需要采用等价类划分法,将无限测试变成有限测试在规定了数据范围的情况下,必须采用边界值分析法如果需要关注它的主要功能和业务流程、业务逻辑是否正确实现, 考虑使用场景法如果含有输入条件的组合情况,考虑选用因果图和判定表法采用错误推断法再追加测试用例
(三)白盒测试方法
1.白盒测试的度量
根据待测产品的内部实现细节来设计测试用例 白盒测试的执行手段是可以涵盖单元测试、集成测试 使用代码覆盖率作为白盒测试的主要度量指标
2.代码覆盖率常见概念
语句覆盖:每行代码都要覆盖至少一次 判定覆盖:判定表达式的真假至少覆盖一次 判定/条件覆盖:判定覆盖与条件覆盖都必须覆盖 条件组合覆盖:判定表达式中的所有条件组合都需要覆盖 分支覆盖:控制流中的每条边都要被覆盖一次 路径覆盖:所有的路径都要尽量覆盖 指令覆盖:一行代码会被编译为多条指令,尽可能的覆盖所有指令 方法覆盖:每个方法至少要被覆盖一次 类覆盖:每个类至少被覆盖一次
3.覆盖率统计的工具
emma cobertura jacoco
4.插桩原理
对jvm的字节码插桩 基于block插桩 计算覆盖的代码块
5.流程覆盖
利用代码执行流代表流程 流程覆盖用路径覆盖率表达 对流程进行裁剪获得一个适合业务的小规模的业务子集 流程覆盖率=测试经过的路径/业务子集路径
6.精准化测试
代码调用链与黑盒测试用例的关联 根据代码变更自动分析影响范围 黑盒测试过程中借助代码流程覆盖数据指导探索式测试 利用线上数据推导有效测试用例 代码流程分析与覆盖率统计
三、测试用例编写
(一)测试用例编写步骤
第一步:划分功能模块
可以使用思维导图,把大功能里面小的功能点拆分出来,然后每个小功能点里的元素细节可以继续拆分出来,
第二步:正向功能验证
相当于冒烟测试
第三步:单个功能项验证
拆分页面功能,元素。 等价类,边界值
第四步:功能之间交互验证
验证场景用例
第五步:隐形需求
(二)实战演示
1.需求分析
2.编写用例
四、测试用例的粒度
测试用例可以写的很简单,也可以写的很复杂最简单的测试用例是测试的纲要,仅仅指出要测试的内容测试用例写的过于简单,则可能失去了测试用例的意义测试用例写得过于复杂或详细,会带来两个问题:
效率问题维护成本问题
粒度选择原则:
1、遵守公司对于测试粒度的要求,看一下前辈、公司同事对粒度的选择 2、要在场景覆盖完整的情况下,尽可能精简用例
五、测试用例评审
测试用例的本身的描述是否清晰,是否存在二义性测试用例内容是否正确,是否与需求目标相一致测试用例的期望结果是否确定、唯一测试用例是否覆盖了所有的需求测试用例是否具有可执行性是否从用户层面来设计用户使用场景和业务流程的测试用例场景测试用例是否覆盖最复杂的业务流程用例设计是否包含了正面、反面的用例
六、经典面试题:
(一)测试用例设计思路
1.面试购物车测试用例设计思路
前言
关于测试用例设计是做测试的同学必须要具备的技能。不管是出去面试,还是在平常的工作当中,可以熟练设计测试用例基本是对测试人员的一个基本要求。
比如在面试中我们被问到给你一个购物车界面,你怎么测试这样一个问题。应该咱们回答呢?
测试用例设计思路
购物车设计测试用例是非常经典的一个面试题。一般在面试中回答测试用例设计的问题时,可以遵循以下的思路
对于购物车来说也是同样的思路。
需求分析
首先第一步要做的就是需求分析。不管是在什么场景中,都应该明确需求之后,再开始进行测试用例的设计。
在面试中,这一步可以体现为与面试官聊一聊需求的细节。
重点需要把 3 个方向的内容确认清楚:
1.确认测试范围
2.确认功能点
3.确认功能流程
使用思维导图的形式来梳理
下面就按照上面思路来梳理购物车的测试点。
界面测试
界面显示正常
界面布局合理美观
文案展示正确
功能测试
测试功能可以从这几个方面去考虑
具体的测试点比较多,请直接查看完整的思维导图。
易用性测试
快捷键功能是否支持
提示信息
操作引导
商品展示排序合理
兼容性测试
不同的产品在考虑兼容性测试的时候,方案是不一样的。
Web 产品的兼容需要重点考虑
浏览器操作系统分辨率
App 产品的兼容需要重点考虑
平台厂商设备型号操作系统分辨率
对于兼容性测试来说,需要保证在这些硬件环境中,产品的界面展示正确,功能可以正常使用。
性能测试
界面元素多次快速操作
响应时间
并发量
CPU
内存
App:耗电量、流量、压力测试
安全性测试
账号限制:登录超时、账号互踢
敏感信息加密传输
漏洞扫描
总结
在面试中被问到了购物车如何设计测试用例的时候,按照这样的思路来回答就可以了。
具体的测试点总结在以下思维导图
(二)你用过哪些用例设计方法?
考察点
测试基本理论 黑盒测试方法
技术点
常见黑盒测试方法
常见黑盒测试方法
等价类划分法:把用户所有可能输入的数据,划分成了若干子集,然后从每一个子集当中选取少数具有代表性的数据作为测试用例 边界值分析法:针对各种边界情况设计用例 因果图法:利用图解法分析输入的各种组合情况,从而设计测试用例 判定表法:直接编写判定表设计测试用例 场景分析法:模拟用户操作软件时的场景,主要用于测试系统的业务流程 错误推断法:指利用直觉和经验猜测出出错的可能类型,有针对性的列举出程序中所有可能的错误和容易发生错误的情况
答案总结
问题:你用过哪些用例设计方法? 我在测试用例设计过程中比较常用的测试方法有等价类划分法、边界值分析法、因果图法、判定表法、场景分析法、错误推断法等等:
Steam 上的 幸运农场
2025微信必下款的公众号有哪些?10个超高下款率微信直接借钱公众号