因果图实例讲解_第1页
因果图实例讲解_第2页
因果图实例讲解_第3页
因果图实例讲解_第4页
因果图实例讲解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.引言51Testing软件测试网0O5v4?1N.0d51Testing软件测试网MK0ez;R  等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。51Testing软件测试网 t1B#AW  因果图(Cause-EffectGraphing

2、)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。51Testing软件测试网3g$h4HR  因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。)m F2N7Q8Au6Wl!V051Testing软件测试网"Oh O3hg C$D2.因果图介绍51Testing软件测试网#T!l$m h&V:?0|51Testing软件测试网2fh .B9yvo7G7Q2.1图例说明51Testing软件测试网A4xR.?SG:s5XiS 51Testing软件测试网h&q

3、uot;r b8Z2)P0ZO"d V1、4种符号分别表示了规格说明中向4种因果关系。如图2-1所示。%C-.b"KvK KEA0  0 B!fvFG_$|051Testing软件测试网h O:Nt%T5L                          图2-1 因果图关系51Testing软件测试网p&

4、#39;g K$ec rD51Testing软件测试网v;P)|Sda6A2、因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。51Testing软件测试网1o#to2 J.o:RHj3、ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。51Testing软件测试网)e!J_#AbN3o0x x2b(r5gT%P02.2因果图概念ksi$S4x3jw0&A;HHM&K xm01、关系(图2-1 因果图关系)*v:k4VCjR d*p0

5、60;    恒等:若ci是1,则ei也是1;否则ei为0。:XO:e#uz-qO0     非:若ci是1,则ei是0;否则ei是1。x30d9Im$Ve+wW0     或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。t4 ?Y*p0     与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。A c-8e)c6B7H0+O0gM6D"D(h02、约束N ?zu7? ;Z)v/0&#

6、160;  输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。如图2-2所示。51Testing软件测试网xW7V!s(a_v51Testing软件测试网c0zklmha;QY0                         

7、0;   2Y? rOjI0                           图2-2因果图约束51Testing软件测试网U5tvI.Wj51Testing软件测试网%*i D6Ga*E (rCA.输入条件的约束有以下4类: %c R,Pj0 E约束(异):a和b中至多有一个可能为1,即a和b

8、不能同时为1。 l hi"A'z ?0 I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。 51Testing软件测试网w7_ N'y _ IR -v O约束(唯一);a和b必须有一个,且仅有1个为1。 51Testing软件测试网R4ySqE,C p9R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。51Testing软件测试网ByoDVR51Testing软件测试网3v i6MCa,d3mB.输出条件约束类型51Testing软件测试网YhX2qob)L输出条件的约束只有M约束(强制):若结果a是

9、1,则结果b强制为0。51Testing软件测试网2j)m p0RL.O1E51Testing软件测试网tC4hfF.Y"e|2.3因果图法设计测试用例步骤-G:RB4m o$H5X0.t*|neYni01、分析待测得系统规格,找出原因与结果51Testing软件测试网G z#G h a$L   分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。3c%x%M;Pp+V$e lHO'T'a02、画出因果图51Testing软件测试网(f3BvRc,k6?G &#

10、160; 分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系。根据这些关系,画出因果图。D.CW O/_j A)U:A03、标记约束或限制条件51Testing软件测试网Pw n$zH4G c   由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况下不可能出现。 为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。# u/f%b8H*O,j4J04、把因果图转换为判定表。51Testing软件测试网emSvuZZV5、用判定表中的每一项生成测试用例。%h V7IF#LO7z7y-051Testing软件测试网*K5O2M;Yc/

11、3.因果图实例,EDe).A$J$pcEy051Testing软件测试网$mF/.w*L n"Gl/K3.1实例一8|-T)dH5GL w92D051Testing软件测试网 A Tg'O1S0n.u 4_5R某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。51Testing软件测试网OI5j(EbTT1New/zK6dNH;LX01、对说明进行分析,得到原因和结果:51Testing软件测试网wH*wY&D_0A Z W1)(?!D

