写点什么

测试用例设计方法六脉神剑——第一剑:入门试招,等价边界初探 | 京东物流技术团队

  • 2023-12-01
    北京
  • 本文字数:2085 字

    阅读完需:约 7 分钟

测试用例设计方法六脉神剑——第一剑:入门试招,等价边界初探 | 京东物流技术团队

1 背景及问题

G.J.Myers 在<软件测试技巧>中提出:测试是为了寻找错误而运行程序的过程,一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试, 一个成功的测试是揭示了迄今为止尚未发现的错误的测试。


对于新手来说,日常测试用例设计时,很少用到系统的方法论,大多是根据产品需求文档或自己的主观判断直接进行测试用例的编写,经常会造成漏测等严重问题。所以,使用方法论支撑测试用例设计的过程,使其更加合理化、规范化,是一件至关重要的事情。但测试用例设计方法种类繁多,适用场景也各不相同,针对具体需求层面进行测试用例编写时,很难选取合适的方法来进行设计。

2 目标及意义

质量管理领域权威人物 J.M.Juran 将质量定义为“决定产品性能”和‘“满意程度’的特征”, 而测试注重于产品的满意度。 测试用例设计的过程是将产品需求转化为一种可操作性的步骤,在整个产品生命周期中发挥着至关重要的作用,基于方法论的规范化用例设计,能帮助测试人员拓展测试范围,完善测试覆盖面,降低漏测率,提升产品满意度。


本系列文章对经典的测试用例设计方法逐个进行剖析,并深入到日常工作的实际需求中,结合具体场景进行实战演练,并分别对各类方法的适用场景进行归纳梳理,形成可复用系统模板,帮助大家快速熟悉常用测试用例设计方法,提升测试人员专业度及工作效率,从而提升交付质量。

3 初探

说到测试用例设计方法,大家最容易想到的肯定是等价类和边界值法,所以,首先,我们将对这两种测试用例设计方法进行介绍。

3.1 等价类划分法

3.1.1 概念及原理

1.定义


  • 等价类:某个输入域的子集合

  • 等价类划分:有效等价类(合理的、有意义的输入集合)

  • 无效等价类(不合理的 or 无意义的输入集合)


2. 基本思想


设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

3.1.2 方法步骤

  1. 根据需求,大体上可以先划分为有效和无效两种

  2. 然后再细化相应的等价类(从组合情况进行细化)

  3. 建立等价类表

  4. 生成测试用例

3.1.3 举个栗子

场景:一个输入框的输入规则为 1~12 位字母和数字组合


根据等价类划分法,具体可建立等价类表如下(把输入拆分成长度和符号组合两种),即可得到用例


3.2 边界值分析法

3.2.1 概念及原理

1.定义


是等价类划分的一个补充方法,将等价类划分的边界作为用例设计(在有效和无效等价类的边界取值中,会存在值重复的情况,可按有效无效进行取舍)。


2. 基本思想


大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,所以为了保证测试质量,就需要重点测试边界,就有了边界值这样的测试方法。


3. 等价类和边界值的关系


  • 边界值分析法是作为对等价类划分法的补充,边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

  • 边界值数据本质上是属于某个等价类的范围,测试时有时是一种冗余(正好等于,刚刚大于或刚刚小于边界的值),但是为了更好的测试质量,边界值必须要单独进行测试,适当必要的冗余是可以接受的。


4. 使用方法


那我们怎么去找边界值呢?一般会关注以下几个点:


  • **上点:**区间的端点值

  • **内点:**上点之间任意一点

  • 离点:若是开区间的离点,就是开区间中上点内侧紧邻的点;若是闭区间的离点,就是闭区间中上点外侧紧邻的点


① 闭区间



② 半开半闭区间



③ 开区间


3.2.2 举个栗子

场景:一个输入框的输入规则为 1~12 位字母和数字组合


具体可建立等价类表如下(把输入拆分成长度和符号组合两种)


根据边界值法,按照闭区间[1, 12]确定上点(1,12)、内点(2)、离点(0,13),建立等价类和边界值表如下(把输入拆分成长度和符号组合两种),即可得到用例。


3.3 测试设计——“等价类+边界值”

3.3.1 举个栗子

场景:手机号兼容座机号的格式校验


  • 有横杠:XXX(3 位或 4 位)-XXXXXXXX(7 或 8 位):3+7 或者 3+8 或者 4+7 或者 4+8

  • 有横杠有分机号:XXX(3 位或 4 位)-XXXXXXXX(7 或 8 位)-XXX(1-5 位)

  • 无横杠:XXX(3 位或 4 位)XXXXXXXX(7 或 8 位) 11 位-17 位

  • 取消第一位必须为”1“,且取消第二位必须为“除 0,1,2”限制。


设计步骤:


1.等价类划分:以第一条为例-有横杠:XXX(3 位或 4 位)-XXXXXXXX(7 或 8 位)


根据等价类划分法的步骤,首先进行拆分第一部分和第二部分,获得第一部分的有效等价类[3, 4]和无效等价类(len>4 & 0<len<3);获得第二部分的有效等价类[7,8]和无效等价类(len>8 & 0<len<7)。以此类推,获取所有的有效和无效等价类。


2. 边界值分析:根据区间开闭性,定位上点、内点、离点。


如:有效等价类[3, 4]的上点为 3 和 4,无效等价类(len>4 & 0<len<3)的离点为 5 和 2,内点无。


3. 数据处理:按照步骤 1 和 2 及数据的组合情况,列出所有的情况。



4. 整理最终用例:根据步骤 3 得到的数据,按照要求设计测试数据及相应的预期结果,得到最终测试用例。


4 总结


等价类划分和边界值分析法只考虑了单个的输入条件,在输入条件有各种组合、输入条件之间的相互制约关系的场景中很难发挥有效作用,这个时候就需要因果图与判定表法来帮助我们设计测试用例了,让我们一起来看看吧~


作者:京东物流 陈雨婷 王鹏 张苑 李硕

来源:京东云开发者社区 自猿其说 Tech 转载请注明来源

发布于: 刚刚阅读数: 3
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
测试用例设计方法六脉神剑——第一剑:入门试招,等价边界初探 | 京东物流技术团队_测试_京东科技开发者_InfoQ写作社区