51Testing软件测试论坛

标题: 关于一道题目中因果图的问题 [打印本页]

作者: nana430    时间: 2005-3-23 13:58
标题: 关于一道题目中因果图的问题
学习黑盒测试的因果图对于如何确定所给条件的原因、中间过程、结果没有一个明确的思路,希望能够给与指导,不胜感谢。

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

(1) 分析这一段说明,列出原因和结果
       原因:        
1. 售货机有零钱找
2. 投入1元硬币
3. 投入5角硬币
4. 押下橙汁按钮
5. 押下啤酒按钮

建立中间结点,表示处理中间状态:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清

结果:
21. 售货机〖零钱找完〗灯亮
22. 退还1元硬币
23. 退还5角硬币
24. 送出橙汁饮料
25. 送出啤酒饮料

(2) 画出因果图。所有原因结点列在左边,所有结果结点列在右边。
(3) 由于 2 与 3 ,4 与 5 不能同时发生,分别加上约束条件E。
(4) 因果图

为什么没有原因:售货机没有零钱找;结果:售货机零钱找完灯亮这两种情况?
还有就是11-〉13;11-〉22为什么是和不是并的关系?
谢谢!

[[i] Last edited by nana430 on 2005-3-23 at 14:00 [/i]]
作者: archonwang    时间: 2005-3-23 14:58
标题: -因果图(cause-effect-diagram)-
我来灌一贴,如下:

[color=red]-因果图(cause-effect-diagram)-[/color]

因果图也称鱼刺图。它是利用“头脑风暴法”,集思广益,寻找影响质量、时间、成本等问题的潜在因素,然后用图形的形式来表示的一种用的方法,它能帮助我们集中注意心搜寻产生问题的根源,并为收集数据指出方向。

画因果图的方法如下:我们在一条直线(也称为脊)的右端写上所要分析的问题,在该直线的两旁画上与该直线成60度夹角的直线(称为大枝),在其端点标上造成问题的大因,再在这些直线上画若干条水平线(称为中枝),在线的端点写出中因,还可以对这些中枝上的原因进一步分析,提出小原因,如此便形成了一张因果图。

下面就是一个药品受潮变质的因果图:



因果图有三个显著基本特征:

1.是对所观察的效应或考察的现象有影响的原因的直观表示;

2.这些可能的原因的内在关系被清晰地显示出来;

3.内在关系一般是定性的和假定的。

因此在构造因果图时最重要的考虑是要清晰理解因果关系。同时还要考虑所有可能的原因。一般可以从人、机(设备)、料(原料)、法(方法)、环(环境)及测量等多个方面去寻找。在一个具体的问题中,不一定每一个方面的原因都要具备。
作者: archonwang    时间: 2005-3-23 15:06
标题: 因果图方法与判定表
请注意以下的说明,可能对您理解该因果图有帮助。

等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).
因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

