测试用例设计技术----------因果图之三

来源:互联网 发布:手写识别算法 编辑:程序博客网 时间:2024/04/29 22:16

    上篇文章是把因果图法的理论,以及举了一个实际的例子,现在网上有很多这方面资料。我再举一个例子,便于大家理解。

一、分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明)
1、如果落点在棋盘外,则不移动棋子;
2、如果落点与起点不构成日字型,则不移动棋子;
3、如果落点处有自己方棋子,则不移动棋子;
4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
5、如果不属于1-4条,且落点处无棋子,则移动棋子;
6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
二、根据分析明确原因和结果
原因:
1、 落点在棋盘上;
2、 落点与起点构成日字;
3、 落点处不为自己方棋子;
4、 落点方向的邻近交叉点有棋子;
5、 落点处无棋子;
6、 落点处为对方棋子(非老将);
7、 落点处为对方老将。
注意:第4点落点方向的邻近交叉点有棋子,说明不能移动棋子,其他原因都可以移动棋子。
结果:
21、不移动棋子;
22、移动棋子;
23、移动棋子,并除去对方棋子;
24、移动棋子,并提示战胜对方,结束游戏。
注意:在移动棋子的时候,由于有3种结果,所以要增加一个中间节点11,表明移动条件成立的过渡状态。
 
那么因果图怎么画呢?
注:原因567不能同时发生(唯一发生),所以对其施加异约束E,考虑结果不能同时发生,所以对其施加唯一约束O
 
  
三、根据因果图建立判定表:(分为两表)
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
原因
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
3
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
4
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
结果
11
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
21
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
 
 
1
2
3
4
5
6
7
8
9
`0
11
12
13
14
15
16
原因
11
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
5
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
6
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
7
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
结果
22
0
 
0
1
0
0
 
 
0
0
 
 
 
 
 
 
23
0
0
0
0
1
0
0
24
0
0
0
0
0
0
1
注:1、以上判定表中由于表格大小限制没有列出最后所选的测试用例;
        2、第2表中部分列被合并表示不可能发生的现象;
        3、通过中间节点将用例的判定表简化为两个小表,以减少工作量。
四、根据判定表写测试用例表

原创粉丝点击