G.J.Myers 在<软件测试技巧>中提出:测试是为了寻找错误而运行程序的过程,一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试, 一个成功的测试是揭示了迄今为止尚未发现的错误的测试。
对于新手来说,日常测试用例设计时,很少用到系统的方法论,大多是根据产品需求文档或自己的主观判断直接进行测试用例的编写,经常会造成漏测等严重问题。所以,使用方法论支撑测试用例设计的过程,使其更加合理化、规范化,是一件至关重要的事情。但测试用例设计方法种类繁多,适用场景也各不相同,针对具体需求层面进行测试用例编写时,很难选取合适的方法来进行设计。
质量管理领域权威人物 J.M.Juran 将质量定义为 “决定产品性能” 和 ‘“满意程度’ 的特征”, 而测试注重于产品的满意度。 测试用例设计的过程是将产品需求转化为一种可操作性的步骤,在整个产品生命周期中发挥着至关重要的作用,基于方法论的规范化用例设计,能帮助测试人员拓展测试范围,完善测试覆盖面,降低漏测率,提升产品满意度。
本系列文章对经典的测试用例设计方法逐个进行剖析,并深入到日常工作的实际需求中,结合具体场景进行实战演练,并分别对各类方法的适用场景进行归纳梳理,形成可复用系统模板,帮助大家快速熟悉常用测试用例设计方法,提升测试人员专业度及工作效率,从而提升交付质量。
说到测试用例设计方法,大家最容易想到的肯定是等价类和边界值法,所以,首先,我们将对这两种测试用例设计方法进行介绍。
1.定义
2. 基本思想
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
场景:一个输入框的输入规则为 1~12 位字母和数字组合
根据等价类划分法,具体可建立等价类表如下(把输入拆分成长度和符号组合两种),即可得到用例
划分 | 有效等价类 | 编号 | 无效等价类 | 编号 |
---|---|---|---|---|
长度 | [1,12] | (1) | 0 | (2) |
- | - | | (12,+∞) | (3) |
符号 | a | (4) | 数字 + 其它字符 | (5) |
- | - | | 其它字符 | (6) |
1.定义
是等价类划分的一个补充方法,将等价类划分的边界作为用例设计(在有效和无效等价类的边界取值中,会存在值重复的情况,可按有效无效进行取舍)。
2. 基本思想
大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,所以为了保证测试质量,就需要重点测试边界,就有了边界值这样的测试方法。
3. 等价类和边界值的关系
4. 使用方法
那我们怎么去找边界值呢?一般会关注以下几个点:
① 闭区间
② 半开半闭区间
③ 开区间
场景:一个输入框的输入规则为 1~12 位字母和数字组合
具体可建立等价类表如下(把输入拆分成长度和符号组合两种)
根据边界值法,按照闭区间 [1, 12] 确定上点(1,12)、内点(2)、离点(0,13),建立等价类和边界值表如下(把输入拆分成长度和符号组合两种),即可得到用例。
划分 | 有效等价类 | 边界值 | 无效等价类 | 边界值 |
---|---|---|---|---|
长度 | [1,12] | 1,2,11,12 | 0 | 0 |
- | - | | (12,+∞) | 13 |
符号 | a | | 数字 + 其它字符 | |
- | - | | 其它字符 | |
场景:手机号兼容座机号的格式校验
设计步骤:
1.等价类划分:以第一条为例 - 有横杠:XXX(3 位或 4 位)-XXXXXXXX(7 或 8 位)
根据等价类划分法的步骤,首先进行拆分第一部分和第二部分,获得第一部分的有效等价类 [3, 4] 和无效等价类(len>4 & 08 & 0<len<7)。以此类推,获取所有的有效和无效等价类。
2. 边界值分析:根据区间开闭性,定位上点、内点、离点。
如:有效等价类 [3, 4] 的上点为 3 和 4,无效等价类(len>4 & 0<len<3)的离点为 5 和 2,内点无。
3. 数据处理:按照步骤 1 和 2 及数据的组合情况,列出所有的情况。
4. 整理最终用例:根据步骤 3 得到的数据,按照要求设计测试数据及相应的预期结果,得到最终测试用例。
方法 | 等价类划分法 | 边界值分析法 |
---|---|---|
核心 | “分类” 及代表值 | 边界值和边界两边的邻值 |
优点 | 通过把输入数据和输出数据进行分类,选用分类中的代表值,在保证了测试覆盖的情况下大大减少了测试用例的数量,使测试工作变得简单高效 | 大量的程序错误发生在输入的边界上,考虑了边界值的测试用例能更高效发现程序中的错误和缺陷 |
缺点 | 输入与输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试 | 只能作为一个对其他设计方法的补充;这种方法表面上听起来简单,但有的边界值非常微妙,不容易确定下来;只适用于多个变量相互独立又都代表实际物理量的情况,对变量之间的依赖关系则考虑不到。 |
适用场景 | 有数据输入(编辑框)的地方,可以使用等价类划分法。例如:用户登录、注册、新建、查询 | 有数据输入且存在取值边界或长度边界时,边界值法往往跟等价类划分法一起使用,从而形成一套较为完善的测试方案。 |
等价类划分和边界值分析法只考虑了单个的输入条件,在输入条件有各种组合、输入条件之间的相互制约关系的场景中很难发挥有效作用,这个时候就需要因果图与判定表法来帮助我们设计测试用例了,让我们一起来看看吧~
作者:京东物流 陈雨婷 王鹏 张苑 李硕
来源:京东云开发者社区 自猿其说 Tech 转载请注明来源