zllphoenix 发表于 2010-12-13 21:16:03

回复大雁南飞

    首先感觉原因的划分上存在冗余,“部门非末级”和“部门为末级”可以合并为一个原因 ...
XZTest 发表于 2010-12-13 14:38 http://bbs.51testing.com/images/common/back.gif

正解,这个问题用因果图总感觉反而麻烦了

大雁南飞 发表于 2010-12-13 22:12:27

回复 20# XZTest

感谢ZTtest的建议,可我试了半天也没按你说的做出来,能给个具体原因和约束关系吗?我重新修改一下

XZTest 发表于 2010-12-14 11:54:51

这个需求感觉用流程分析比较好,画了一张图你看看是否可行吧

大雁南飞 发表于 2010-12-14 12:41:45

:) 这个需求用因果图,确实有大炮打蚊子的感觉,不过用作举例比较容易理解,今天给大家讲解的时候发现约束混乱,重新整理了一下,显的清楚一些。谁喜欢画图,给做个因果图,就完整了。XTTest流程图很简明,加上部门非空,人员为空的分支就完美了。

XZTest 发表于 2010-12-14 14:13:07

“部门为空”和“部门非末级”的E关系并不准确(R也不准确),但是没有别的关系好用了

kunty 发表于 2010-12-14 22:09:17

回复 15# lilycheng1986


    不是吧?我们老大还想让我们用这些理论,不然设计的测试用例似乎没有说服力

大雁南飞 发表于 2010-12-15 22:30:53

把XZTest画的因的果图加上了,还画蛇添足的配了个图形解读.虽然比较烦琐,却也是思考问题的一种好方法

zllphoenix 发表于 2010-12-16 20:17:27

把XZTest画的因的果图加上了,还画蛇添足的配了个图形解读.虽然比较烦琐,却也是思考问题的一种好方法
大雁南飞 发表于 2010-12-15 22:30 http://bbs.51testing.com/images/common/back.gif

有了错误不用怕,有了问题不用怕,咱们就地解决,我们都是热爱学习的好孩子

zhifei.xie 发表于 2010-12-17 16:52:37

什么因果图都是理论一套一套的,在实际的项目中根本就用不到!理论只能作为指导,不能依葫芦画瓢!

jiangxinlu 发表于 2010-12-20 17:28:47

很久都没来逛论坛了,我也来凑个热闹吧。

jiangxinlu 发表于 2010-12-20 17:40:11

不同的测试方法只是我们的测试手段不一样,每一种测试方法都有一定的局限性,也有一定的优点。
就拿因果图来说,因果图可以帮助我们理解业务,捋清楚思路。
根据目前所掌握的信息,因果图在计算和测试报表时候很适用,我们根据实际业务找到所有影响预期结果、测试对象的因素,分析这些因素的状态、活动、时序图,就可以得到我们想要的测试用例了

zbjie 发表于 2010-12-23 15:34:12

刚学完因果图,自我感觉在规模很小项目里或小模块里用还行,如果是总体来搞,几乎不可能,单单一个售货机的图,把人都画二了。需要很专业的人才能搞懂。所以用它来做小项目可以,大项目绝对不行,太费时间。

wyfyan 发表于 2010-12-24 16:48:39

:loveliness:
我也没用过耶

ailen1986 发表于 2010-12-24 16:59:50

我们公司好像也没有用因公图黑盒测试方法额

mcfnhm 发表于 2010-12-24 21:13:00

手动功能测试路过

mcfnhm 发表于 2010-12-24 21:15:18

手机软件测试官方群 110925696
做手机测试的朋友们欢迎加入,共同学习交流
【加入时,验证信息处写上常用的两种测试方法,否则不通过】

阿七 发表于 2010-12-27 10:57:17

本帖最后由 阿七 于 2010-12-27 11:00 编辑