12、E-2d:I Bk 0原因:  51Testing软件测试网 eo7#fS1:第一列字符是A;a2?6uU'G&i!M3v02:第一列字符是B;51Testing软件测试网iOQ-i Z&h)b3:第二列字符是一数字。51Testing软件测试网r.ex;A-FX2_tx,y0qN j%a'P c0结果:RRf;vz Xh,m.E021:修改文件;51Testing软件测试网 S*e.AFV,e22:给出信息L;51Testing软件测试网b_:A9ne f23:给出信息M。73l6oG| MV051Testing软件测试网0Y/j MwLc

13、52、其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图3-1所示。51Testing软件测试网tJMgv? D51Testing软件测试网R!O_E%pni o  _m/g E#!Y0  +e 2crp;v _:t'M Li*0                      

14、60; 图3-1实例一的因果图9s1z J09Vi is, tw4"Cn8C03、根据因果图建立判定表。51Testing软件测试网r !kj O,A9u 7B)b'W1fN28m0   51Testing软件测试网v _E&H"Z#qH)S51Testing软件测试网gc OL/FB ZhK S   表中8种情况的左面两列情况中,原因和原因同时为1,这是不可能出现的,故应排除这两种情况。0IZ2g*q J_ w0L&P9C051Testing软件测试网u-E/N-f o03o+K(f4、把

15、判定表的每一列拿出来作为依据,设计测试用例51Testing软件测试网t2K3amxGw.iv   我们把表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。8b1O R'A)?)J4K&y0(v5U)gE2r4P;UD03.2实例二t&V:dw|X-L051Testing软件测试网LJC6O$o有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。7 oon'rdd?0其规格说明如下:51Testing软件测试网L$gh8V"J)Do若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。51Test

16、ing软件测试网)rvB3ZR3|若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;#eJ,hf.p(0若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。51Testing软件测试网U_D'a0J:G*TH zyjsDN n01、分析这一段说明,列出原因和结果:51Testing软件测试网! q4B;qNv3s.cV(x)oq这本身只是一个实例,只是用来学习,其实其设计说明还是存在好多漏洞的,例如:如果售货机里没有饮料了怎么办?51Testing软件测试网Op)_8me n3SM51Testing软件测试网

17、 n!I$Bs D*Q原因:1、售货机有零钱找51Testing软件测试网|1|s0b*OR2、投入1元硬币o ? ejY.1t03、投入5角硬币$x/vP:k X04、押下橙汁按钮51Testing软件测试网0B61BsJ 4ZDZ)o5、押下啤酒按钮51Testing软件测试网xU,XK0xI'P51Testing软件测试网YKyAPY1B结果:8Z,U+U*9b Em;B8i1l021、售货机零钱找完灯亮9R;:F)P|/T022、退还1元硬币51Testing软件测试网9h N-z+L s"R23、退还5角硬币     

