因果图分析法在RBT中的应用

发表于:2010-11-15 17:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:mengdie    来源:TaoBao QA Team

  RBT除了可以通过二义性检查外,还可以通过因果图的方式进行。二义性检查在前期需求阶段用的比较多,而因果图在设计测试用例阶段起到的效果会比较明显,因果图能确保用最少的用例覆盖到所有的需求。因果图主要用于发现两类问题的bug:在一些条件的组合下,1.不该发生的动作发生了(有结果无原因) 2.该发生的动作没有发生(有原因无结果),那因果图分析具体怎么进行呢?

  1.需要确定因(输入条件),果(输出或程序状态的改变),以及约束。

  分析需求说明中:哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出结果)。原因是指在一个变量与另外某一个变量或变量属性之间的输入关系,它可以触发目标系统的某种行为, 如“余额总数在透支限度内”。结果表示的是由原因以特定方式组合而产生的系统的某种行为,是各种原因组合导致的一个状态或信息的输出,如“从余额中减去交易总量”。约束指的是外部对系统的约束

  2.构建一个因果的逻辑组合图(用来描述原因,中间状态以及结果之间的逻辑组合关系)。

  节点分别是原因,结果,以及因、果、约束之间的关系(与,或,非),原因放在一列,结果放在一列,找出原因和结果之间的关系,用逻辑运算符标出,找出原因和原因、结果与结果之间的约束限制。

  3.基于这些关系图构建决策表。

  在决策表中,每一列则是由一些0(N)、1(Y)或者空位组成,它们对应着由一系列原因和结果组合而来的测试用例

  4.把决策表转换为测试用例,或者一系列的测试场景

  下面我们以网上购物支付的例子进行展开叙述,需求描述如下:在进行确认支付信息时,需要确认信用卡的类型,卡号,卡的密码,过期年月,持有者姓名等,为此我们需要验证一系列的内容:信用卡的信息是否正确?卡是否还是激活的或者已经被注销了?是否在使用额度范围内?这笔交易的地点是否在许可范围内等等,所有这些条件的组合将推到出下面的几个动作:我们是否应该同意这笔交易?打电话通知信用卡持有人(如告知发生了一笔交易)?打电话给卡的发行商(告知是否需要冻结账户)?

  step1.根据原因确定结果,原因:真实账户,激活账户,在限额内,交易地点OK, 结果:同意交易,打电话给发行商,打电话给卡持有人

  step2.画因果图如下:实线+^与表示同意交易;虚实线+~表示打电话给发行商;点线组合有个中间状态,再经过组合表示打电话给卡持有人

  同时针对每一个条件还可以通过等价类,边界值分析引申出不同的测试用例:如:账户余额为0,在进行交易后账户余额还在正常范围内;账户余额在进行交易后刚好达到限额值;账户余额在进行交易前刚好是到达限额,账户在进行交易后达到了最大的透支额等等。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号