这个问题要和 等价类 和 边界值 比较来看了...
   等价类划分方法和边界值分析法都是着重考虑输入条件,并没有考虑到输入情况的各种组合,也没考虑到各个输入情况之间的相互制约关系。如果在测试时必须考虑输入条件的各种组合,可能的组合数将是天文数字。因此必须考虑描述多种条件的组合,相应地产生多个动作的形式来考虑设计测试用例,这就需要利用因果图。
   以QQ登录界面为例,我们一开始只是关注到QQ帐号或QQ密码这两个输入框,是分别进行分析和测试用例设计的,但当我们突然发现,要是把两个输入框一起进行测试的话,那么该怎么测试呢?好象两个输入框之间要同时进行测试的话,要考虑的问题就不是只关注一个输入框那么简单了。
   我们设想一下,要考虑全面的话,那么QQ登录界面上有两个输入框,把每个输入框的等价类拿过来:
    (一)QQ帐号
                     有效的:(1)长度在6-10位之间       (2)类型是0-9自然数
                     无效的:(1)长度小于6       (2)长度大于10       (3)负数      (4)小数       (5)英文字母       (6)字符       (7)特殊字符      (8)中文       (9)编程语言中的转义字符       (10)空         (11)空格
    (二)QQ密码
                     有效的:(1)6-16位       (2)空格       (3)负数       (4)小数       (5)英文字母       (6)字符       (7)特殊字符         (8) 编程语言中的转义字符   
                     无效的:(1)<6位       (2)>16位         (3)空         (4)保留字          (5)功能键(ESC、ENTER、TAB、SHIFT、CTRL、Caps Lock、Backspace、Alt)      (6)汉字
   如果把两个输入框的等价类进行组合的话,需要多少个测试用例呢?13*14=182个,是不是很多啊?要知道,用最少的测试用例去进行最大的测试覆盖,这种组合就很多了,效率也低。

   下面拿教科书上的一段话来看看因果图的原理吧:
      (一) 因果图法的来源 
            大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等;
            但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例;因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。
      (二) 因果图法的特点 
            考虑输入条件间的组合关系;
            考虑输出条件对输入条件的信赖关系,即因果关系;
            测试用例发现错误的效率高;
            能检查出功能说明中的某些不一致或遗漏;
            因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。
      (三) 因果图法基本步骤
             1. 分割功能说明书对于规模比较大的程序来说,由于输入条件的组合数太大,所以很难整体上使用一个因果图。我们可以把它划分为若干部分,然后分别对每个部分使用因果图。例如,测试编译程序时,可以把每个语句作为一个部分。
             2. 识别出“原因”和“结果”,并加以编号所谓原因,是指输入条件或输入条件的等价类;而结果则是指输出条件或输出条件的等价类。每个原因或结果都对应于因果图中的一个节点。当原因或结果成立(或出现)时,相应的节点取值为1,否则为0。
             3. 根据功能说明书中规定的原因和结果之间的关系画出因果图因果图的基本符号如图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。
          画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用上述基本符号连接起来。在因果图中还可以引入一些中间节点。
               4. 根据功能说明在因果图中加上约束条件由于语法或环境限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。因果图的约束条件如图所示:      
                                                
      其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。他们的含义如下:
            互斥E:表示不同时为1,即a,b,c中至多只有一个1;
            包含I:表示至少有一个1,即a,b,c中不同时为0;
            唯一O:表示a,b,c中有且仅有一个1;
            要求R:表示若a=1,则b必须为1。即不可能a=1且b=0;
            屏蔽M:表示若a=1,则b必须为0
            5. 根据因果图画出判定表画判定表的方法一般比较简单,可以把所有原因作为输入条件,每一项原因(输入条件)安排为一行,而所有的输入条件的组合一一列出(真值为1,假值为0),对于每一种条件组合安排为一列,并把各个条件的取值情况分别添入判定表中对应的每一个单元格中。   (关于这个方法的实例,可以看下19楼---大雁南飞的xls.)   
            6. 为判定表的每一列设计一个测试用例即为从因果图中导出的判定表中的每一列设计一个测试用例。

总结: 因果法在实际的应用中,还是比较少用的.大部分人使用了等价类基本上就可以应付过去了.但是要指出的是,如果遇到情况很多的时候,可以先使用因果图组合过滤掉一些用列,这样可以节省一些时间并且提高了覆盖率.

theyoungest 发表于 2011-1-9 22:28:13

回复 37# 阿七
不错。

liujing6616 发表于 2011-1-11 09:14:59

初步了解了因果图法,谢谢!

061001 发表于 2011-1-11 09:45:29

实际中没有用到过
页: 1 [2] 3
查看完整版本: 因果图在测试中的实用价值有多大?(10-12-6)(获奖名单已公布)