象棋中马行走路线的测试用例设计-阿里云开发者社区

开发者社区> 晚来风急> 正文

象棋中马行走路线的测试用例设计

简介:
+关注继续查看
声明:
  这个例子的设计并不是我首先想出的,我参考了原文,然后经过整理,融汇了我的Excel技巧,把它整理了出来,分析了表的生成过程,比原来的设计有一定的易学易用性。现在让大家来进行分析与学习
  需求规格:
  1、如果落点在棋盘外,则不移动棋子;
  2、如果落点与起点不构成日字型,则不移动棋子;
  3、如果落点处有自己方棋子,则不移动棋子;
  4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
  5、如果不属于1-4条,且落点处无棋子,则移动棋子;
  6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
  7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
  一.原因条件:
  1、 落点在棋盘上;
  2、 落点与起点构成日字;
  3、 落点处不为自己方棋子;
  4、 落点方向的邻近交叉点有棋子(绊马腿);
  5、 落点处无棋子;
  6、 落点处为对方棋子(非老将);
  7、 落点处为对方老将。
  二.结果动作:
  21.不移动棋子
  22.移动棋子(不吃子)
  23.移动棋子并除去对方棋子
  24.移动棋子除去对方老将,胜利。
  添加一个中间节点11,这样能够简化设计。然后画出因果图:
  通常的设计方法就是一个表的方法,我称为一表法。但是七个因子,表格就会非常的长,让人望而却步!2^7=128,那么长的表是一般人不能做到的,在Excel里面都感觉版面不够,要是拿来考试怎么办?所以这里提供两表法。1、2、3、4只与11及21有关,可以使用一个表先处理。然后11、5、6、7有可以作为一个表。
  1、列出表一
  合并表一:
  黄色背景的项说明了他们可以合并,合并后得到:
  2、列出表二
  3、把两个表合并成一个表
  由11因子的中介作用,合并的表二的每一个因子都对应一个表一的所有与之相同值的项,如表二中的列1就对应表一的1、9、13、16,如此对应,可生成下面的表格:
  由于上表中有一些相似的项,可以考虑他们是否可以合并,所有先在Excel中把相似的项复制在一起,得到下面的表:
  这样就可以生成测试用例了。其实真正的用例就在表中,只是还是要写成连菜鸟也要看得懂的文字而已。下面是用例:
  用例1:如果在棋盘上,构成日字,并且不是自己方棋子,落点方向的邻近交叉点没有棋子,落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
  用例2:如果在棋盘上,构成日字,并且不是自己方棋子,落点方向的邻近交叉点没有棋子,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子。
  用例3:如果在棋盘上,构成日字,并且不是自己方棋子,落点方向的邻近交叉点没有棋子,且落点处无棋子,则移动棋子。
  用例4:如果落点不在棋盘上,直接不移动棋子。
  用例5:如果落点在棋盘上,不构成日字,则不移动棋子。
  用例6:如果落点在棋盘上,构成日字,是自己方棋子,不移动棋子。
  用例7:如果落点在棋盘上,构成日字,不是自己方棋子,落点方向的邻近交叉点上有棋子,则不移动棋子。

最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MaxCompute表设计最佳实践
MaxCompute表设计最佳实践 产生大量小文件的操作 MaxCompute表的小文件会影响存储和计算性能,因此我们先介绍下什么样的操作会产生大量小文件,从 而在做表设计的时候考虑避开此类操作。 使用MaxCompute Tunnel SDK上传数据,上传过程中,每commit一次就会产生一个文件。
3214 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10084 0
3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子
原文:3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子 3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子   所用的软件 3ds Max 9.
903 0
《Android的设计与实现:卷I》——第1章 1.3Android源码下载和编译
本节书摘来自华章出版社《Android的设计与实现:卷I》——第1章,第1.3节。作者: 杨云君著.更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1256 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
第十五届北京师范大学程序设计竞赛现场决赛题解&源码(A.思维,C,模拟,水,坑,E,几何,思维,K,字符串处理)
1 #include 2 using namespace std; 3 int main() 4 { 5 int T,n,a,b; 6 while(cin>>T) 7 { 8 while(T--) 9 ...
802 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13890 0
Xamarin打开安卓设计器的那些坑
一,Theinstalled Android SDK is too old. Version 24.3 or newer is required              之前各种配置完成之后,就去准备考试了,也没有再用,后来发现我的SDK确实是缺版本,Xamarin安装中对各个东西的版本要求其实还是蛮严格的。
973 0
+关注
9380
文章
243
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载