判定表设计测试规范
前言
本文档介绍了针对终端软件测试的判定表法设计测试用例的规范。
本测试规范中对移动终端用判定表法设计测试用例原理进行了详细的描述,并用实例加以说明如何使用该方法设计测试用例。
包括设计测试用例时的使用范围,设计测试用例的步骤等。
本测试规范介绍了一种通用的测试方法,需要根据被测终端软件需求才能形成具体的测试用例。
目录
引入 (4)
1.名词解释 (4)
2.判定表法的原理 (4)
3. 判定表的构成...... . (4)
4.判定表的规则 (4)
4.1规则的定义 (4)
4.2规则的合并 (5)
5.设计测试用例的步骤 (5)
6.实例说明判定表 (5)
7.适用范围 (7)
8.判定表的优点和缺点 (8)
8.1优点 (8)
8.2缺点 (8)
9.参考文档 (8)
10.修改历史 (8)
引入
等价类划分法和边界值分析法都是着重考虑输入条件和数据,但是未考虑输入条件和数据相互依赖、相互制约的情况,但是当输入条件和数据相互依赖、相互制约的时候,采用等价类划分法和边界值分析法是难以描述的,因此必须考虑采用一种适合于描述多种条件的组合,相应产生多个动作的方法来进行测试用例的设计。
注:条件和动作之间的逻辑关系是明确的,可以直接使用判定表法;如果条件和动作关系不明确,则要先使用因果图法。
1.名词解释
判定表也称决策表,是分析和表达多逻辑条件下执行不同操作情况的工具。
条件:输入或是环境(可通过分析动作反推出)
动作:输出/结果
2.判定表法的原理
判定表法设计测试用例的核心是构建判定表,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例的集合。
3.判定表的构成
判定表通常由四个部分组成,如图:
条件桩:找出问题的所有条件(条件的集合)。
通常认为列出条件的次序无关紧要。
动作桩:列出问题规定的可能采取的操作(动作列表)。
这些操作的排列顺序没有约束。
条件项:条件取值(输入的取值或环境的真值Y/N)
动作项:动作取值(输出值)
4.判定表的规则
4.1规则的定义
任何一个条件组合的特定取值及其相应的要执行的操作称为规则。
规则也就是说条件项和动作项的对应关系,一个规则相当于一条测试用例。
在判定表中条件的取值一般为真/假,用符号Y/N(1/0)表示,根据条件项的组合确定动作项的取值,即有n个条件就有2n个规则,例如有3个条件分别为A、B、C,就有8中规则,如下表:
4.2规则的合并
在实际应用判定表时,由于规则数目庞大,常常会先把它简化,也就是合并相似的规则。
如果判定表中,有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,则可将规则合并。
如图:
在左图中,两条规则的动作项是一样的,条件项中的前两项也是一样的,只是第三项不同,这说明,条件项1,2项分别是真值(Y)和假值(N)时,条件项3中无论是什么值,都要执行同一个操作,也可这样说,要执行的动作与条件项3的取值无关。
这样,就可以将这两个规则合并了。
合并后的条件项3可以用特殊的符号表示与取值无关,比如用“-”。
与此类似,无关条件项“-”在逻辑上又可包含其它的条件项取值,具有相同动作的规则进一步合并。
如右图所示。
经过上述的合并规则的方法,合并判定表的规则后,就达到简化判定表的目的,并能够得到简化后的判定表。
5.设计测试用例的步骤
利用判定表法设计测试用例一般分五个步骤:(根据软件规格说明)
1)列出所有的条件桩和动作桩
2)确定规则的个数
3)填入条件项
4)填入动作项,得到初始的判定表
5)简化合并相似的规则
最后生成测试用例
6.实例说明判定表法
实例1、功能点描述:
输入三个正整数a、b、b,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)
第一步,明确条件桩和动作桩:分析功能点描述可知道,这里有4个条件。
条件桩为:a、b、c构成三角形
a=b?
a=c?
b=c?
动作桩为:非三角形
普通三角形
等腰三角形
等边三角形
不可能
第二步,确定规则个数:分析出4个条件,因此,全部规则会有2的4次方,共16条。
第三步,填入条件项。
第四步,填入动作项。
通过以上的四步,就得到了初始的判定表,如图:
第五步,简化合并规则,根据合并的方法分析发现规则9-16可以合并,最后形成简化后的判定表,如图:
第六步,依据简化后的判定表中每一条规则,编写测试用例。
实例 2、登陆功能说明书:(用户名和密码输入)
用户名为“admin”,密码为“123456”登陆成功
用户名和密码为空,提示“用户名或密码不能为空”
用户名输入错误,提示“用户名或密码错误”,用户名和密码清空
用户名正确,密码输入错误,提示“密码错误”,用户名保留,密码清空
根据描述找出条件桩和动作桩,并输入取值得到如下图:
若使用有限条目判定表规则比较多时,可以转换为扩展条目判定表,通过分析得到规则3*3=9条,生成判定表,最后转化成测试用例。
7.适用范围
判定表适用于具有以下特征的应用程序:
1)If-then-else逻辑突出,需求说明很容易转换成判定表。
2)条件和规则的顺序不影响执行哪些操作。
3)输入变量之间存在逻辑关系。
4)输入与输出之间存在因果关系。
提出这4个必要条件的目的是为了使操作的执行完全依赖于条件的组合。
其实对于某些不满足这几条的判定表,同样可以设计测试用例,只不过还需增加其它的测试用例而已。
8.判定表的优点和缺点
在一些数据处理问题中,某些操作是否实施,依赖于逻辑条件的取值,也即在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。
判定表法是处理这类问题的一个非常有力的分析和表达工具。
8.1优点
1)能把复杂的问题按各种可能的情况一一列举出来。
2)充分的考虑了输入条件之间的组合,对组合情况充分的覆盖。
3)对输入条件间的一些制约关系做了考虑,避免了部分无效用例,最终每个用例覆盖多
种输入情况,提高用例有效性。
4)能够给出每个测试用例的预期输出。
8.2缺点
1)不能表达重复执行的动作,例如循环结构。
2)当被测试特性较多时,判定表的规模会很庞大,例如有N个条件的判定表有2n个规则。
3)输入之间的组合,不能有效的确认某些测试组合是否必须测试,会造成一定的冗余。
9.参考文档
《软件测试方法和技术》—清华大学出版社朱少民主编
《软件测试技术》—培训资料。