黑盒测试的测试用例常见设计方法都有哪些?

1)等价类划分

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的bug都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类

可参考以下知乎解说:
https://zhuanlan.zhihu.com/p/112810758

2)边界值分析法

是对等价类划分方法的补充。测试工作中,大量的bug是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,因此针对各种边界情况设计测试用例,可以查出更多的错误

使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据

可参考以下CSDN解说:
https://blog.csdn.net/liangfengchang/article/details/45041147

3)错误猜测法

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

错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如, 在单元测试时曾列出的许多在模块中常见的错误, 以前产品测试中曾经发现的错误等,这些就是经验的总结。还有, 输入数据和输出数据为0的情况, 输入表格为空格或输入表格只有一行, 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例

4)因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。 考虑输入条件之间的相互组合,可能会产生一些新的情况。 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表, 它适合于检查程序输入条件的各种组合情况 (因果图/判定表法比较适合测试组合数量较少的情况,一般少于20种)

• 因(原因):输入条件
• 果(结果):输出结果
• 因果图:就是通过画图的方式来表示输入条件(因)和输出结果(果)之间的关系

因果图法基本图形符号.png
因果图基本符号图.png
因果图法限制关系图形符号.png
因果图法限制关系图形符号图.png
因果图法测试步骤.png
因果图法判定表.png
因果图法测试用例.png
实例
因果图法例子.png

5)正交表分析法

可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性

正交表是一种特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1

正交表分析法测试需求.png
正交表分析法测试需求结果.png

例如:
对于一个四因素且每个因素均为三水平的试验,如果按照全面试验需要进行3*3*3*3=81次。但是如果用正交试验法选择L9(34)正交表,n=4*(3-1)+1=9次试验就可以覆盖。从这点可以说明用正交试验法能有效地、合理地减少测试用例和工时,节约测试成本

正交表具有以下两个特点

正交表必须满足这两个特点,有一条不满足,就不是正交表
1) 每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件
2) 在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性

实例
正交表分析法例子.png
正交表分析法例子结果.png
如何选择合适的正交表

1)单一水平正交表
存在实验次数等于n,并且水平数大于等于m、因素数大于等于k的正交表,我们把这个正交表拿过来套用;
不存在实验次数等于n的正交表,我们就得找出满足实验次数大于n并且水平数大于等于m、因素数大于等于k的正交表。
2)混合水平正交表存在实验次数等于n,并且水平数大于等于max(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)的正交表,我们把这个正交表拿过来套用;不存在实验次数等于n的正交表,我们就得找出满足实验次数大于n并且水平数大于等于max(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)的正交表。当有2个或2个以上正交表可以被选择时,选取原则是选实验次数最少的那个正交表
☆对于混合正交表,可以使用allpairs工具辅助我们进行选择

譬如,存在 m1 = 5, k1 = 5, m2 = 2, k2 = 1,根据计算公式:n = 5x(5-1) + 1x(2-1) + 1= 22我们发现没有 n = 22 的正交表,那如何选择合适自身的正交表呢? (a)找出满足 n > 22 的正交表 (b)m > max(m1, m2) 即 m > max(5, 2) 且 k >= (k1+k2) = 5+1= 6 (c)选择 n 最小/最简单的正交表: L25(56)

可以用工具allpairs生成正交表,很方便

6)场景分析方法

指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好

(1)用例场景:是通过描述流经用例路径来确定的过程。这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流。
(2)基本流:采用直黑线表示,是经过用例的最简单的路径,也就是功能正常实现的基本流程(流程无任何异常错误,程序从开始直到执行的结束)
(3)备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入基本流中。(各种错误情况)

场景分析方法图例.png

遵循图中每个用例经过的路径,可以确定以下场景:
场景1:基本流
场景2:基本流 备选流1
场景3:基本流 备选流1 备选流2
场景4:基本流 备选流3
场景5:基本流 备选流3 备选流1
场景6:基本流 备选流3 备选流1 备选流2
场景7:基本流 备选流4
场景8: 基本流 备选流3 备选流4

场景分析法设计测试用例步骤

(1)理解业务需求,分析业务基本流和备选流上所有会影响数据流走向的的各种因素,建议从用户操作角度拆分流程中各环节,同时考虑时间、网络等因素
(2)组合场景中可能发生的事件序列
(3)将环境因素和事件序列进行组合并进行分析推导,得到不同的场景

实例
场景分析法实例基本流.png
场景分析法实例备选流.png
场景分析法实例事件流.png
场景分析法实例场景.png

对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例

场景分析法实例测试用例.png

测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据

场景分析法实例测试数据.png

7)状态图法

通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。关注被测对象的状态变化,在需求规格说明中是否有不可以达到的状态和非法的状态,是否产生非法的状态迁移

方法流程

1.根据需求明确状态节点
2.绘制状态迁移图
3.绘制状态迁移树
4.抽取测试用例

实例
状态图法状态图.png

列出输入事件:

状态图法输入事件.png

对空闲状态(程序刚启动时的状态)加所有可能的输入,判断产生哪些新状态

状态图法状态.png

对产生的每个状态分别加所有可能的输入,直至不再有新的状态产生

状态图法可能输入.png

总结最后有如下9个状态

状态图法罗列状态.png

编写测试用例

状态图法测试用例.png

8)大纲法

大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。在一个程序中涉及多个窗口,每个窗口有多个操作,窗口和窗口之间有一定的联系(或者说操作之间的联系),为了弄清它们之间的联系,使用测试大纲法

使用测试大纲法分析程序

1、列大纲(提纲)分析需求—列出所有的窗口以及每个窗口包含的操作
注意:窗口之间的先后顺序
2、找出窗口和窗口(操作和操作)之间的关系,编写用例

实例

有一个商场信息查询系统,具体界面如下图

大纲法实例界面.png

分析需求,列出所有窗口以及每个窗口包含的操作(注意每个窗口之间的先后顺序)
(1)主窗口
①选择专卖店类型(3个)
②点击“地图”
③点击“帮助”
(2)“专卖店”窗口
①选择某个专卖店
②点击“主菜单”
③点击“帮助”
(3)“地图”窗口
①点击“打印”
②点击“上一页”
③点击“主菜单”
④点击“帮助”
(4)“帮助”窗口
①点击“上一页”
②点击“主菜单”

找出窗口中不同操作之间的关系,编写测试用例(部分)

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

推荐阅读更多精彩内容