测试理论之黑盒测试用例设计方法及选择策略

说明:本文章非黑盒测试方法使用普及文章,仅阐述每个方法的原理、适用场景及使用技巧。

黑盒测试本质是数据驱动的测试。把程序看做黑盒,不考虑内部逻辑结构,仅根据规格说明设计测试用例,验证其是否符合要求。

黑盒测试方法是穷举输入的测试方法,但实际上无法进行穷举,所以用例设计需要讲究方法和技巧,从而设计出有效且关键的测试用例。

黑盒测试用例设计方法

针对输入或输出条件:等价类划分法、边界值分析法
针对输入或输出条件之间的联系、互相组合:因果图法、判定表驱动法
针对多因素、多水平组合(3个或3个以上的试验因素):正交实验法
针对状态迁移和逻辑:功能图法
针对业务流程、事件流:场景法

等价类划分法

原理
把输入或输出数据划分为有效和无效等价类,从每个等价类中选取具有代表性的数据进行测试。

考虑范围:输入值、输出值、内部值、时间关系、计算、测试前置或后置条件、配置等。

适用场景
只要有输入或输出。

使用技巧

  • 把尽可能多的有效等价类设计到一条测试用例中;
    • 采用边界值分析法进行有效补充。
  • 每个无效等价类就是一条测试用例。
    • 子集不能相交;
    • 子集不能为空;
    • 子集的合集应该等同于原始集合。

边界值分析法

原理
针对输入或输出范围的边界值进行测试。

通常是针对有效等价类的边界值进行测试。

考虑范围:变量的最大值、最小值、中间值、比最大值大的值、比最小值小的值。

适用场景
有范围的输入或输出。

使用技巧
通常结合等价类划分法使用,是作为对等价类划分法的有效补充。

错误猜测法

原理
凭借直觉和经验推测某些可能的错误,针对这些错误设计测试用例的方法。

适用场景
几乎所有场景。

使用技巧
没有技巧,直觉和经验堆积。

因果图法

原理
根据输入条件的组合、约束关系和输出条件的因果关系,利用图解法分析输入条件的各种组合情况,写出判定表,从而设计测试用例的方法。

因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。

适用场景
多种输入条件组合。

使用技巧
因果图法和判定表结合使用。

判定表驱动法

原理
针对不同逻辑条件的组合值,分别执行不同的操作。

适用场景
多个逻辑条件组合会产生不同的操作情况。

使用技巧

  1. 规格说明以判定表形式给出,或很容易转换成判定表。
  2. 条件的排列顺序不会也不影响执行哪些操作。
  3. 规则的排列顺序不会也不影响执行哪些操作。
  4. 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
  5. 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

正交实验法

原理
正交试验法是研究多因素、多水平组合的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。

适用场景
多因素、多水平组合(3个或3个以上的试验因素)。

使用技巧
使用PICT工具。

功能图法

原理
一个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输入数据的次序或转移的次序。静态说明描述了输入条件与输出条件之间的对应关系。用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。

功能图法实际上是一种黑盒和白盒相混合(灰盒)的用例设计方法。

功能图法中要用到逻辑覆盖和路径测试的概念和方法(白盒测试方法)。

适用场景
状态迁移(测试路径)与逻辑模型。

使用技巧
功能图中的每一条路径即是一条测试用例。

场景法

原理
核心思想是站在用户的角度上检测软件功能,发现软件的错误。

场景法能够以最少的测试成本,来发现最多的与用户平时使用时息息相关的软件缺陷或错误。

适用场景
业务流程清晰(工作流或场景)、参与者与系统交互过程。

使用技巧

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

黑盒测试方法选择策略

测试用例的设计方法不是单独存在的,在实际情况中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率,这需要了解方法的原理,积累经验,以提高测试水平。

  1. 对于业务流程清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。
  2. 如果有输入条件的组合,可选择因果图法和判定表驱动法。
  3. 通过功能图法针对不同时期条件的有效性设计不同的测试数据。
  4. 优先使用等价类划分,包括输入和输出条件的等价划分,把无限测试变成有限测试,减少工作量和提高测试效率的最有效方法。
  5. 在任何情况下都必须考虑边界值分析法。
  6. 使用错误猜测技术增加更多的测试用例。
  7. 对于参数配置类,使用正交实验法选择较少的组合方式达到最佳效果。
  8. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖度量标准,应当再补充足够的测试用例。

参考资料

-《软件评测师教程》

微信公众号:daodaotest

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

推荐阅读更多精彩内容

  • 测试用例的设计是测试实现阶段的核心工作,也是指导如何执行测试的基础。 测试用例(Test Case)是为某个特殊目...
    倔强的潇洒小姐阅读 8,767评论 1 21
  • 一、常用黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 因果图法 状态迁移图法 流程分析法 正交试验法...
    hollow_s阅读 1,076评论 0 1
  • 测试用例的内容:用例编号、用例标题、重要级别、预置条件、测试输入、操作步骤、预期结果、测试结果、作者。 黑盒测试用...
    CT9955阅读 3,978评论 0 31
  • 一,边界值 什么是边界值? 边界值是对于输入等价类和输出等价类而言,稍高于其边界值与稍低于边界值的一些特定情况。 ...
    hello李治中阅读 518评论 0 0
  • 思考: 任意输入三角形三边,判断能够构成三角形?输入3个整数a、b、c构成三角形,设计测试用例数量。假设在16位计...
    EndEvent阅读 3,519评论 0 4