当前位置:文档之家› 因果图法测试用例

因果图法测试用例

因果图法测试用例
因果图法测试用例

例题:程序规定:输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三条边类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能够成一个三角形)

黑盒测试(因果图法)

程序:

#include

#include

using namespace std;

void main(){

cout<<"输入三边边长:"<

double a,b,c;

cin>>a;

cin>>b;

cin>>c;

if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)

if(a==b&&b==c){

cout<<"等边三角形:"<

}

else if(a==b||a==c||b==c){

cout<<"等腰三角形"<

}

else

{

cout << "普通三角形" << endl;

}

}

else cout<<"不能构成三角形"<

}

(1)分析软件规格说明书,找出原因和结果。

原因:C1: 0≤a≤100

C2: 0≤b≤100

C3: 0≤c≤100

C4: a

C5:b

C6:c

C7: a=b

C8:b=c

C9: a=c

中间结果:10:边范围正确

11.可以构成三角形

12.任意两条边相等

13.三条边相等

结果:E1:边输入不正确

E2:普通三角形

E3:等腰三角形

E4:等边三角形

(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。

(3)将因果图转换成决策表。

测试用例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

输入C1: 0≤a≤100 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 C2: 0≤b≤100 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 C3: 0≤c≤100 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 C4: a>b+c 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 C5:b>a+c 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 C6:c>a+b 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 C7: a=b 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 C8:b=c 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 C9: a=c 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1

中间结果10:边范围正

1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 11:可以构成

三角形

1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 12:任意两条

边相等

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 13:三条边相

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

输出

E1:边输入不正

0 1 1 1 1 1 1 0 0 0 0 0 0 0 0

E2:普通三角形 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 E3:等腰三角形0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 E4:等边三角形0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 (4)根据决策表设计测试用例的输入数据和预期输出。

测试用例编号输入数据预期输出结果

1 3、4、5 普通三角形

2 0、1、2 边输入不正确

3 1、0、2 边输入不正确

4 1、2、0 边输入不正确

5 1、2、3 边输入不正确

6 1、3、2 边输入不正确

7 3、2、1 边输入不正确

8 3、3、4 等腰三角形

9 3、4、4 等腰三角形

10 3、4、3 等腰三角形

11 3、4、5 普通三角形

12 3、3、3 等边三角形

13 3、4、4 普通三角形

14 3、4、3 普通三角形

15 3、3、4 普通三角形

因果图测试用例

1.引言 等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。 因果图(Cause-Effect Graphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。 2.因果图介绍 2.1图例说明 1、4种符号分别表示了规格说明中向4种因果关系。如图2-1所示。 图2-1 因果图关系 2、因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 3、ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。 2.2因果图概念 1、关系(图2-1 因果图关系) ①恒等:若ci是1,则ei也是1;否则ei为0。 ②非:若ci是1,则ei是0;否则ei是1。

③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。 ④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。 2、约束 输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。如图2-2所示。 图2-2因果图约束 .输入条件的约束有以下4类: ①E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。 ②I约束(或):a、b和c中至少有一个必须是1,即a、b 和c不能同时为0。 ③O约束(唯一);a和b必须有一个,且仅有1个为1。 ④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。 B.输出条件约束类型 输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。 2.3因果图法设计测试用例步骤 1、分析待测得系统规格,找出原因与结果 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。 2、画出因果图

测试用例设计方法之因果图法

测试用例设计方法之因果图法 (一)因果图法的来源 大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等; 但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例; 因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。(二)因果图法的特点 考虑输入条件间的组合关系; 考虑输出条件对输入条件的信赖关系,即因果关系; 测试用例发现错误的效率高; 能检查出功能说明中的某些不一致或遗漏; 因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。 (三)因果图法基本步骤 1.分割功能说明书 对于规模比较大的程序来说,由于输入条件的组合数太大,所以很难整体上使用一个因果图。我们可以把它划分为若干部分,然后分别对每个部分使用因果图。例如,测试编译程序时,可以把每个语句作为一个部分。 2.识别出“原因”和“结果”,并加以编号 所谓原因,是指输入条件或输入条件的等价类;而结果则是指输出条件或输出条件的等价类。每个原因或结果都对应于因果图中的一个节点。当原因或结果成立(或出现)时,相应的节点取值为1,否则为0。 例如,有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下: 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

分析这一段说明,我们可以列出原因和结果。 原因如下: ?投入1元硬币; ?投入5角硬币; ?按下“橙汁”按钮; ?按下“啤酒”按钮 结果 ?退还5角钱; ?送出“橙汁”饮料; ?送出“啤酒”饮料 3.根据功能说明书中规定的原因和结果之间的关系画出因果图 因果图的基本符号如图1所示: 1.因果图的基本符号 图中左边的节点表示原因,右边的节点表示结果。恒等、非、或、与的含义: ?恒等:若a=1,则b=1;若a=0,则b=0; ?非:若a=1,则b=0,若a=0,则b=1; ?或:若a=1或b=1或c=1,则d=1;若a= b= c=0,则d=0; ?与:若a= b= c=1,则d=1;若a=0或b=0或c=0,则d=0。 画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用上述基本符号连接起来。在因果图中还可以引入一些中间节点。

鱼骨图分析法(又名因果图)

鱼骨图Cause & Effect/Fishbone Diagram 第1章概念与来源 鱼骨图又名特性因素图是由日本管理大师石川馨先生所发展出来的,故又名石川图。鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“因果图”。鱼骨图原本用于质量管理。 问题的特性总是受到一些因素的影响,我们通过头脑风暴找出这些因素,并将它们与特性值一起,按相互关联性整理而成的层次分明、条理清楚,并标出重要因素的图形就叫特性要因图。因其形状如鱼骨,所以又叫鱼骨图(以下称鱼骨图),它是一种透过现象看本质的分析方法,又叫因果分析图。同时,鱼骨图也用在生产中,来形象地表示生产车间的流程。下图为鱼骨图基本结构: 一般可转化为三种类型: A、整理问题型鱼骨图(各要素与特性值间不存在原因关系,而是结构构成关系,对问题进行结构化整理) B、原因型鱼骨图(鱼头在右,特性值通常以“为什么……”来写) C、对策型鱼骨图(鱼头在左,特性值通常以“如何提高/改善……”来写) 第2章应用场景 鱼骨图常用于查找问题的根因时使用,如对于现场客户的需求进行分析整理时可使用该工具分析用户的本质需求。 第3章使用步骤 制作鱼骨图分两个步骤:分析问题原因/结构、绘制鱼骨图。 分析问题原因/结构

A、针对问题点,选择层别方法(如人机料法环测量等)。 B、按头脑风暴分别对各层别类别找出所有可能原因(因素)。 C、将找出的各要素进行归类、整理,明确其从属关系。 D、分析选取重要因素。 E、检查各要素的描述方法,确保语法简明、意思明确。 分析要点: a、确定大要因(大骨)时,现场作业一般从“人机料法环”着手,管理类问题一般从“人事时地物”层别,应视具体情况决定; b、大要因必须用中性词描述(不说明好坏),中、小要因必须使用价值判断(如…不良); c、脑力激荡时,应尽可能多而全地找出所有可能原因,而不仅限于自己能完全掌控或正在执行的内容。对人的原因,宜从行动而非思想态度面着手分析; d、中要因跟特性值、小要因跟中要因间有直接的原因-问题关系,小要因应分析至可以直接下对策; e、如果某种原因可同时归属于两种或两种以上因素,请以关联性最强者为准(必要时考虑三现主义:即现时到现场看现物,通过相对条件的比较,找出相关性最强的要因归类。) f、选取重要原因时,不要超过7项,且应标识在最未端原因; 绘制鱼骨图 鱼骨图做图过程一般由以下几步组成: 1.由问题的负责人召集与问题有关的人员组成一个工作组(work group),该组成员必须对问题有一定深度的了解。 2.问题的负责人将拟找出原因的问题写在黑板或白纸右边的一个三角形的框内,并在其尾部引出一条水平直线,该线称为鱼脊。 3.工作组成员在鱼脊上画出与鱼脊成45°角的直线,并在其上标出引起问题的主要原因,这些成45°角的直线称为大骨。 4.对引起问题的原因进一步细化,画出中骨、小骨……,尽可能列出所有原因 5.对鱼骨图进行优化整理。 6.根据鱼骨图进行讨论。完整的鱼骨图如图2所示,由于鱼骨图不以数值来表示,并处理问题,而是通过整理问题与它的原因的层次来标明关系,因此,能很好的描述定性问题。鱼骨图的实施要求工作组负责人(即进行企业诊断的专家)有丰富的指导经验,整个过程负责人尽可能为工作组成员创造友好、平等、宽松的讨论环境,使每个成员的意见都能完全表达,同时保证鱼骨图正确做出,即防止工作组成员将原因、现象、对策互相混淆,并保证鱼骨图层次清晰。负责人不对问题发表任何看法,也不能对工作组成员进行任何诱导。 鱼骨图使用步骤 (1)查找要解决的问题; (2)把问题写在鱼骨的头上; (3)召集同事共同讨论问题出现的可能原因,尽可能多地找出问题; (4)把相同的问题分组,在鱼骨上标出; (5)根据不同问题征求大家的意见,总结出正确的原因;

等价类+因果图习题及答案

测试用例设计习题课: 1、使用逻辑覆盖测试方法测试以下程序段 void DOWork(int x,int y,int z) { 1 int k=0,j=0; 2 if((x>3)&&(z<10)) 3 { 4 k=x*y-1; 5 j=sqrt(k); 6 } 7 if((x==4)||(y>5)) 8 j=x*y+10; 9 j=j%3; } 要求(1)画出程序段的控制流图 (2)分别以条件覆盖,路径覆盖方法设计测试用例 测试用例表 2、使用逻辑覆盖测试方法测试以下程序段 void Do(int X,int A,int B) { 1 if((A>1)&&(B==0)) 2 X=X/A; 3 if((A==2)||(X>1)) 4 X=X+1; 5 } 要求(1)画出程序段的控制流图 (2)分别以条件覆盖,路径覆盖方法设计测试用例

3、以此为例根据业务流程设计用户登录的流程图,然后依据流程图设计手动测试用例(假 如密码只允许试三次)。 业务流程图如下:单击登录按钮开始进入如下界面,然后输入账号或者邮件地址、密码、验证码。 账号或邮箱: 密码: 验证码: 下次登录(按钮) 登录按钮 用户登录的流程图: 4、某省高考招生,规定考生的年龄在16周岁至25周岁之间,即出生年月从1978年7月至1987年6月。高考报名程序具有自动检测输入程序的功能。若年龄不在此范围内,则显示拒绝报名的信息。试用等价类划分法为该程序设计测试用例。 设计方法:假定年龄用6位整数表示,前4位表示年份,后2位表示月份。

(1)划分有效等价类和无效等价类。 输入数据有出生年月、数值本身、月份3个等价类,并为此划分有效等价类和无效等价类,见下表: (3 5、有一程序,其规格说明书规定:输入两个字符,当第一个字符是A或B,且第二个字符是数字时修改文件;若第一个字符不是A,也不是B时,输出错误信息M1;若第二个字符不是数字时,输出错误信息M2。试用因果图法设计测试用例。 设计方法: (1)分析规格说明书中,并确定“因”与“果”。 (2)画出因果图。 6、在某应用系统中,系统登录界面如图2.6所示。

以中国象棋中走马的测试用例设计为例学习因果图的使用方法

以中国象棋中走马的测试用例设计为例学习因果图的使用方法。 分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明) 1如果落点在棋盘外,则不移动棋子; 2、如果落点与起点不构成日字型,则不移动棋子; 3、如果落点处有自己方棋子,则不移动棋子; 4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 5、如果不属于1-4条,且落点处无棋子,则移动棋子; 6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子; 7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。原因:结果: 1、落点在棋盘上; 2、落点与起点构成日字; 3、落点处为自己方棋子; 4、落点方向的邻近交叉点无棋子; 5、落点处无棋子; 6、洛点处为对方棋子(非老将); 7、洛点处为对方老将。21、不移动棋子; 22、移动棋子; 23、移动棋子,并除去对方棋子; 24、移动棋子,并提示战胜对方,结束游戏。 L2345678 111110000 2]101I00 3L3101c10 11111100 2200001 2101000 23(.1010] 测试 用例 A3 A8 AR A? R5 B4 RN ur Cl X6 SD PS 考虑结果不能同时发生,所以对其施加唯一约束施加异约束E。 根据因果图建立判定表:(分为两表)0。原因5、6、7不能同时发生,所以对其 添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表

注:1、以上判定表中由于表格大小限制没有列出最后所选的测试用例;2、第2表中部分列被合并表示不可能发生的现象;3、通过中间节点将用例的判定表简化为两个小表。减少工 作量。 四、根据判定表写测试用例表(略)

测试用例八大设计方法和实例

测试用例设计方法 1等价类划分 1.1 理论知识 等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。 因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。 等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 分类: 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 2)划分等价类的方法: 下面给出六条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效

