51Testing软件测试论坛

标题: 象棋中马的走法的因果图求助 [打印本页]

作者: szy123618    时间: 2012-6-10 21:42
标题: 象棋中马的走法的因果图求助
根据以下关于中国象棋软件中关于走马的规则的描述,分析其因果图,并设计用例:
1) 如果落点在棋盘外,则不移动棋子;
2) 如果落点与起点不构成日字型,则不移动棋子;
3) 如果落点处有自己方棋子,则不移动棋子;
4) 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
5) 如果不属于1-4条,且落点处无棋子,则移动棋子;
6) 如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
7) 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。


上课得到的答案和晚上搜索的答案不一样
很是郁闷
是没有标砖答案还是两个答案都有问题?
各位高手..有谁可以给一个答案并说明看看
感激不尽
作者: 清风随雨    时间: 2012-6-11 02:29
LZ的公布的用例应该是凭空想象的用例,而不是基于软件开发设计的用例。原因如下:
1) 如果落点在棋盘外,则不移动棋子;
这点是不可能的,因为在软件的棋盘外,是没有可接收落点的事件响应的,即:软件中是不会有出界后的落点响应,最多就是出界提示而已,但该规则适用于所有棋子的约束;
2) 如果落点与起点不构成日字型,则不移动棋子;
这点也不符合软件设计的算法。这类软件的设计方法应该采取的是通过坐标标识棋盘各点,之后取当前选中棋子的坐标,传入该棋子(马)行动方法的函数,马可走的坐标为8个,在这8个中判断是否出界,出界的视为无效,凡是落点不等于有效坐标的,都不得移动棋子;
3) 如果落点处有自己方棋子,则不移动棋子;
道理同1,此处应为公共约束,凡是落点上为己方棋子,均不得移动且提示;
个人建议的测试用例:
1、“马”棋子,是否有公共约束:出界判断;(即:公共约束出界判断是否写入了“马”这个棋子的行动方法中);
2、落点是否为有效落点,不是则提示;
3、落点为有效落点,则此处是否有其他棋子,没有其他棋子则移动;
4、落点处有其他棋子,则判断是否为我方棋子,如果是,则是否调用公共约束,不得移动且提示;
5、如果落点处是对方棋子则判断对方棋子是否为“将”或“帅”(你懂得),如果不是,则移动棋子并除去对方棋子;
6、如果对方棋子是“将”或“帅”则移动棋子,并提示战胜对方,游戏结束。
作者: davy_chen    时间: 2012-6-11 09:41
该例子在网上有两个版本,都存在一定的问题,所以课堂讲解和网上内容不一致很正常,但是至于你提到的标准答案,有,但是需要看因果分析与图的对应等全部内容,而不能只看因果分析,因为因果分析定义不同,则后续操作也会对应变化。
作者: 清风随雨    时间: 2012-6-11 11:34
不好意思,回答问题时漏掉一项,现在补充:
第2个用例需要修改为:落点是否为有效落点,不是有效落点则提示;如果是有效落点,则判断是否有(绊马腿)。其程序实现方法应为取出棋子(马)的当前坐标,之后检查(绊马腿)约束方法(马有四个绊马腿坐标),与落点同向的“绊马腿”坐标中有棋子则不移动,无棋子则移动。
作者: ytcaicai    时间: 2012-6-11 17:26
用例的设计需要分析思考,对于设计的结果一次有时候很难定稿,需要修订,甚至多次的修订、整理精简。
作者: liujintao00    时间: 2012-6-12 09:54
本帖最后由 liujintao00 于 2012-6-12 09:57 编辑

回复 4# 清风随雨

清风设计测试用例的思想是根据“程序设计”设计测试用例,非常赞同这种设计用例的方法。这种设计测试用例的方法非常有针对性。
我们测试的对象是程序不是需求。同样的需求,如果采用多种不同的程序设计,对应的测试用例也应该做相应的调整

那么怎么保证程序设计满足于需求呢? 这就要在设计评审来实现
作者: limit1    时间: 2012-6-12 14:27

作者: limit1    时间: 2012-6-12 14:28
回复 7# limit1


   
作者: limit1    时间: 2012-6-12 14:28
回复 7# limit1


   
作者: freshzhy    时间: 2012-6-12 15:00
看不懂呢,听不懂说的什么。因果方法,怎么样也理解不了,是不是不适合作软件测试呀
作者: szy123618    时间: 2012-6-14 12:15
谢谢各位,实在太好了
感激不尽




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