软件测试 因果+决策案例–中国象棋中走马
题目: 因果+决策案例
中国象棋中走马的实际情况:
1.如果落点在棋盘外,则不移动棋子;
2.如果落点与起点不构成日字型,则不移动棋子;
3.如果落点处有自己方棋子,则不移动棋子;
4.如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
5.如果不属于1-4条,且落点处无棋子,则移动棋子;
6.如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
7.如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束
解答:
分析题目可得原因和结果如下所示:
原因 | 结果 |
---|---|
1.落点在棋盘上 | 21.不移动棋子 |
2.落点与起点构成日字 | 22.移动棋子 |
3.落点处为自己方棋子 | 23.移动棋子,并除去对方棋子 |
4.落点方向的邻近交叉点无棋子 | 24.移动棋子,并提示战胜对方,结束游戏 |
5.落点处无棋子 | |
6.落点处为对方棋子(非老将) | |
7.落点处为对方老将 |
由此可得因果图如下所示:
注:1、添加中间节点11,目的是作为导出结果的进一步原因。
2、考虑结果不能同时发生,所以对其施加唯一约束O。
3、原因5、6、7不能同时发生,所以对其施加异约束E。
根据因果图建立判定表(分为两表):
注:1、表2中部分列被合并表示不可能发生的现象。
2、通过中间节点将用例的判定表简化为两个小表,减少了工作量。
3、用例因不方便写入原始表格中,故另单独用表列出。其中己方为红棋。
4、假定棋谱中10条横线从上到下分别用小写字母a、b、c、d、e、f、g、h、i、j表示,9条竖线从左到右分别用数字1、2、3、4、5、6、7、8、9表示。例如黑炮位置c2。
母a、b、c、d、e、f、g、h、i、j表示,9条竖线从左到右分别用数字1、2、3、4、5、6、7、8、9表示。例如黑炮位置c2。