测试用例设计—自动售货机因果图分析

命题 有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1 元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。分析 根据该命题,我们可以分析出,自动售货机的业务中一共存在5个条件和5个结果,分别是:条件: 1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮 结果: 1.售货机〖零钱找完〗灯亮???当售货机中没有零钱的时候就有亮红灯 2.退还1元硬币当投入1元,而且售货机中没有零钱可找的时候 3.退还5角硬币????????????当投入1元,而且售货机中有零钱可找的时候 4.送出橙汁饮料 5.送出啤酒饮料 因果图-画条件和结果 因果图-画简单关系 在画完空白的条件和结果之后,我们可以将题目中最直接和简单的因果条件标出 1、条件“有零钱”和结果“红灯亮”是一个“非”的关系,当“有零钱”的时候,红灯是不亮的,而当售货机中“没有零钱”的时候,红灯必须要亮的。 2、条件“投1元”和条件“投5角”是一个“E”的关系,这两个动作不可能同时发生,即同时投入1元钱和5角钱(不能同时为真);但是我们允许即“不投入1元钱”也“不投入5角钱”(可以同时为假)。 3、条件“选啤酒”和条件“选橙汁”是一个“E”的关系,这两个动作不可能同时发生,即同时“选择啤酒”和“选择橙汁”(不能同时为真);但是我们允许即“不选择啤酒”也“不选择橙汁”(可以同时为假)。 4、条件“选啤酒”和条件“选橙汁”对于程序处理过程是等价的,即二者无论是价格还是系统的处理方法都是相同的,因此这两个条件可以合并为一个中间节点。而且这两个条件之间使用“或”的关系。 5、注意,条件“投1元”和条件“投5角”不是等价关系,表面上看,他们都是“钱”,好像差不多,但是对于程序的处理过程确实完全不同的,“投5角”后完全不用判断当前售货机中是否有零钱(因为题目中规定所有的商品都是5角钱),而“投1元”就不行了。 因果图-送出商品 现在我们从结果的角度考虑,要想“出啤酒”或者“出橙汁”,从现实买卖中分析必须要有什么先决条件呢?是的,就是“你的钱要付清”,而且你一定要选择了“啤酒”或者“橙汁”才行。而在上面的已有因果图中,我们无法找到“钱付清”的因素,因此这时候我们可以试着再加一个中间节点,就叫“钱付清”吧。 要想获得选中的商品,则条件“钱付清”和条件“选啤酒/选橙汁”必须要同时成立,因此是“与”的关系。 因果图-应该找零钱 根据题意,当投入1元钱,而且又选中了某一种商品的时候,系统是需要找零钱的。而现有条件和结果中并没有涉及到“应该找零钱”这种情况,因此我们还需要增加一个中间节点“应该找零钱”。