18、;        51Testing软件测试网lB)Mr MUu24、送出橙汁饮料51Testing软件测试网jS4;T!y1PdV e-Nt25、送出啤酒饮料51Testing软件测试网Dk)| 4s.3TS51Testing软件测试网bD(LHbNDe2、画出因果图,如图3-2所示。51Testing软件测试网&L SrnFIRU所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:&c.ya7cI cB011、投入1元硬币且押下饮料按钮51Testing软件测

19、试网0nmyLrmm u12、押下橙汁或啤酒的按钮51Testing软件测试网7+MljfR13、应当找5角零钱并且售货机有零钱找'u%TA&w8FnT014、钱已付清51Testing软件测试网3v5ADvIX51Testing软件测试网2LC?1rS*c  51Testing软件测试网/Px"i|x6|O    51Testing软件测试网8b+H2UH             

20、;             图3-2 售货机因果图51Testing软件测试网*SZ1jG-W:KSw'V9L$a C-m/TPB03、转换成判定表:51Testing软件测试网J t2c+C5X-'W T'51Testing软件测试网0 l%OxL +BVfb51Testing软件测试网$_X%.Yy7d kD4、在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定

21、测试用例的依据。)%f ;m:r0"ke$K:T FjILs u N03.3实例三)MaE3f,TI|bU051Testing软件测试网J#V$z7w)C6k)oNextData函数的精简决策表p,tan.O:(t s9re E0M1月份: 每月有30天51Testing软件测试网(grG4EM2月份: 每月有31天, 12月除外51Testing软件测试网P8zR9aM3月份: 2月2a m yw ;Ngk0M4月份:12月&A!u:Wdqq0D1日期:1<=日期<=27$k dS"Mt(G'L?0D2日期:28&f tc q6RO30

22、D3日期:2951Testing软件测试网TME4u4OtD4日期:30'cW_XuvS2O1w:p+N:f0D5日期:3151Testing软件测试网Hds _Q)j|Y1 年:年是闰年eg 0DJ,Pb0Y2 年:年不是闰年51Testing软件测试网)Mq"e f*kE输入变量间存在大量逻辑关系的NextData决策表。9rWDFxHo&c5V06C#lS8Mn5G0分析这一段说明,列出原因(条件)和结果:51Testing软件测试网%a,W0f$b(MBz6Pp3YA/D tk S+r0原因(条件):51Testing软件测试网)i;R v,q%W/N.X&a

23、mp;J8RM1月份: 每月有30天+s4o6Njl0M2月份: 每月有31天, 12月除外%N0D#t(t1d z i|0M3月份: 2月51Testing软件测试网7o8s7F-C1_QkK$u*a'w)M4月份:12月51Testing软件测试网#K+xY8tD?_D1日期:1<=日期<=27r/y.%e9v0D2日期:28,r!S6F;m4QC0D3日期:29D4日期:30v h*t"*M8?1o:f7m0D5日期:3151Testing软件测试网k1|w4N GY1 年:年是闰年;*Z_(Z s1PbSO(g0Y2 年:年不是闰年51Testing软件测

24、试网3.yX/sJ5d Q3J2AY w T a7tL7H;P1Dl0结果:-&df SH/p F$M0输入的日期无效,例如:2008-4-30;2007-2-29;2008-2-30;2008-2-31;/Gytj)?+m$o0日前为1;B m;ygL%azZU0月份为1;,Kj;HDvPQJ0日期+1;(2f#z nb&WP5n0月份+1;51Testing软件测试网Q_)Rm,C:h&'v;C年份+1;.ef%b)N051Testing软件测试网&gWC _(E&q$tn   '|n+o3S01mS;u

25、Tb2p3V+d0   该图没有考虑无效日期的情况。av zzJ.P"V W-051Testing软件测试网Nx uYl-B输入条件过于庞大,个人觉得将其分成4部分利于编写判定表,每个Mi对应一张表。这里就不过多描述了。51Testing软件测试网g2QbQCb_V这里大家可以尝试用正交试验法解决。51Testing软件测试网'e.c|_/'N51Testing软件测试网'y#F$fl RS3.4实例四f)rf ?uE.K!u051Testing软件测试网9J!L6O NJ以中国象棋中马的走法为例子,具体说明:51Testing软件测试网!

26、K;U5lB&mh;f1、如果落点在棋盘外,则不移动棋子;:OC jc.lEY_,A02、如果落点与起点不构成日字型,则不移动棋子;;?t s4 avp t9s03、如果落点处有自己方棋子,则不移动棋子;Y/i7s)H+?5y+kCI04、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;51Testing软件测试网i7X)wqf3xzn5、如果不属于1-4条,且落点处无棋子,则移动棋子;51Testing软件测试网1sny9*u%m0|6、如果不属于1-4条,且落点处为对方棋子 (非老将) ,则移动棋子并除去对方棋子;_a/v | s Oh07、如果不属于1-4条,且落点处为

27、对方老将,则移动棋子,并提示战胜对方,游戏结束。g$ht0 &Ko y_4u5?01、对说明进行分析,得到原因和结果:51Testing软件测试网Lu!mN2ts p51Testing软件测试网1ZU)Q2uA-e o h$P9U原因:51Testing软件测试网eU9T3cB*o1、落点在棋盘外;51Testing软件测试网9k-W*I1Q)-2、不构成日字;'|,C+ MKY03、落点有自方棋子;51Testing软件测试网)x)h*f%g9qS4、绊马腿;&|:F6K1#u$e a.Q05、落点无棋子;%u.u0A3v06、落点为对方棋子;fQ$_J0fI3tMY07、落点为对方老将。51Testing软件测试网2y-q9Oqv;D4X L zR结果:51Testing软件测试网'K_%yPt0P21、不移动;1YoHlF;s022、移动;51Testing软件测试网r3DLvCy+N-r23

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论