Jiang LiHeng Good is good, but better carries it.

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

2020-03-11
jiangliheng
本文 2038 字,阅读全文约需 6 分钟

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

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

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

黑盒测试用例设计方法

针对输入或输出条件:等价类划分法、边界值分析法

针对输入或输出条件之间的联系、互相组合:因果图法、判定表驱动法

针对多因素、多水平组合(3个或3个以上的试验因素):正交实验法

针对状态迁移和逻辑:功能图法

针对业务流程、事件流:场景法

等价类划分法

原理

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

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

适用场景

只要有输入或输出。

使用技巧

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

边界值分析法

原理

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

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

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

适用场景

有范围的输入或输出。

使用技巧

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

错误猜测法

原理

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

适用场景

几乎所有场景。

使用技巧

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

因果图法

原理

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

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

适用场景

多种输入条件组合。

使用技巧

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

判定表驱动法

原理

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

适用场景

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

使用技巧

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

正交实验法

原理

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

适用场景

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

使用技巧

使用PICT工具。

功能图法

原理

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

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

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

适用场景

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

使用技巧

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

场景法

原理

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

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

适用场景

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

使用技巧

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

黑盒测试方法选择策略

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

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

参考资料

-《软件评测师教程》

微信公众号:daodaotest


作者:Jiang LiHeng
原文链接:https://jiangliheng.github.io/2020/03/11/test-black-box-design/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。


Comments

Content