因果图法测试用例

例题:程序规定:输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三条边类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能够成一个三角形) 黑盒测试(因果图法) 程序: #include #include using namespace std; void main(){ cout<<"输入三边边长:"<>a; cin>>b; cin>>c; if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)

E2:普通三角形 E3:等腰三角形 E4:等边三角形 (2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。 (3)将因果图转换成决策表。

测试用例设计方法2——因果图判定表

测试用例设计方法2——因果图判定表 判定表法 判定表是分析和表达多种输入情况下执行不同动作的工具,判定表方法主要用于处理程序输入条件的不同组合,但是要求条件的组合必须是bool类型,而且条件和预期的结果都是可以分析出来的。判定表能够有效地弥补等价类和边界值方法的不足,使得输入条件之间的组合和相互影响得到充分的测试。 使用判定表的一般思路是: 1、需求分析,分析出条件和结果之间的各种组合 2、将条件和结果分别填入判定表 3、讲条件和结果进行二进制排列 4、针对每一项组合,分析出结果,并去除无效项,是判定表得到简化。在合并判定表时,如果条件之中只有一个不同,则可以合并。如果判定表的组合不够多,建议不要进行合并,这样可以测试的充分一些。 5、每一列生成一个测试用例 以阅读指南的例子来设计一个判定表:从例子中可以看到,不同的条件组合 使用判定表方法可以充分弥补等价类边界值得不足,但是当输入条件过多时,使用判定表会产生大量测试用例。而其无效用例不易发现,更不能覆盖条件之间的先后关系。因此,在一定情况下,使用判定表还需要因果图的帮忙。 -------------------------------------------------------------------------------- 因果图

因果图用于描述系统之间的输入输出,输入输出之间的约束关系和因果关系。因果图与判定表往往结合使用,使用因果图可以得到判定表。 使用因果图的方法: 1、分析输入输出并进行标识 2、分析输入和输入、输入和输出之间的关系 3、将得到的关系使用因果图的方法表示出来 4、根据因果图得到判定表 5、依据判定表生成测试用例 这里分析一个自动售货机的因果图分析方法: 条件:有一个处理单价为5角的自动售货机,当投入5角或1元硬币时,选择橙汁或啤酒,饮料出来;若自动售货机没有零钱,则显示零钱照完,亮红灯,这时候投入的1元被退出来,饮料不送出来。如果有零钱,则出饮料并找5角钱。 分析: 1、选择橙汁和啤酒是同一类型,可以进行归类 2、选择5角和1元看似是同一类,但是他们所触发的操作是不同的,不能归类 3、橙汁和啤酒、5角和1元是相异的关系 4、分析不同的组合并得到最终结果 总结:因果图的使用和分析比较复杂,使用因果图可能会消耗很多的时间,因此正确的策略是先考虑其他的测试用例设计方法,最后再使用因果如,可以尽量的减少工作的时间并提高效率。

自动售货机测试用例(因果图)

题目:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。 1.分析这一段说明,列出原因和结果 原因: 1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮 结果: 21.售货机〖零钱找完〗灯亮 22.退还1元硬币 23.退还5角硬币 24.送出橙汁饮料 25.送出啤酒饮料 2.画出因果图 如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点: 11. 投入1元硬币且押下饮料按钮 12. 押下〖橙汁〗或〖啤酒〗的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清 3.转换成判定表:

4.设计测试用例 1)在售货机有零钱找的情况下,投入1元硬币,押下橙汁按钮,找回5角硬币并送出橙汁 饮料。 2)在售货机有零钱找的情况下,投入1元硬币,押下啤酒按钮,找回5角硬币并送出啤酒 饮料。 3)在售货机有零钱找的情况下,投入1元硬币,系统不做任何处理。 4)在售货机有零钱找的情况下,投入5角硬币,押下橙汁按钮,送出橙汁饮料。 5)在售货机有零钱找的情况下,投入5角硬币,押下啤酒按钮,送出啤酒饮料。 6)在售货机有零钱找的情况下,投入5角硬币,系统不做任何处理。 7)在售货机有零钱找的情况下,押下橙汁按钮,系统不做任何处理。 8)在售货机有零钱找的情况下,押下啤酒按钮,系统不做任何处理。 9)在售货机没有零钱找的情况下,投入1元硬币,押下橙汁按钮,售货机“零钱找完”灯 亮,并退还1元硬币。 10)在售货机没有零钱找的情况下,投入1元硬币,押下啤酒按钮,售货机“零钱找完”灯 亮,并退还1元硬币。 11)在售货机没有零钱找的情况下,投入1元硬币,售货机“零钱找完”灯亮。 12)在售货机没有零钱找的情况下,投入5角硬币,押下橙汁按钮,售货机“零钱找完”灯 亮,并送出橙汁饮料。 13)在售货机没有零钱找的情况下,投入5角硬币,押下啤酒按钮,售货机“零钱找完”灯 亮,并送出啤酒饮料。 14)在售货机没有零钱找的情况下,投入5角硬币,售货机“零钱找完”灯亮。 15)在售货机没有零钱找的情况下,押下橙汁按钮,售货机“零钱找完”灯亮。 16)在售货机没有零钱找的情况下,押下啤酒按钮,售货机“零钱找完”灯亮。

