黑盒测试用例设计方法-测试步骤设计(因果图,判定表,场景法,正交实验,功能图)
一、因果图法
1、概念
- 因果图法是一种适合于多种输入条件组合的测试方法
- 根据输入条件的组合,约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
- 它适合于检查程序输入条件涉及的各种组合情况
2、原因和结果的关系
-
恒等。原因A成立,结果B一定成立。
-
非。原因A成立时,结果B一定不成立。
-
或。原因A、B、C三个条件只要有一个条件成立,结果D就一定会成立。
-
与。原因A、B、C都成立时,结果D才会成立。
3、原因和原因之间的关系
根据功能说明在因果图上加上约束条件。其中互斥、包含、唯一、要求是对原因的约束,屏蔽是对结果的约束。
假如原因成立用1表示,不成立用0表示。
-
互斥(exclusive)。表示不同时为1,即A、B、C中至多只有一个为1。A+B+C≤1
-
包含(include)。表示至少有一个为1,即A、B、C中不同时为0。3≥A+B+C≥1
-
唯一(only)。表示A、B、C中有且仅有一个1。A+B+C=1
-
要求(request)。表示若A=1,则B必须为1.即不可能A=1,B=0
4、结果之间的约束
假如结果成立用1表示,不成立用0表示。
- 屏蔽(mask)。表示A结果出现,B结果一定不出现。
比如:出现注册成功的结果,就一定不会出现注册失败的结果。
5、因果图使用中的局限性
当原因和结果很多的时候,他们之间的关系连线就会很多,导致因果图的可读性变差。因此用作局部的小功能(原因和结果不是很多的时候)分析
不存在反向问题
6、因果图的优势
能够发现设计中存在的不足
二、判定表法
1、应用场合:
主要适用于多条件的内容组合与结果分析。
2、是分析和表达多逻辑条件下执行不同操作的情况的工具。它是由以下几个内容组成:
- 条件桩:列出了问题的所有条件
- 动作桩:列出了问题规定可能采取的操作。
- 条件项:列出针对它左列条件的取值。
- 动作项:列出在条件项的各种取值情况下应该采取的动作。
3、使用的条件:
所有的条件桩在表中的顺序和位置互相不影响。所有的动作桩的顺序不会因为条件顺序的变化而产生不同。
4、实现的步骤:
- 识别出操作条件(原因),和对应的动作(结果)
- 分析条件的条件项(组合数量):如果有n个条件,每个条件有成立和不成立两种情况,那么最后一共会有2的n次方个组合数量。
- 简化和优化结果。排除一些不可能存在情况。
5、适合使用判定表设计测试用例的条件:
- 规格说明(需求)以判定表的形式给出,或很容易转换成判定表
- 条件的排列顺序不影响执行哪些操作
- 规则的排列顺序不影响执行那些操作
- 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则
- 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要
三、场景法
场景法适用于解决业务流程清晰的系统或功能
1、原理
- 软件几乎都是用事件触发来控制流程的。测试时,可以描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
- 基本流:软件功能按照正确的事件流实现的一条正确流程(软件按照正确的方式从头到尾去执行)。通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点
- 备选流:除了基本流之外的各支流,包含多种不同的情况
2、使用注意
- 场景中必须有基本流
- 场景中必须有内容从用例的开始,到用例的结束
3、设计用例的步骤(每一个场景都是一个测试用例)
- 根据说明,描述出程序的基本流及各项备选流
- 根据基本流和各项备选流生成不同的场景
- 对每一个场景生成相应的测试用例
- 对生成的所有测试用例重新复审,去掉多余的测试用例
- 测试用例确定后,对每一个测试用例确定测试数据值
四、正交实验法
1、原理
- 使用的工具:正交表。
- 统计和分析实验数据,从大量实验中找到合适的实验数据组合。
- 大量的实验组合中,挑选出来一部分具有代表性的点,进行试验,分析数据。
2、核心概念
- 影响实验结果的----实验因素
- 每一个因素的不同取值(状况)----水平
- 正交表:每列中,同一个数字(水平),出现的次数相等;任意两列组成的数字对(水平对)出现的次数也是相同的。
3、实现步骤
- 分析所有对结果有影响的因素。从多个角度和方式进行分析(不要放过文本框、按钮等需求中提及或者没有涉及)
- 分析每个因素的水平数量。充分利用等价类、边界值(需求中说明和未说明的都要分析)
- 选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。所有在现实中用到的时候,找最贴近的正交表(正交表的因素数和水平数一般要大于实际的因素数和水平数)
4、正交表
这三个数字之间没有任何的数学关系
- n:代表实验次数
- m:代表水平数
- k:因素的数量
- 仅适合用于每一个因素的水平数都相同的正交表
五、功能图法(状态图)
1、使用场合:
软件的状态会根据某些内容、条件、操作的变化而变化
2、目标:
尽可能覆盖软件的状态、状态-条件的组合
3、步骤
- 列出所有可能的输入事件,以ip N(input)的方式命名:ip N1
- 定义空闲状态(初始状态)。一般以软件刚启动时打开的界面状态为空闲状态
- 为空闲状态加操作(只加一次)
- 为上一步产生的所有新状态加操作(只加一次,并且曾经加过的操作不再重复添加)
- 循环为所有的新增状态加操作,直到没有新状态产生为止
- 组合任意的状态,以列表的形式展现,设计和编写测试用例