第3章(4)黑盒测试方法4-因果图法分解
- 格式:ppt
- 大小:565.00 KB
- 文档页数:48
黑盒测试用例--因果图设计法
•因果图:是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系
•因果图法:是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种的情况。
描述:
1.年薪制员工:严重过失,扣年终风险金的4%;
过失,扣年终风险金的2%
2.非年薪制员工:严重过失,扣当月薪资的8%
过失,扣当月薪资的4%
要求:如果年薪制员工既是过失又是严重过失则扣年终风险金的4% ;非年薪制员工既是过失又是严重过失扣当月薪资的8%
首先列出原因和结果
其次画出因果图:
再次:转换为判定表:
最后:分析测试用例
因果图的优点、缺点:
优点:不论输入条件的组合多么复杂,总可以按照上面的例子给出的步骤找出测试用例。
不足:输入条件的组合数2ª随a的上升急剧增长,当a较大时,因果图的结构将变得十分复杂,而把因果图转换为判定表则更为麻烦。
转自:哈尔滨软件测试交流/。
黑盒用例设计方法之因果图法1.因果图的具体介绍 (2)1.1.为什么么需要因果图 (2)1.2.因果图概念介绍 (2)1.2.1.布尔逻辑运算符 (3)1.2.2.因果图的约束关系表示法 (4)1.3.使用因果图设计测试用例的步骤 (6)1.3.1.分析需求 (6)1.3.2.确定原因和结果 (6)1.3.3.确定逻辑关系 (6)1.3.4.确定约束关系 (6)1.3.5.把因果图转换为决策表 (7)1.3.6.根据原因给出结果 (7)1.3.7.设计测试用例 (7)1.4.举例说明 (7)1.4.1.例子1 (7)1.4.2.例子2 (10)2.使用因果图的好处 (13)总上所述,我认为因果图最大的好处有2点: (13)1.因果图的具体介绍1.1.为什么么需要因果图在黑盒测试中,等价类划分或边界值分析法只考虑了不同的输入和不同的输出之间的关系。
但是如果是各个输入条件之间有很复杂的组合,这二种设计方法都很难用一个系统的方法进行描述,设计测试用例只能依靠测试人员主观的猜测或者分析,具有很大的盲目性。
让我们先来看一个简单的例子。
假设某个软件需求文档中有这样的说明:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。
但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
先用等价类来分析,第一列会有三个输入:A、B、非(A B)的字符。
第二列字符有二个输入:数字、非数字(为了简便起见,有关数字再细化的问题不做讨论)。
这是一个根据理论进行分析的过程。
但是做完了这一步,并不能得出输出。
也就是说如何分析第一列和第二列的关系,没有明确的理论指导。
实际操作过程中,各个测试人员可能会设计出不同的测试用例。
这个例子还仅仅是一个2个输入条件之间有关系,如果到更复杂的应用中,可能会更多。
如果没有一种方法指导我们的思想,测试用例就会很不全面。
而因果图正好弥补了上述缺点。
我们先来看一下什么叫因果图。
实验3、黑盒测试:决策表法、因果图法及测试用例设计
一、实验目的
1、掌握决策表法、因果图的概念。
2、掌握决策表法、因果图测试用例设计法。
二、实验内容
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
用程序模拟该自动售货机(注:用屏幕输入、输出来模拟售货机的动作),然后用因果图法测试该程序。
三、实验步骤:
1)分析原因与结果
2)画出因果图
3)转化为决策表
4)根据决策表设计测试用例,得到测试用例表
代码:
#include <stdio.h>
main(){
float i;
char j;
printf("请投入硬币:\n");
scanf("%f",&i);
printf("请选择所需饮料:\na:橙汁 or b:啤酒\n");
scanf("%s",&j);
if(i==0.5){
printf("出货成功");
}
else{
printf("找零%.2f元\n出货成功",i-0.5);
}
}
答:。
一、等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1) 划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2)划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类…………然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号。
测试用例设计方法之因果图法与判定表1.因果图法1.1.前言从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。
因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。
1.2.定义因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。
因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
1.3.因果关系因果图的表示中输入与输出间的因果关系有四种:1)恒等关系:当输入条件发生,会产生对应输出,当输入条件不发生时,不会产生都会应输出。
2)非关系:与恒等关系相反。
3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。
4)与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出。
特定的符号标明因果关系如下(图1.3.1):图1.3.1因果图的表示中输入与输入间的约束关系有四种:1)异(E):所有输入中至多一个输入条件发生。
2)或(I):所有输入中至少一个输入条件发生。
3)唯一(O):所有输入中有且只有一个输入条件发生。
4)要求(R):所有输入中只有一个输入条件发生,则其它输入也会发生。
特定的符号标明输入与输入间约束关系如下(图1.3.2):图1.3.2因果图的表示中输出条件约束类型(见图1.3.2):1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。