利用因果图生成测试用例的基本步骤:
(1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.
(2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.
(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.
(4) 把因果图转换为判定表.
(5) 把判定表的每一列拿出来作为依据,设计测试用例.
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.
前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.
判定表通常由四个部分组成.
条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.
动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.
条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.
规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.
判定表的建立步骤:(根据软件规格说明)
①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则.
②列出所有的条件桩和动作桩.
③填入条件项.
④填入动作项.等到初始判定表.
⑤简化.合并相似规则(相同动作).
B. Beizer 指出了适合使用判定表设计测试用例的条件:
①规格说明以判定表形式给出,或很容易转换成判定表.
②条件的排列顺序不会也不影响执行哪些操作.
③规则的排列顺序不会也不影响执行哪些操作.
④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.
⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.
作者: nana430    时间: 2005-3-23 15:51
谢谢斑竹,我想问一下如何对原因和结果以及中间结点进行详细的说明,是否有什么依据?对于因果是否越详细越好呢?还有就是我提出的问题能否指点一下?

原因:售货机没有零钱找;    结果:售货机零钱找完灯亮       这两种情况怎么没有出现在因果关系里面?

还有就是          11-〉13;11-〉22为什么是和不是并的关系?

谢谢!
作者: archonwang    时间: 2005-3-23 17:08
原因:售货机没有零钱找;    结果:售货机零钱找完灯亮       这两种情况怎么没有出现在因果关系里面?

你的话我不是很理解。大概是这个意思?就是缺少这个“售货机没有零钱找”的原因。我的理解是这样的--
分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.以上的 “售货机没有零钱找”这个条件实际上就是“售货机有零钱找”的否运算,这是一个基本条件的否定式,所以采用了“售货机有零钱找”的原因,而不单独将“售货机没有零钱找”列出。它具体与因果图的定义没有冲突。您认为如何?
作者: baitest    时间: 2005-3-23 20:24
楼主理解错了!

  正确的是:11和1与于13;11和1与于22。因果图中没有和、并的说法。


     有以下:恒等(—)、非(~)、或(v)、与(^)四个基本符号;

                  异(E)、或(I)、唯一(0)、要求(R)、强制(M)五个约束符           号;

[[i] Last edited by baitest on 2005-3-23 at 20:32 [/i]]
作者: archonwang    时间: 2005-3-24 09:25
to  baitest:
        后面那个问题我还真是没明白过来,受教了。谢谢~
作者: 哇哈哈    时间: 2005-4-21 17:50
雾里看花,似懂非懂
作者: ecust    时间: 2005-4-21 18:29
这题目经典,我读的时候也说的这个,我找找答案还再不在
作者: zys3497    时间: 2005-5-19 14:40
读,读什么呢,能介绍一下吗?
作者: zension    时间: 2005-6-7 12:54
我没有看,但我知道因果法是很有用的,大家可以对照着理论知识把上面的例子做一下。我前几天把因果法和实际的工作结合起来,感觉挺好的。大家最好把理论和实践结合在一起比较的好。
作者: zension    时间: 2005-6-7 12:57
标题: 附件中是因果法的理论知识,相信看了后会对大家有所帮助的
因果法的理论知识
作者: zension    时间: 2005-6-7 12:58
标题: 判定表的理论知识
判定表的理论知识

理论与实践结合,相信对大家有很大的帮助
作者: jackei    时间: 2005-6-15 10:10
上次讨论了一下,发现这个因果图中的确没有包含对“零钱找完灯亮”。因为红灯亮灭是由事件触发的,例如没有零钱时投入5角硬币,则红灯由灭转亮;如果刚好机器内只剩5角硬币,则投入1元硬币并购买成功后,机器内零钱找完,红灯由亮转灭。
另外,通过因果图和判定表,还发现需求中存在不明确的地方,例如当投入硬币不按钮的时候,该如何处理?如果可以在指定的时间后自动退出,那么是否在没有零钱的情况下投入5角硬币,则红灯灭,之后不按任何按钮,等到时间后硬币被退出,则红灯又重新转亮?

很多地方都提到了使用因果图或者判定表进行需求检查的方法,有兴趣的朋友也可以研究一下。

[[i] Last edited by jackei on 2005-6-15 at 10:38 [/i]]
作者: 与或非    时间: 2005-6-15 15:51
看了鱼刺图再看因果图会觉得好很多:)
作者: wmzhcx    时间: 2006-3-27 22:10
还是没有看懂,正在努力学习啊!
作者: donghuanzi    时间: 2006-4-4 10:11
标题: 谢谢了、
thanks you @@
作者: leopdong    时间: 2006-6-29 09:50
标题: 楼主附件好像是从一本电子书籍里面截下来的一部分,可否告知这本书叫什么名字吗?
[quote]原帖由 [i]zension[/i] 于 2005-6-7 12:57 发表
因果法的理论知识 [/quote]
如果有电子档共享出来,将十分感谢啊
作者: jokie    时间: 2006-7-4 09:27
标题: 我是新手,想和大家交个朋友!
[font=宋体][color=Pink]希望大家能够交我这个朋友!我的QQ:215143066,MSN:jickllyloveshe@hotmail.com
欢迎加入我的群!26526836

[/color][/font]
作者: mojinde    时间: 2006-7-5 09:12
谢了,原来我想的东东,全在这里都可以找到
作者: 孤独无心    时间: 2007-4-4 13:55
以前看的水上只有因果法的名字
没有具体内容
真的非常感谢
作者: haoyuexun    时间: 2007-6-2 18:37
慢慢熟练中!!
作者: tlisbbgo    时间: 2007-6-3 00:16
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找

22. 退还1元硬币

之间的关系实质上是一个条件满足的关系

必须投入1元且押下一次〖橙汁〗或〖啤酒〗的按钮后得出需要5角找并判断无5角零钱后才抛出退还1元硬币的结果.

其间的条件判断是逐一进行且非唯一可能.所以11.12.13得出22是条件组合的关系.
作者: coletan    时间: 2007-6-9 00:16
比较经典的问题··呵呵
作者: coletan    时间: 2007-6-9 00:17
好像还有条件组合的
作者: caocao668    时间: 2007-6-11 10:04
不画因果图直接写出判定表,即数字电路中的真值表,再排除一些不可能的,很快得到测试用例一目了然。比这快多了。
作者: caocao668    时间: 2007-6-11 10:08
那个鱼刺图不错,第一次见识。
作者: cssweb    时间: 2007-6-11 17:28
有点意思,下来看看
作者: candice416    时间: 2007-6-12 11:33
many thanks to BM
作者: candice416    时间: 2007-6-12 11:34
the more time i spent here the more knowledge i get
作者: candice416    时间: 2007-6-12 11:34
and more score i get
作者: candice416    时间: 2007-6-12 11:34
so forgive me to post so many posts
作者: candice416    时间: 2007-6-12 11:35
wothout any technology value
作者: candice416    时间: 2007-6-12 11:35
i like be here
get more
作者: candice416    时间: 2007-6-12 11:35
if i got chance give
i do will
作者: candice416    时间: 2007-6-12 11:36
to
作者: caodongjian    时间: 2007-6-18 10:12
sdlkfj1 sdlkfj1
作者: caodongjian    时间: 2007-6-18 10:12
sdlkfj6 sdlkfj4 sdlkfj2
作者: caodongjian    时间: 2007-6-18 10:12
sdlkfj9 sdlkfj8 sdlkfj9 sdlkfj8 下载还要积分
作者: leetutu    时间: 2007-6-19 20:15
头有点晕!!!
作者: leetutu    时间: 2007-6-19 20:16
资料不错,慢慢学习!!
作者: yolande    时间: 2007-6-19 21:10
也晕了,看来好多要学啊
作者: xiongshaohuang1    时间: 2007-7-16 11:58
要好好研究下~
作者: liuhui    时间: 2007-7-16 13:30
i like be here
get more
作者: 119139107    时间: 2007-7-16 14:05
受益匪浅
领悟中。。。。。
作者: jason_lu    时间: 2007-7-16 21:19
刚好我对这个因果图也不是很明白.虽然以前学软件工程时学过.不过那时侯也没搞清楚.现在就彻底还给老师了。.这个我一定要好好学学.sdlkfj2
作者: sunshine_1003    时间: 2007-7-17 16:14
积分不够啊!555~~~~~~~~~~
作者: 超越    时间: 2007-7-19 13:31
看不太懂啊...
作者: luyunbing    时间: 2007-7-22 09:51
我为我和我老婆的选择而感到庆幸,我们太有眼光了!哦耶!
作者: luyunbing    时间: 2007-7-22 10:03
我喜欢打游戏  但没有机会做游戏测试
作者: applejuzi    时间: 2007-7-24 11:18
我和楼主有同样的疑惑,现在还是不太明白,看看鱼刺图再说吧
作者: tianming08    时间: 2007-7-24 15:20
标题: 回复 #6 baitest 的帖子
版主一语中的,厉害!承教了。
作者: tianming08    时间: 2007-7-30 12:53
学习中,印个脚印!!
作者: andre    时间: 2007-9-5 11:06
taitai复杂了
作者: setsaillin    时间: 2007-9-7 11:43
看到好贴,下来看。
作者: setsaillin    时间: 2007-9-7 11:49
判定表还得下呢
作者: spinach_xu    时间: 2007-9-7 16:00
[quote]原帖由 [i]jackei[/i] 于 2005-6-15 10:10 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=98295&ptid=10409][/url]
上次讨论了一下,发现这个因果图中的确没有包含对“零钱找完灯亮”。[/quote]

因果图中的结点是这样的意思:当结点的值为1时,如何如何;当结点的值为0时,如何如何
例如LZ的图中:结点1的值为1时,表示售货机有零钱找,此时结点21的值为0,表示"零钱找完"灯灭
                   结点1的值为0时,表示售货机无零钱找,此时结点21的值为1,表示"零钱找完"灯亮

不知能不能解释LZ的第一个问题
作者: 飞尘    时间: 2007-9-7 20:33
学习中
作者: yuquan_32    时间: 2007-10-24 17:12
先看一下,在說.
作者: 親愛哋⺌ViVi⺌    时间: 2007-10-25 02:40
很经典的一道题....我们最近的作业有做一道类似的~~~
作者: zhhaji168    时间: 2009-6-10 15:59
这个有点难呀
作者: all-at-once    时间: 2009-6-17 10:53
标题: 我是新手
想请高手指点非常感谢,QQ549603934,请注测试
作者: 蔓荹囩鍴    时间: 2009-6-17 15:36
标题: 呵呵
顶一下
作者: 香橙    时间: 2009-6-18 11:20
学习了!
作者: pengxing12121    时间: 2009-8-3 02:28
[quote]原帖由 [i]哇哈哈[/i] 于 2005-4-21 17:50 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=83049&ptid=10409][/url]
雾里看花,似懂非懂 [/quote]
十分
作者: mrluoming    时间: 2009-8-5 10:52
标题: 提问
请问 冒烟测试  随机测试 属于黑盒测试吗 我是个新手,希望大家能帮帮我
作者: testsyou    时间: 2009-8-27 20:57
标题: 回复 3# 的帖子
謝謝,很清楚
作者: liujinkui    时间: 2009-8-27 21:00
收藏




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2