说明:本文章非黑盒测试方法使用普及文章,仅阐述每个方法的原理、适用场景及使用技巧。
黑盒测试本质是数据驱动的测试。把程序看做黑盒,不考虑内部逻辑结构,仅根据规格说明设计测试用例,验证其是否符合要求。
黑盒测试方法是穷举输入的测试方法,但实际上无法进行穷举,所以用例设计需要讲究方法和技巧,从而设计出有效且关键的测试用例。
黑盒测试用例设计方法
针对输入或输出条件:等价类划分法、边界值分析法。
针对输入或输出条件之间的联系、互相组合:因果图法、判定表驱动法。
针对多因素、多水平组合(3个或3个以上的试验因素):正交实验法。
针对状态迁移和逻辑:功能图法。
针对业务流程、事件流:场景法。
等价类划分法
原理
把输入或输出数据划分为有效和无效等价类,从每个等价类中选取具有代表性的数据进行测试。
考虑范围:输入值、输出值、内部值、时间关系、计算、测试前置或后置条件、配置等。
适用场景
只要有输入或输出。
使用技巧
- 把尽可能多的有效等价类设计到一条测试用例中;
- 采用边界值分析法进行有效补充。
- 每个无效等价类就是一条测试用例。
- 子集不能相交;
- 子集不能为空;
- 子集的合集应该等同于原始集合。
边界值分析法
原理
针对输入或输出范围的边界值进行测试。
通常是针对有效等价类的边界值进行测试。
考虑范围:变量的最大值、最小值、中间值、比最大值大的值、比最小值小的值。
适用场景
有范围的输入或输出。
使用技巧
通常结合等价类划分法使用,是作为对等价类划分法的有效补充。
错误猜测法
原理
凭借直觉和经验推测某些可能的错误,针对这些错误设计测试用例的方法。
适用场景
几乎所有场景。
使用技巧
没有技巧,直觉和经验堆积。
因果图法
原理
根据输入条件的组合、约束关系和输出条件的因果关系,利用图解法分析输入条件的各种组合情况,写出判定表,从而设计测试用例的方法。
因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
适用场景
多种输入条件组合。
使用技巧
因果图法和判定表结合使用。
判定表驱动法
原理
针对不同逻辑条件的组合值,分别执行不同的操作。
适用场景
多个逻辑条件组合会产生不同的操作情况。
使用技巧
- 规格说明以判定表形式给出,或很容易转换成判定表。
- 条件的排列顺序不会也不影响执行哪些操作。
- 规则的排列顺序不会也不影响执行哪些操作。
- 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
- 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
正交实验法
原理
正交试验法是研究多因素、多水平组合的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
适用场景
多因素、多水平组合(3个或3个以上的试验因素)。
使用技巧
使用PICT工具。
功能图法
原理
一个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输入数据的次序或转移的次序。静态说明描述了输入条件与输出条件之间的对应关系。用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。
功能图法实际上是一种黑盒和白盒相混合(灰盒)的用例设计方法。
功能图法中要用到逻辑覆盖和路径测试的概念和方法(白盒测试方法)。
适用场景
状态迁移(测试路径)与逻辑模型。
使用技巧
功能图中的每一条路径即是一条测试用例。
场景法
原理
核心思想是站在用户的角度上检测软件功能,发现软件的错误。
场景法能够以最少的测试成本,来发现最多的与用户平时使用时息息相关的软件缺陷或错误。
适用场景
业务流程清晰(工作流或场景)、参与者与系统交互过程。
使用技巧
- 理解业务需求,分析业务基本流和备选流上所有会影响数据流走向的的各种因素,从用户操作角度拆分流程中各环节,同时考虑时间、网络等因素。
- 组合场景中可能发生的事件序列。
- 将环境因素和事件序列进行组合并进行分析推导,得到不同的场景。
黑盒测试方法选择策略
测试用例的设计方法不是单独存在的,在实际情况中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率,这需要了解方法的原理,积累经验,以提高测试水平。
- 对于业务流程清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。
- 如果有输入条件的组合,可选择因果图法和判定表驱动法。
- 通过功能图法针对不同时期条件的有效性设计不同的测试数据。
- 优先使用等价类划分,包括输入和输出条件的等价划分,把无限测试变成有限测试,减少工作量和提高测试效率的最有效方法。
- 在任何情况下都必须考虑边界值分析法。
- 使用错误猜测技术增加更多的测试用例。
- 对于参数配置类,使用正交实验法选择较少的组合方式达到最佳效果。
- 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖度量标准,应当再补充足够的测试用例。
参考资料
-《软件评测师教程》
微信公众号:daodaotest