因果图测试规范

因果图设计测试规范

本文档介绍了针对终端软件测试的因果图法测试规范。 本测试规范中对移动终端用因果图法设计测试用例原理进行了详细的描述,并用实例加以说明如何使用该方法设计测试用例。包括设计测试用例时的使用范围,设计测试用例的步骤等。 本测试规范介绍了一种通用的测试方法,需要根据被测终端软件需求才能形成具体的测试用例。

1.简介 (4) 2.作用 .............................................................................................................. 错误!未定义书签。 3.因果图法基本规则 (4) 3.1.因果图的基本符号 (4) 3.2.因果图的约束符号 (5) 4.测试用例设计步骤 (6) 4.1.列出输入项和输出项 (7) 4.2.分析因果关系 (7) 4.3.标注约束形成因果图 (7) 4.4.转换成判定表 (7) 4.5.设计测试用例 (7) 5.因果图法举例 (8) 5.1.因果图法典型例子 (8) 5.2.飞信添加好友实例 (10) 6.因果图的优点和缺点 (13) 6.1.优点 (13) 6.2.缺点 (13) 7.名词解释 (14) 8.参考文档 (14) 9.修改历史 ...................................................................................................... 错误!未定义书签。

1.简介 因果图是一种测试用例的设计方法。能从用自然语言书写的程序规格说明的描述中找出的“因”(输入条件)和“果”(输出或程序状态的改变),通过因果图转换为判定表,最后依据判定表进行测试用例的设计。所生成的判定表可以不通过剪裁直接生成测试用例,但会导致测试用例的冗余。即使是对于一般的小规模软件,画出的因果图也可能是非常庞大的,以至于依据因果图的写出测试用例数量很庞大,给测试工作带来沉重的负担。 2. 适用范围 因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。 因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。 3. 因果图法基本规则 检查输入条件的组合不是容易的事情,即使把所有输入条件都划分成等价类,它们之间的组合情况也相当多。如果没有系统性的方法来选择输入条件的一个子集,可能导致低效率的测试。因此,必须考虑使用一种适合于描述这样一种情况的测试设计方法,对于多种条件的组合相应产生多个动作的形式,这就用到了因果图法。 3.1. 因果图的基本符号 通常在因果图中用ci表示原因,用ei表示结果;各结点表示状态,可取值0或1。0表示某状态不出现;1表示某状态出现。因果图的基本关系,如下图:

因果图设计测试用例

测试用例设计方法的介绍—因果图 前言为什么需要测试用例 ......................................................... 错误!未指定书签。 1.测试用例设计的方法分类 .................................................... 错误!未指定书签。 1.1.黑盒测试 ......................................................................... 错误!未指定书签。 1.2.白盒测试 ......................................................................... 错误!未指定书签。 1.3.灰盒测试 ......................................................................... 错误!未指定书签。 2.因果图的具体介绍 ................................................................ 错误!未指定书签。 2.1.为什么么需要因果图 ..................................................... 错误!未指定书签。 2.2.因果图概念介绍 ............................................................. 错误!未指定书签。 2.2.1.布尔逻辑运算符 ...................................................... 错误!未指定书签。 2.2.2.因果图的约束关系表示法 ...................................... 错误!未指定书签。 2.3.使用因果图设计测试用例的步骤 ................................. 错误!未指定书签。 2.3.1.分析需求 .................................................................. 错误!未指定书签。 2.3.2.确定原因和结果 ...................................................... 错误!未指定书签。 2.3.3.确定逻辑关系 .......................................................... 错误!未指定书签。 2.3.4.确定约束关系 .......................................................... 错误!未指定书签。 2.3.5.把因果图转换为决策表 .......................................... 错误!未指定书签。 2.3.6.根据原因给出结果 .................................................. 错误!未指定书签。 2.3.7.设计测试用例 .......................................................... 错误!未指定书签。 2.4.举例说明 ......................................................................... 错误!未指定书签。 2.4.1.例子1 ....................................................................... 错误!未指定书签。 2.4.2.例子2 ....................................................................... 错误!未指定书签。 3.使用因果图的好处 ................................................................ 错误!未指定书签。 4...................................................................................................... 错误!未指定书签。

