软件测试课程设计(五子棋).docx
- 文档编号:119112
- 上传时间:2022-10-03
- 格式:DOCX
- 页数:37
- 大小:176.87KB
软件测试课程设计(五子棋).docx
《软件测试课程设计(五子棋).docx》由会员分享,可在线阅读,更多相关《软件测试课程设计(五子棋).docx(37页珍藏版)》请在冰豆网上搜索。
软件测试小论文
题目:
五子棋的开发与测试
班 级:
12计算机科学与技术特色本
(2)班
小组成员:
刘文志(18)、刘学(19)、朱和中
(51)
完成日期:
2015.4.18
指导教师:
钱 丽
摘要
五子棋游戏不仅能增强思维能力,提高记忆力,而且富含哲理,有助于修身养性。
既有“场”的概念,亦有“点”的连接,是古今哲理的结晶。
因此,开发出一款简单实用的单机版五子棋软件很有意义。
本论文分析了五子棋游戏的游戏规则,设计了游戏算法,并选择eclipse作为该软件的开发平台,实现了五子棋的多种对战模式,既可人与人对战,也可人与电脑对战。
还实现了,自定义棋盘行列数。
本文将从开发环境的安装,到五子棋的功能分析与设计,到各功能模块的实现,逐步向您展现五子棋的实现过程。
经测试,本游戏系统功能齐全,能平稳运行,具有较强的使用价值。
关键词:
五子棋;思考算法;多人对战;人机对战;
目 录
1.引言 1
1.1编写目的 1
1.2背景 1
2.单机版五子棋系统介绍 2
2.1平台简介 2
2.2游戏概述 2
3.基于Java的五子棋游戏的设计 3
3.1游戏模块 3
3.1.1开局、退出、棋盘 3
3.1.2模式栏 4
3.2游戏流程图 4
4.软件测试 5
4.1测试的目的 5
4.2测试的方法 5
4.3白盒测试 6
4.3.1测试用例 7
4.4黑盒测试 10
4.5测试游戏存在的问题 12
4.6游戏不足的解决方案 12
4.6.1游戏改进后的代码 12
4.7回归测试 13
5.总结 15
参考文献 16
附录 17
1.引言
1.1编写目的
根据测试计划报告,对软件进行测试,详细记录测试过程,以对软件的质量进行评价,为软件设计人员提供BUG依据,故做产生测试分析报告。
1.2背景
为了使游戏更加完善,使玩家有更好的游戏体验,针对游戏出现的一些问题,做出修复,使游戏更加生动,符合玩家的游戏习惯。
0
2.单机版五子棋系统介绍
2.1平台简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,
Eclipse 附带了一个标准的插件集,包括Java开发工具(Java DevelopmentKit,JDK)。
2.2游戏概述
该游戏软件采用Java语言设计,在Windows系统为玩家提供五子棋游戏人机对战的基本功能。
玩家可以通过鼠标在棋盘的相应位置下子,一方为白色,另一方为黑色,先下的为黑子(主场)。
游戏过程中,只要有一人先连成五个棋子,不论横、竖或斜,就会在屏幕上显示是谁赢了比赛,也可以是平局收场,从而可以进行下一场比赛。
在比赛过程中,如果一方需要悔棋,先得通过对手的同意才可以。
33
3.基于Java的五子棋游戏的设计
五子棋游戏
游戏模块
视图帮助块
本项目中五子棋主要包含两大主要模块,如下图3.1(a)所示。
第一个模块为主要模块,用于实现五子棋的游戏功能。
第二个模块为辅助模块,用于实现五子棋的相关辅助设置。
游戏主界面如图3.1(b)。
图3.1(a)主要模块
图3.1(b)游戏主界面
3.1游戏模块
该模块实现游戏的主要功能,共包含两个小模块,如下图3.2(a)所示。
第一个模块为棋盘栏,实现游戏玩家点击下棋的功能。
第二个小模块为模式栏,对下棋的方式进行选择。
游戏菜单如图3.2(b)所示。
游戏模块
开局、退出、棋盘
模式栏
图3.2(a)游戏模块
图3.2(b)游戏菜单
3.1.1开局、退出、棋盘
实现可视化的开局与退出功能,以及棋盘选择对战模式。
图3.3开局、退出、棋盘
3.1.2模式栏
模式栏,主要实现游戏过程中的各种控制功能,包括人人、人机实例化对战模式。
图3.4模式选择
开局
模式选择
游戏者下子
游戏者是否下
否
是
电脑下子
是
否
电脑是否下子
否
白子或黑子是否有5
个连成一线
是
游戏结束
3.2游戏流程图
4.软件测试
4.1测试的目的
软件测试是为了发现错误而执行程序的过程。
或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例{即输入数据及其预期的输出结果},并利用这些测试用例去运行程序,以发现程序错误的过程。
设计测试的目标是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
如果成功地实施了测试,就能够发现软件中的错误。
测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。
此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。
而测试的目的就是在软件投入生产性运行之前,尽可能地发现软件中的错误。
4.2测试的方法
常见的软件测试阶段的工作主要分为单元测试、集成测试、确认测试和系统测试四个步骤,测试方法有黑盒测试和白盒测试两种方法:
黑盒测试(已经知道产品应该具有的功能,可以通过测试来检验是否每个功能都正常);白盒测试(如果知道产品内部工作过程,可以通过测试来检验内部动作是否按照说明书的规定正常进行)。
本游戏测试的主要方法包括黑盒测试和白盒测试,由小组人员通过自己亲自去玩,然后观察游戏在运行过程中,所需要实现的功能有没有实现,以及在测试过程中有没有发现新的问题记录在案。
然后根据测试后所产生的一系列的问题,有本组负责编码人员对游戏进行改进,然后在进行测试,就这样重复的进行这样的工作,直到游戏的运行与预想时的状况基本一致时,才算通过测试。
图4.1完整游戏图
4.3白盒测试
通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正,这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
用软件白盒测试产生的测试用例能够:
1.保证一个模块中的所有独立路径至少被使用一次;
2.对所有逻辑值均需测试true和false;
3.在上下边界及可操作范围内运行所有循环;
4.检查内部数据结构以确保其有效性。
4.3.1测试用例
(1)用例1:
因为类ChessFrame主要功能是创建五子棋游戏主窗体,所以对其进行测试,
看其构造五子棋游戏的主窗体的方法是否正确。
classChessFrameextendsJFrameimplementsActionListener{privateString[]strsize={"20x15","30x20","40x30"};privateString[]strmode={"人机对弈","人人对弈"};publicstaticbooleaniscomputer=true,checkcomputer=true;privateintwidth,height;
privateChessModelcm;privateMainPanelmp;publicChessFrame(){
this.setTitle("五子棋游戏");cm=newChessModel
(1);mp=newMainPanel(cm);
Containercon=this.getContentPane();con.add(mp,"Center");this.setResizable(false);
this.addWindowListener(newChessWindowEvent());MapSize(20,15);
JMenuBarmbar=newJMenuBar();this.setJMenuBar(mbar);
JMenugameMenu=newJMenu("游戏");mbar.add(makeMenu(gameMenu,newObject[]{
"开局","棋盘","模式",null,"退出"
},this));
JMenulookMenu=newJMenu("视图");mbar.add(makeMenu(lookMenu,newObject[]{"Metal","Motif","Windows"
},this));
JMenuhelpMenu=newJMenu("帮助");mbar.add(makeMenu(helpMenu,newObject[]{
"关于"
},this));
}
(2)用例2:
用play(intx,inty)方法实现电脑下子,并先通过方法readyplay(intx,inty)判断某坐标位
置是否可下棋子。
publicvoidreadyplay(intx,inty){if(badxy(x,y))
return;
if(chessExist(x,y))
return;this.arrMapShow[x][y]=3;
}
publicvoidplay(intx,inty){if(badxy(x,y))
return;if(chessExist(x,y)){this.isExist=true;return;
}elsethis.isExist=false;if(getisOdd()){setisOdd(false);
this.arrMapShow[x][y]=1;
}else{setisOdd(true);
this.arrMapShow[x][y]=2;
}
}
(3)用例3:
计算机走棋方法(computerDo)测试
通过方法computerDo实现电脑下子的思想
publicvoidcomputerDo(intwidth,intheight){intmax_black,max_white,max_temp,max=0;setisOdd(true);
System.out.println("计算机走棋...");for(inti=0;i<=width;i++){
for(intj=0;j<=height;j++){if(!
chessExist(i,j)){
max_white=checkMax(i,j,2);max_black=checkMax(i,j,1);max_temp=Math.max(max_white,max_black);if(max_temp>max){
max=max_temp;this.x=i;this.y=j;}}}}
(4)用例4:
根据提供的棋子信息(颜色、坐标)画棋子方法(draw)的测试
publicvoiddraw(Graphicsg,inti,intj,intv){intx=20*i+20;
inty=20*j+20;
//画棋盘
if(i!
=width&&j!
=height){g.setColor(Color.wh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 课程设计 五子棋