黑盒测试用例设计方法

这段时间积累的一些想法:

1.参考这篇吐槽https://zhuanlan.zhihu.com/p/27345893,理解软件的Bug为什么不能彻底消除这一事实。
2.和传统行业(例如制造业)、传统软件行业(例如军工软件行业、IT行业)不同,互联网行业的测试只保证应用的核心链路/功能可用,并不追求测试覆盖率,出现小的bug能够通过快速迭代去fix,2者的质量策略有很大差别,即使在阿里内部,淘宝和蚂蚁的测试工具、方法和质量管理策略、理念都是有差异的。
3.老板总是吐槽我们自己定位过低,希望我们尽快从一个项目测试人员转变为一个质量领域专家,但事实上我对这2个角色之间的区别理解的不够透彻,即使理解清楚了,也并不代表一定能干的好,知易行难。
4.现在很多的测试开发工程师,都喜欢自动化测试、开发测试工具,有开发能力的测试工程师也越来越多,但是在当前行业的质量保证还无法脱离黑盒手工测试的前提下,测试设计方法仍然是每一个测试人员都需要掌握的基本功。

吐槽完了,回到正题,黑盒测试设计方法主要包含:

  • 等价类划分法
  • 边界值分析法
  • 错误推测法
  • 因果图
  • 判定表法
  • 正交实验法
  • 状态迁移图
  • 流程分析法
    ......

学习测试设计方法前,有基本的数学基础或者统计学基础更好,因为很多测试设计方法本质上都是基于一些抽样理论,思考的是如何通过少量的抽样实例实现对测试输入情况的全量覆盖。

等价类划分法

定义:将所有可能的输入数据划分几个子集,子集内的输入数据是等价的,在子集中抽取1个(几个)输入数据作为用例代表整个子集,通过这种方式实现所有输入数据的测试覆盖。

等价类包括有效/无效等价类,有效/无效指的是输入数据的有效/无效,分别用于覆盖正常/异常场景。

举例:

1.PRD中一个页面表单新增配置功能,规格说明如下:
输入框录入数据为整数[1,100],点击保存成功,否则弹出错误提示。

我们可以做等价类划分如下:

c1: input<1
c2: input∈[1,100]
c3: input>100

从等价类中抽取用例如下:

c10: input = -1,output = fail
c20: input = 10, output = success
c30: input = 200, output = fail

其中c1和c3属于无效等价类
c2属于有效等价类

等价类划分的原则:

1.完备性:等价类求并集为整个集合(比如举例中,c1/c2/c3求并集就是整数集合)
2.互斥性:各等价类无交集(举例中,c1/c2/c3为整数集合的互斥子集)

总结:

1.等价类是依据需求规格来划分的。
2.这里划分等价类用到了边界值分析法
3.用例的粒度是由具体的测试设计人员来控制,测试设计人员结合实际测试场景和需求决策用例粒度。

应用场景:

边界值分析法

定义:边界值分析法是对等价类划分法的补充,依据等价类划分,从等价类的边界值处设计测试用例。

边界值分析法假定问题更容易发生在边界处,这是边界值分析法的理论基础。

还是以等价类划分里面的举例来看:

按照边界值分析法,可以抽用例如下:

c11: input = 0, output = fail
c21: input = 1, output = success
c22: input = 2, output = success
c23: input = 99, output = success
c24: input = 100, output = success
c31: input = 101, output = fail

错误推测法

基于经验直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

这是一个很唯心的异常测试设计方法,用例设计的好坏依赖:测试人员对业务的了解程度、过往的

测试经验等。

比如测试一个移动app通话功能,我们推测可能出现通话异常的情况有:
1.弱网情况(隧道里/火车上)
2.低电量情况
3.CPU/内存耗尽
4.受到信号干扰
......
测试人员可以按照这些推测异常的场景去设计用例。

我理解的是,错误推测法更多的应用于发散测试/探索测试中。

因果图

等价类划分和边界值分析考虑的都是输入值的覆盖情况,但是没有考虑不同输入条件之间的相互影响,因果图是利用图解来分析各种输入值的组合情况,根据分析结果来设计用例。

输入条件组合的全量覆盖为何不可行?

如果有n个输入条件,每个输入条件有m个等价类,则可能的组合情况是:n^m种。
>假设n=5,m=3,组合就有19683种
>实际测试场景可能比这个更复杂。

举例:

1.PRD中的页面表单新增配置功能,规格说明如下:
表单有2个输入框如下:
输入框A,支持整数[1,100]
输入框B,支持字符(1~10字符)
点击保存成功,否则弹出错误提示。

2.按等价类分析整理输入输出如下:
输入A,等价类为:(-∞,1),[1,100],(100,+∞)
输入B,等价类为:1字符,[2,9]字符,10字符
输出:
保存成功
弹出错误提示

3.等价类全覆盖组合如下:3*3 = 9


因果图法:
输入:
A1:输入框A为[1,100]
B1:输入框B为(1,10)字符
中间状态A11:输入框A已输入[1,100]
输出C:
C1:保存成功
C2:弹出错误提示

手画因果图如下:


因果图的符号含义参考下面2张图:



将上面的因果图转判定表如下(1代表是,0代表否):


根据判定表设计4个用例即可。

后续继续施工下面的几种设计方法

  • 判定表法
  • 正交实验法
  • 状态迁移图
  • 流程分析法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335