自动售货机测试用例(因果图)

题目: 有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下: 若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。 1.分析这一段说明,列出原因和结果 原因: 1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮 结果: 21.售货机〖零钱找完〗灯亮 22.退还1元硬币 23.退还5角硬币 24.送出橙汁饮料 25.送出啤酒饮料 2.画出因果图

如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点: 11.投入1元硬币且押下饮料按钮 12.押下〖橙汁〗或〖啤酒〗的按钮 13.应当找5角零钱并且售货机有零钱找 14.钱已xx 3.转换成判定表: 4.设计测试用例 1)在售货机有零钱找的情况下,投入1元硬币,押下橙汁按钮,找回5角硬币并送出橙汁饮料。 2)在售货机有零钱找的情况下,投入1元硬币,押下啤酒按钮,找回5角硬币并送出啤酒饮料。 3)在售货机有零钱找的情况下,投入1元硬币,系统不做任何处理。 4)在售货机有零钱找的情况下,投入5角硬币,押下橙汁按钮,送出橙汁饮料。 5)在售货机有零钱找的情况下,投入5角硬币,押下啤酒按钮,送出啤酒饮料。 6)在售货机有零钱找的情况下,投入5角硬币,系统不做任何处理。 7)在售货机有零钱找的情况下,押下橙汁按钮,系统不做任何处理。 8)在售货机有零钱找的情况下,押下啤酒按钮,系统不做任何处理。 9)在售货机没有零钱找的情况下,投入1元硬币,押下橙汁按钮,售货机“零钱找完”灯亮,并退还1元硬币。

