软件测试课程设计五子棋.doc
《软件测试课程设计五子棋.doc》由会员分享,可在线阅读,更多相关《软件测试课程设计五子棋.doc(64页珍藏版)》请在三一办公上搜索。
1、软件测试课程设计(五子棋) 软件测试小论文题目:五子棋的开发与测试 班 级: 12计算机科学与技术特色本(2)班 小组成员: 刘文志(18)、刘学(19)、朱和中 (51) 完成日期: 201 指导教师: 钱 丽 摘 要五子棋游戏不仅能增强思维能力,提高记忆力,而且富含哲理,有助于修身养性。既有“场”的概念,亦有“点”的连接,是古今哲理的结晶。因此,开发出一款简单实用的单机版五子棋软件很有意义。本论文分析了五子棋游戏的游戏规则,设计了游戏算法,并选择eclipse作为该软件的开发平台,实现了五子棋的多种对战模式,既可人与人对战,也可人与电脑对战。还实现了,自定义棋盘行列数。本文将从开发环境的安
2、装,到五子棋的功能分析与设计,到各功能模块的实现,逐步向您展现五子棋的实现过程。经测试,本游戏系统功能齐全,能平稳运行,具有较强的使用价值。关键词:五子棋;思考算法;多人对战;人机对战; 目 录1.引言11.1编写目的11.2背景12.单机版五子棋系统介绍22.1平台简介22.2游戏概述23.基于Java的五子棋游戏的设计33.1游戏模块3343.2游戏流程图44.软件测试54.1测试的目的54.2测试的方法54.3白盒测试674.4黑盒测试104.5测试游戏存在的问题124.6游戏不足的解决方案12124.7回归测试135.总结15参考文献16附录171.引言1.1编写目的根据测试计划报告,
3、对软件进行测试,详细记录测试过程,以对软件的质量进行评价,为软件设计人员提供BUG依据,故做产生测试分析报告。1.2背景为了使游戏更加完善,使玩家有更好的游戏体验,针对游戏出现的一些问题,做出修复,使游戏更加生动,符合玩家的游戏习惯。2.单机版五子棋系统介绍2.1平台简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。2.2游戏概述该游戏软件采用 Java 语言设计,在 Windows
4、 系统为玩家提供五子棋游戏人 机对战的基本功能。玩家可以通过鼠标在棋盘的相应位置下子,一方为白色,另 一方为黑色,先下的为黑子(主场)。游戏过程中,只要有一人先连成五个棋子, 不论横、竖或斜,就会在屏幕上显示是谁赢了比赛,也可以是平局收场,从而可 以进行下一场比赛。在比赛过程中,如果一方需要悔棋,先得通过对手的同意才可以。3.基于Java的五子棋游戏的设计 本项目中五子棋主要包含两大主要模块,如下图3.1(a)所示。第一个模块为主要模块,用于实现五子棋的游戏功能。第二个模块为辅助模块,用于实现五子棋的相关辅助设置。游戏主界面如图3.1(b)。五子棋游戏视图帮助块游戏模块图3.1(a) 主要模块
5、图3.1(b)游戏主界面3.1游戏模块该模块实现游戏的主要功能,共包含两个小模块,如下图3.2(a)所示。第一个模块为棋盘栏,实现游戏玩家点击下棋的功能。第二个小模块为模式栏,对下棋的方式进行选择。游戏菜单如图3.2(b)所示。游戏模块模式栏开局、退出、棋盘栏图3.2(a) 游戏模块图3.2(b) 游戏菜单 开局、退出、棋盘实现可视化的开局与退出功能,以及棋盘选择对战模式。图3.3 开局、退出、棋盘模式栏,主要实现游戏过程中的各种控制功能,包括人人、人机实例化对战模式。图3.4 模式选择是电脑下子电脑是否下子是电脑下子电脑是否下子否游戏结束是白子或黑子是否有5个连成一线否游戏者是否下子否游戏者
6、下子模式选择开局3.2游戏流程图4.软件测试4.1测试的目的软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例即输入数据及其预期的输出结果,并利用这些测试用例去运行程序,以发现程序错误的过程。设计测试的目标是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。而测试的目的就是在软件投入生产性运行之前,尽可能地发现软件中的错误。4.2测试的方法常见的软
7、件测试阶段的工作主要分为单元测试、集成测试、确认测试和系统测试四个步骤,测试方法有黑盒测试和白盒测试两种方法:黑盒测试(已经知道产品应该具有的功能,可以通过测试来检验是否每个功能都正常);白盒测试(如果知道产品内部工作过程,可以通过测试来检验内部动作是否按照说明书的规定正常进行)。本游戏测试的主要方法包括黑盒测试和白盒测试,由小组人员通过自己亲自去玩,然后观察游戏在运行过程中,所需要实现的功能有没有实现,以及在测试过程中有没有发现新的问题记录在案。然后根据测试后所产生的一系列的问题,有本组负责编码人员对游戏进行改进,然后在进行测试,就这样重复的进行这样的工作,直到游戏的运行与预想时的状况基本一
8、致时,才算通过测试。图4.1 完整游戏图4.3白盒测试通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正,这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。用软件白盒测试产生的测试用例能够:1.保证一个模块中的所有独立路径至少被使用一次;2.对所有逻辑值均需测试true和false;3.在上下边界及可操作范围内运行所有循环;4.检查内部数据结构以确保其有效性。 (1)
9、用例1:因为类ChessFrame主要功能是创建五子棋游戏主窗体,所以对其进行测试,看其构造五子棋游戏的主窗体的方法是否正确。class ChessFrame extends JFrame implements ActionListener private String strsize=20x15,30x20,40x30;private String strmode=人机对弈,人人对弈;public static boolean iscomputer=true,checkcomputer=true;private int width,height;private ChessModel cm;p
10、rivate MainPanel mp;public ChessFrame() this.setTitle(五子棋游戏); cm=new ChessModel(1); mp=new MainPanel(cm); Container con=this.getContentPane(); con.add(mp,Center); this.setResizable(false); this.addWindowListener(new ChessWindowEvent(); MapSize(20,15); JMenuBar mbar = new JMenuBar(); this.setJMenuBar
11、(mbar); JMenu gameMenu = new JMenu(游戏); mbar.add(makeMenu(gameMenu, new Object 开局, 棋盘,模式, null, 退出 , this); JMenu lookMenu =new JMenu(视图); mbar.add(makeMenu(lookMenu,new Object Metal,Motif,Windows ,this); JMenu helpMenu = new JMenu(帮助); mbar.add(makeMenu(helpMenu, new Object 关于 , this);(2)用例2:用play(
12、int x,int y)方法实现电脑下子,并先通过方法readyplay(int x,int y)判断某坐标位置是否可下棋子。public void readyplay(int x,int y) if(badxy(x,y) return; if (chessExist(x,y) return; this.arrMapShowxy=3;public void play(int x,int y) if(badxy(x,y) return; if(chessExist(x,y) this.isExist=true; return; else this.isExist=false; if(getisO
13、dd() setisOdd(false); this.arrMapShowxy=1; else setisOdd(true); this.arrMapShowxy=2; (3)用例3:计算机走棋方法(computerDo)测试通过方法 computerDo实现电脑下子的思想public void computerDo(int width,int height) int max_black,max_white,max_temp,max=0; setisOdd(true); for(int i = 0; i = width; i+) for(int j = 0; j max) max=max_te
14、mp; this.x=i; this.y=j; (4)用例4:根据提供的棋子信息(颜色、坐标)画棋子方法( draw)的测试public void draw(Graphics g, int i, int j, int v) int x = 20 * i+20; int y = 20 * j+20; /画棋盘 if(i!=width & j!=height) g.setColor(Color.white); g.drawRect(x,y,20,20); /画黑色棋子 if(v = 1 ) g.setColor(Color.gray); g.drawOval(x-8,y-8,16,16); g.s
15、etColor(Color.black); g.fillOval(x-8,y-8,16,16); /画白色棋子 if(v = 2 ) g.setColor(Color.gray); g.drawOval(x-8,y-8,16,16); g.setColor(Color.white); g.fillOval(x-8,y-8,16,16); if(v =3) g.setColor(Color.cyan); g.drawOval(x-8,y-8,16,16); (5)用例5:响应鼠标的点击事件,构造方法(mousePressed)实现鼠标的点击来实现下棋的动作。public void mousePr
16、essed(MouseEvent evt) int x = (evt.getX()-10) / 20; int y = (evt.getY()-10) / 20; if (evt.getModifiers()=MouseEvent.BUTTON1_MASK) cm.play(x,y); repaint(); if(cm.judgeSuccess(x,y,cm.getisOdd() cm.showSuccess(this); evt.consume(); ChessFrame.iscomputer=false;(6)用例6:构造方法judgeSuccess(int x,int y,boolean
17、 isodd)对当前棋子各个位置的判断来得出是否胜负。public boolean judgeSuccess(int x,int y,boolean isodd) int num=1; int arrvalue; int x_temp=x,y_temp=y; if(isodd) arrvalue=2; else arrvalue=1; int x_temp1=x_temp,y_temp1=y_temp; 4.4黑盒测试软件黑盒测试也是软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的内部情况,只知道程序的输入、输出和系统的功能,这是从用户的角度针对
18、软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。软件黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误:1)功能不正确或遗漏;2)界面错误;3)数据库访问错误;4)性能错误;5)初始化和终止错误等。测试方法可以分为以下几种:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。从理论上讲,软件黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测
19、试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。软件黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。五子棋游戏测试用例如下表所示:用例操作预期结果实际结果用例1能否在不同版本的eclipese中运行该游戏 游戏能够在设计该游戏版本及以上中正常运行Pass用例2运行时能否正常显示主界面运行时能正常显示主界面Pass用例3鼠标单击菜单开始,是否可以运行游戏可以运行游戏Pass用例4鼠标单击棋盘,是否会有棋子落于该位置棋子落于鼠标单击位置Pass用例5当人下子出现“活三”、“冲四”,电脑是否会下子堵截电脑会下子阻挡Pa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 课程设计 五子棋
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4297584.html