测试用例设计之因果图方法

测试用例设计之因果图方法 一.方法简介 1.定义 是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 2.因果图法产生的背景: 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。 3.因果图介绍 1) 4种符号分别表示了规格说明中向4种因果关系。 2) 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 3) Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。

4.因果图概念 1)关系 ①恒等:若ci是1,则ei也是1;否则ei为0。 ②非:若ci是1,则ei是0;否则ei是1。 ③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。 ④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。 前面两者①,②,考虑的是单个输入(原因)和输出(结果)之间的关系:也就是输入为真(假)时,输出的值为真还是假的对应关系,很自然的,我们很容易想到有两种情况:一种和输入同真同假,一种和输入相反。 后面两者③,④,考虑的是多个输入之间的组合输入和输出之间的关系:我们也很容易想到:一种是组合关系为或(or),一种组合关系为组合(and),满足这种组合关系得出的输出才为真,否则为假 2)约束 输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。

判定表+因果图法测试用例设计

第三部分任务3-3附2因果图法 单元名称 3 测试分析设计 任务名称3-3附2因果图法测试用例设计方法 任务描述学习判定表+因果图法设计测试用例的方法,完成测试用例设计学习目标 1. 因果图法测试用例设计方法。 关键词1.判定表 2.因果图。。。。。。 技能点因果图的画法 具体工作任务任务1 自学判定表+因果图法测试用例设计方法 任务-2 完成作业“象棋规则”中关于棋子“马”的落子规则的用例设计(参见作业“因果图法测试作业”) 任务3(附加题)完成“自动售货机”的用例设计 成果提交成果展示: 展示完成的测试用例(可用Excell实现)提交内容: 完成的测试用例 附2作业:因果图法测试作业. 1、象棋游戏规则(针对棋子“馬”):

1) 如果落点在棋盘外,则不移动棋子 2) 如果落点与起点不构成日字型,则不移动棋子。 3) 如果落点处有自己方棋子,则不移动棋子。 4) 如果落点方向的临近交叉点有棋子(绊马腿),则不移动棋子。 5) 如果不属于1-4条,且落点处无棋子,则移动棋子。 6) 如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋 子并除去对方棋子。 7) 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示 战胜对方,游戏结束。

(1)使用因果图法列出原因和结果 (2)画出因果图,修改为最简洁的图。注意分析原因之间、结果之间是否有约束关系。 (3)根据因果图列出判定表 (4)根据判定表的中得出的输入数据,写出规范的。 参考步骤: (1)分析数据

测试用例编号棋子落点预期输出备注 原因: 1———— 2———— 。。。。。。 结果: A———— B———— 。。。。。。 (2) 因果图 (3) 判定表 (4) 测试用例 测试用例格式可参照下表 2(附加)、有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按 钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下 一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮, 这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币 也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元 硬币及按饮料按钮,则送出饮料的同时找回5角硬币。 (1)使用因果图法列出原因和结果

因果图测试用例

软件测试基本概念 软件测试的定义: 1.软件测试是为了发现错误而执行程序的过程。 2.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤 其实这两种定义是一致的,前面一种定义,强调了软件测试的目的,后面一种定义强调了软件测试的方法和过程。通过这两个定义,我们知道了,软件测试就是通过设计测试方法和用例,对软件进行流程抽样得到软件正确性,可靠性的过程。 软件测试在软件生命周期中横跨两个阶段: 第一个阶段:单元阶段,即在每个模块编写出以后所做的必要测试。 第二个阶段:综合测试阶段,即爱完成单元测试后进行的测试,如集成测试,系统测试,验收测试。 测试用例:所谓测试用例是为特定的目的而设计的一组测试输入,执行条件和预期的结果;测试用例是执行测试的最小实体,一个好的测试用例在于发现了还未曾发现的错误,一次成功的测试则是发现了错误的测试。 测试步骤:测试步骤详细规定了如何设置,执行,评估特定的测试用例。 我们都不可能对程序进行完全测试。原因有三点: 1.可能的输入范围太大,根本无法穷举测试。 2.程序中可能的运行路径太多,根本无法穷尽测试。 3.用户界面问题太复杂,不可能进行完全测试。 既然不可能进行完全测试,那么我们也就无法验证一个程序的正确性,那测试的目的到底是什么呢? 测试的目的是发现错误。测试是程序的执行过程,目的在于发现错误,并且是尽可能地发现更是多错误,发现的错误越严重越好。 根据以上软件测试的目的,总结出软件测试的原则是: 1.尽早地和及时地测试,发现的越晚,修复的代价越高 2.测试用例应当由测试数据和与之对应的预期结果两部分组成 3.在程序提交测试后,应但有专门的测试人员进行测试,避免有程序设计者自行检查程序 4.测试用例应包括合理的输入条件和不合理的输入条件 5.严格执行测试计划,排除测试的随意性 6.充分注意测试当中的群里现象 7.应对每一个测试结果做全面的检查 8.保存测试计划,测试用例,出错统计和最终分析报告,为维护工作提供充分的资料。 测试停止的依据标准 1.第一类标准:测试超过了预定时间,则停止测试。 2.第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。 3.第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。 4.第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订 数目的故障。

判定表+因果图法测试用例设计

第三部分任务3-3附2因果图法

附2作业:因果图法测试作业. 1、象棋游戏规则(针对棋子“馬”): 1)如果落点在棋盘外,则不移动棋子 2)如果落点与起点不构成日字型,则不移动棋子。 3)如果落点处有自己方棋子,则不移动棋子。 4)如果落点方向的临近交叉点有棋子(绊马腿),则不移动棋子。 5)如果不属于1-4条,且落点处无棋子,则移动棋子。 6)如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去 对方棋子。 7)如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方, 游戏结束。 (1)使用因果图法列出原因和结果 (2)画出因果图,修改为最简洁的图。注意分析原因之间、结果之间是否有约束关系。 (3)根据因果图列出判定表 (4)根据判定表的中得出的输入数据,写出规范的。 参考步骤: (1)分析数据

原因: 1———— 2———— 。。。。。。 结果: A———— B———— 。。。。。。 (2)因果图 (3)判定表 (4)测试用例 测试用例格式可参照下表 2(附加)、有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。 (1)使用因果图法列出原因和结果

相关主题
文本预览
相关文档 最新文档