




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)中国象棋对弈系统系 别 :计算机科学与技术系专业(班级):计算机科学与技术09级本2班作者(学号):XXX(学号)指导教师:XXX(括号内填写职称或学位)完成日期: 2013年06月06日XXXXX教务处制目 录中国象棋对弈系统- 1 -Chinese chese playing system- 2 -第一章引言(概述)- 4 -第二章 系统可行性分析- 5 -2.1 总体分析- 5 -2.2 开发环境介绍- 5 -2.2.1 硬件开发环境- 5 -2.2.2 软件开发环境- 5 -第三章 系统需求设计- 6 -第四章 详细设计- 7 -4.1 功能设计- 7 -4.1.1 功能说明- 7 -4.1.2 对弈规则- 7 -4.1.3 相关类图- 7 -4.1.4 相关类的类图- 8 -4.2功能的实现- 8 -4.2.1 图形界面的实现- 8 -4.2.2 棋谱的实现- 11 -4.2.3 棋子的添加- 11 -4.2.4 背景音乐- 13 -4.2.5 版本信息- 13 -4.2.6 新游戏- 14 -4.2.7 保存与打开- 14 -4.2.8 悔棋- 16 -4.3棋子移动和吃棋规则- 17 -4.3.1 本节说明- 17 -4.3.2详细规则介绍- 18 -卒的移动及吃棋规则- 18 -炮和车的移动及吃棋规则- 18 -马的移动和吃棋规则- 18 -相(象)的移动和吃棋规则- 18 -士(仕)的移动和吃棋规则- 19 -将(帅)的移动和吃棋规则- 20 -4.4 测试说明- 20 -4.5 测试结果- 21 -4.5.1 运行结果- 21 -4.5.2 新游戏实现- 23 -4.5.3 棋谱的打开与保存- 25 -结 束 语- 27 -谢 词- 28 -参 考 文 献- 29 -XXXX本科毕业设计(论文)中国象棋对弈系统摘 要: 1、任务 据统计,中国有2亿人会下中国象棋,这相当于平均6至7个人中就有1人会下,可见它有着广泛的群众基础。中国象棋对弈系统正是为这一可行性而开发设计的,玩家可以通过它很好的研究棋谱,学习中国象棋技术,提高水平。简单的棋规,便捷的载体,使得他成为雅俗共赏的竞技项目。该程序是一个图形界面的java中国象棋对弈系统,本系统主要实现如下目标:(1)系统实现:下棋界面,走棋与吃棋,胜负判断;(2)设计象棋菜单:新游戏,保存,打开,退出,悔棋,信息提示。2、着重培养的能力本课题旨在对大学期间所学基础和专业知识的全面检验与总结;提高综合运用所学专业知识分析、解决实际问题的能力;通过本课程设计使学生加深理解、巩固课堂理论知识和实验知识,使学生初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、方法与技术,数据结构技术等开发简单应用系统的基本能力,初步掌握软件开发中系统分析、系统设计、系统实现和系统测试等阶段的基本方法与技术,培养学生的创新意识,提高实践应用能力,为培养应用型人才服务;进行撰写技术报告、学术论文等方面的基本训练。3、成果形式软件系统和设计论文关键词: JAVA;象棋;对弈;游戏;大学;专业;能力;论文Chinese chese playing systemAbstract:1, task According to statistics, China has 200 million people can play Chinese chess, it is equivalent to an average of six to one in 7 people in people, it has a broad mass base. China chess system is designed for the feasibility and development, the player can move through it very good research, learning Chinese chess technology, improve the level. Simple chess rule, convenient carrier, make him fit athletic project. The program is a graphical interface Java Chinese chess game system, this system mainly realize the following goals: (1) system implementation: chess interface, playing chess and chess, the outcome, (2) design chess menu: a new game, save, open, quit, HuiQi, information prompt. 2, focus on training the ability This topic aims to the foundation and professional knowledge during the period of university comprehensive inspection and summary; To improve the integrated use of professional knowledge to analysis, the solution actual problem ability; Through this course design to make the students deepen understanding, consolidate the classroom theoretical knowledge and experimental knowledge, make students have integrated use of learned basic knowledge of Java language, the object-oriented program design basic ideas, methods and technology, data structure, technology development simple application system such as the basic ability, preliminary grasp software development, system analysis, system design, system implementation and system test phase of the basic methods and technology, cultivate the students innovation consciousness, improving practical application ability, to cultivate applied talents service; Write technical reports and academic papers of basic training.3, production forms Software system and the design paper Keywords:JAVA;chese game;game;university;magor;ability;dissertation第一章 引言(概述)随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。中国象棋发展至今已有二千三、四百年的历史了,早在战国时期就有正式记载,堪称中国的国粹。想必在未来的几年随着中国象棋在各个领域的推广,必定会带来巨大的影响和经济效益。中国象棋对弈在中国有着悠久的历史,是二人对抗性游戏中的一种。由于用具简单,趣味性很强,很快成为流行极为广泛的棋艺活动。也是我国正式开展的78个体育项目之一,为促进该游戏在世界范围内的推广和普及,在中国历史上,象棋被列为士大夫们的修身之艺,现在被视为怡神益智的一种有益的游戏。在棋艺对战中,玩家们可以从攻与防、虚与实、整体与局部等复杂关系的变化中悟出某种各种哲理。象棋博弈是由两个玩家轮流走子,以“将死”或“困毙”对方将或帅为胜的一种棋类运动,有着数以万亿计的爱好者。它不仅能丰富人们的文化生活,陶冶情操,更有助于开发个人智力,启迪思维,锻炼辨证分析能力和培养顽强的意志等等。 随着计算机的使用的深入普及,计算机应用技术的日益完善,人们已经和计算机有着密切的关联,在计算机上玩游戏已经大众化,给人们带来了无限的欢悦,本系统是一个小程序,只要在装有jdk中的虚拟机的计算机上即可运行,中国象棋对弈系统实现了双人对弈这个功能,可用于多人一起游戏。而实现中国象棋对弈系统就为象棋在网络应用平台提供多人对弈打下基础。中国象棋对弈系统主要要实现的是棋子的走法和规则,中国象棋讲究车,马,象,仕,卒,炮,将的活用;只有当将被对方玩家的棋子吃掉,则首先吃掉对方将或帅的一方就是胜利的一方。玩家对局时,由红棋的一方先走,双方轮流各走一次,直至分出胜负,对局即结束。轮到走棋的一方,要将某个棋子从一个十字交叉点走到另一个十字交叉点,或者吃掉对方的棋子而占领其十字交叉点,都算走一次。双方各走一次,称为一个回合。象棋是中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。第二章 系统可行性分析2.1 总体分析此次对弈系统的开发研究是大学专业知识的一次综合应用于提高,计算机主要安装jdk运行环境和Eclipse应用程序开发工具。在技术方面,开发过程中会出现很多问题,有预想之中的,也有预想之外的,特别在图形界面的设计上遇到了很多问题,但通过进一步的学习和与指导老师的沟通,一些问题逐一被解决。运用java,gui监听器和标准类库等知识,首先编写一个主类ChineseChess,构造一个主窗口,在中国象棋-Java版上添加一块可显示的棋盘,再插入图片CChess.GIF图片作为棋谱,再在棋盘上添加32个棋子按钮,再插入相应图片作为棋子,然后再在主窗口下面添加一块面板作为设计象棋菜单,用此菜单来用来对“新游戏,悔棋,保存,打开,退出棋谱,走棋提示”进行操作。1.中国象棋对弈系统是:图形界面,线程,监听器与文件等技术的综合运用。2.图形界面的实现:考虑到中国象棋的特点本身程序使用GridLayout布局来实现由于使用鼠标操作本身程序使用Jbutton组件。3.对弈的实现:利用鼠标的监听来实现对象棋走法的操作。2.2 开发环境介绍2.2.1 硬件开发环境 本系统硬件环境在操作系统在Windows Server 2003 上完成编码及测试,硬件要求不高,只要有台电脑即可。2.2.2 软件开发环境1. 结合本系统的特点,只需要一个软件开发工具和一个虚拟机即可,因此需要的软件有:2. 操作系统在Windows Server 2003以上;3. 开发工具使用Eclipse;4. 在操作系统上安装jdk的开发环境以及jre(虚拟机)的运行环境。第三章 系统需求设计中国象棋对弈系统要求实现下棋界面,利用鼠标监听来实现走棋与吃棋,胜负判断并伴有信息提示,在下棋界面下端设有象棋菜单,菜单内容包括“新游戏,保存,打开,退出,悔棋,信息提示”等相关功能。详情如下:1. 新游戏:开始一场新的游戏,并重新棋子初始化。2. 打开:打开原保存的文件,并开始棋局。3. 保存:实现棋谱的保存,并生成一个棋谱文件。4. 悔棋:返回到上一步棋局,并开始继续下棋。5. 退出棋谱:对话框提示,是否退出系统。第四章 详细设计4.1 功能设计4.1.1 功能说明 这个系统主要实现人人对弈,采用鼠标监听的方法来实现对棋子的移动,双方依次轮流走棋,在状态显示栏有走棋的相关提示,主要提示该轮到哪方走棋。如果一方想要认输,在征求对方认可的情况下,点击“新游戏”开始新的一局开始对弈,如果一方想要悔棋,也是在征求对方同意的情况下,点击“悔棋”按钮,可连续悔棋。如果遇到紧急情况或者疲惫的情况下,可点击“保存”按钮保存当前棋局,当空闲的时候可以点击“打开”按钮并找到上次保存的棋局。为防止误操作关闭下棋界面,在退出时设有信息提示,如果确认退出,则点击“是”按钮,否则点击“否”返回下棋界面。4.1.2 对弈规则选择红黑棋子双方可以自由商定选择,但默认是红方先手,黑方后手。打开以前残局可按照信息提示框的提示决定哪方先手,哪方后手。4.1.3 相关类图(图)4.1.3-1 包和类在Eclipse应用程序开发工具新建一个项目ChineseChese项目,在项目中新建包com.Larry.frame,包内包含主类ChineseChese.java,作为该程序的main方法;图形界面类CheseMainFrame.java,对界面进行设计操作;象棋走子规则类CheseRule.java,主要对各个棋子的走法规则进行控制;音乐类MusicDemo.java,主要用于背景音乐的控制。4.1.4 相关类的类图 该类图包括了各个类内的方法,详细的展示了类中的方法。(图)4.1.4-1相关类的类图4.2功能的实现4.2.1 图形界面的实现图形界面的是实现主要在类ChineseMainFrame类中实现,通过继承Jframe来进行初始化操作以下是相关代码:如(图)4.2.1-1 图形界面/创建工具栏jmain = new JToolBar();showAbout = new Button( 关于);showAbout.setToolTipText(关于);text = new JLabel(热烈欢迎);text.setToolTipText(提示信息);anew = new Button( 新 游 戏 );anew.setToolTipText(重新开始新的一局);exit = new Button( 退 出 );exit.setToolTipText(退出本程序);repent = new Button( 悔 棋 );repent.setToolTipText(返回到上次走棋的位置);showOpen = new Button(打开);showOpen.setToolTipText(打开以前棋局);showSave = new Button(保存);showSave.setToolTipText(保存当前棋局);/把组件添加到工具栏jmain.setLayout(new GridLayout(0,7);jmain.add(anew);jmain.add(repent);jmain.add(showOpen);jmain.add(showSave);jmain.add(exit);jmain.add(text);jmain.add(showAbout);jmain.setBounds(0,500,470,24);con.add(jmain);/注册按扭监听anew.addActionListener(this);repent.addActionListener(this);exit.addActionListener(this);showAbout.addActionListener(this);showOpen.addActionListener(this);showSave.addActionListener(this);/添加棋盘标签con.add(image = new JLabel(new ImageIcon(images/CChess.GIF);image.setBounds(0,0,446,497);image.addMouseListener(this);/注册窗体关闭监听this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we)System.exit(0););/窗体居中让窗体居中Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = this.getSize();if (frameSize.height screenSize.height)frameSize.height = screenSize.height;if (frameSize.width screenSize. Width)frameSize.width = screenSize. Width;this.setLocation(screenSize. Width - frameSize.width) / 2 - 200 ,(screenSize.height - frameSize.height ) / 2 - 290);this.setIconImage(new ImageIcon(images象.GIF).getImage();this.setResizable(false);this.setTitle(Title);this.setSize(450,550);this.show(); (图)4.2.1-1 图形界面 (图)4.2.3-1 棋谱4.2.2 棋谱的实现 在图形界面的空白处添加棋谱图片CChese.GIF,即可显示棋谱如(图)4.2.2-1 棋谱。以下是相关代码:/添加棋盘标签con.add(image = new JLabel(new ImageIcon(imageCChess.GIF);image.setBounds(0,0,446,497);image.addMouseListener(this);4.2.3 棋子的添加 在图形界面中添加相关棋子图片后如(图)4.2.3-1/添加棋子标签drawChessMan();这是添加红色棋子的棋子“车”,采用接口的形式实现,其它棋子依此方法依次添加即可形成一个完美的棋谱了。/车in = new ImageIcon(image车1.GIF);for (i=0,k=10;i2;i+,k+=385)playi = new JLabel(in);playi.setBounds(k,10,40,40);playi.setName(车1); (图)4.2.3-1 添加棋子 (图)4.2.5-1 版本信息4.2.4 背景音乐在游戏过程中,时间长了往往会感觉到疲惫,来首优雅的背景音乐既可以消除疲劳,也可以缓解压力,从而带来身心的愉悦,本系统添加了一首流行音乐作为背景音乐,背景音乐能使玩家感觉到游戏中的气氛,使玩家容易进入游戏状态,还可以给玩家留下一个好印象,衬托游戏的场景,好的游戏背景也能表现出游戏的水准。主要用以下方法实现:try File music = new File(许佳慧 - 预谋.wav); AudioClip ac = Applet.newAudioClip(music.toURL(); ac.loop(); catch(Exception e) e.printStackTrace(); 4.2.5 版本信息 点击图形界面中的“关于”按钮,即可显示(图)4.2.5-1 所示的内容,主要显示系统名,版本号以及制作者,点击“确定按钮”结束浏览。主要代码设计如下setBounds(200,100,300,200);setTitle(版本信息);this.setIconImage(ico.getImage();label=new JLabel(中国象棋对弈系统版本号:v1.0制作者:XXXX导 师:XXXX,JLabel.LEFT);pane=new JPanel();ok=new JButton(确定);ok.addActionListener(this);pane.add(ok);add(pane,BorderLayout.SOUTH);add(label,BorderLayout.CENTER);在此,也可用此方法为象棋对弈系统添加,对弈规则以及说明书等介绍,为玩家提供更方便的游戏体验。4.2.6 新游戏在游戏进行过程中,往往会因某种原因会重新开始游戏,玩家不可能重新开启游戏客户端,为了给玩家更好的游戏体验,设置重新开始游戏是必不可少的功能。重新开始游戏后,会重新排列棋子返回原位。以下是红子“车”的排列方法,通过坐标把相应的棋子排列,其它棋子排列与此方法相似,只是坐标不同。/重新排列每个棋子的位置/车for (i=0,k=10;i2;i+,k+=385)playi.setBounds(k,10,40,40);4.2.7 保存与打开在一个系统中保存与打开文件是必不可少的操作,保存一个游戏进度可以省去很多不必要的麻烦,当对弈双方遇到得不暂停游戏的情况,双方又不想轻易放弃此局,保存游戏进度的功能就非常人性化的解决了这个问题,以下就是保存游戏进度的相关代码,通过文件流的方式把内存里的数据读出来,在保存在一个新的文件中,并保存所有棋子的坐标是否可见和哪方吃子。try/保存对话框JFileChooser jfcSave = new JFileChooser(保存当前棋局);int v=jfcSave.showSaveDialog(this);if (v != JFileChooser.CANCEL_OPTION)FileVar.removeAllElements();/保存所有棋子的坐标和是否可见for (int i=0;i32;i+)FileVar.addElement(new Integer(playi.getX();FileVar.addElement(new Integer(playi.getY();FileVar.addElement(new Boolean(playi.isVisible();/保存当前该哪方吃棋FileVar.add(text.getText();/保存到文件FileOutputStream fileOut = new FileOutputStream(jfcSave.getSelectedFile();ObjectOutputStream objOut = new ObjectOutputStream(fileOut);objOut.writeObject(FileVar);objOut.close();fileOut.close(); 打开理论上和保存一样,首先会弹出一个对话框“打开”,会删除集合里的所有信息,删除过后,打开文件所获得的数据并获得集合内所有棋子的坐标而且被吃掉的棋子不显示,在信息提示框提示当前该那方走子。try /打开对话框JFileChooser jfcOpen = new JFileChooser(打开棋局);int v=jfcOpen.showOpenDialog(this);if (v != JFileChooser.CANCEL_OPTION)/删除集合所有信息Var.removeAllElements();FileVar.removeAllElements();/打开文件获得所有数据FileInputStream fileIn = new FileInputStream(jfcOpen.getSelectedFile();ObjectInputStream objIn = new ObjectInputStream(fileIn);FileVar = (Vector)objIn.readObject();fileIn.close();objIn.close();/集合内容对应棋子坐标int k=0;for (int i=0;i32;i+)playi.setBounds(Integer)FileVar.get(k).intValue(),(Integer)FileVar.get(k+1).intValue(),40,40);/被吃掉的棋子不显示if (!(Boolean)FileVar.elementAt(k+2).booleanValue()playi.setVisible(false);k+=3;/当前该哪方棋子走棋if (String)FileVar.lastElement().toString().equals( 红棋走棋)text.setText(String)FileVar.lastElement().toString();chessPlayClick = 2;else if (String)FileVar.lastElement().toString().equals( 黑棋走棋)text.setText(String)FileVar.lastElement().toString();chessPlayClick = 1;else if (String)FileVar.lastElement().toString().substring(5).equals(胜利)text.setText(String)FileVar.lastElement().toString();chessPlayClick = 3;4.2.8 悔棋 在棋类游戏中走错棋是经常存在的,也许误走,也许是走棋后发现危险想要取消上一步,甚至上几步的走棋。为了满足此种要求,该系统实现了悔棋功能,在取得双方同意的情况下,可以回一步,也可以连续回几步,知道双方满意为止。通过获得setVisible属性值获得X和Y坐标并获得索引赋给棋子,然后删除用过的坐标,停止棋子闪烁。/获得setVisible属性值String S = (String)Var.get(Var.size()-4);/获得X坐标int x = Integer.parseInt(String)Var.get(Var.size()-3);/获得Y坐标int y = Integer.parseInt(String)Var.get(Var.size()-2);/获得索引int M = Integer.parseInt(String)Var.get(Var.size()-1);/赋给棋子playM.setVisible(true);playM.setBounds(x,y,40,40);if (playM.getName().charAt(1) = 1)text.setText( 黑棋走棋);chessPlayClick = 1; elsetext.setText( 红棋走棋);chessPlayClick = 2;/删除用过的坐标Var.remove(Var.size()-4);Var.remove(Var.size()-3);Var.remove(Var.size()-2);Var.remove(Var.size()-1);/停止旗子闪烁chessManClick=false;catch(Exception e)4.3 棋子移动和吃棋规则4.3.1 本节说明 俗话说“无规矩不成方圆”,在本系统中也存在各种规则,对各棋子的移动和吃子都有严格的限制。本系统的所有棋子移动和吃棋规则都在类CheseRule中。4.3.2详细规则介绍卒的移动及吃棋规则 移动规则:根据本系统的详细情况来说,黑卒向下移动,红兵向上移动,并且不能回头,但可以左右移动。通过相关算法得到合法坐标,执行移动、吃棋和过河等操作。 吃棋规则:不管是黑卒还是红兵都可以吃掉正前方和左右方向上的任何棋子,但不能隔子吃棋。炮和车的移动及吃棋规则走棋规则:首先判断起点和终点是否有棋子,炮和车只能上下和左右移动并吃棋,起初要指定所有模糊的Y(X)坐标,移动的Y(X)坐标是否有指定坐标相近的所有棋子,找出在同一条竖线(横线)的所有棋子,并不包括自己,从起点到终点判断中间是否有棋子,如果中间有棋子就不可以从这条竖线(横线)过去,从起点到终点找起点和终点的棋子,起点和终点没有旗子就可以移动了。吃棋规则:找出起点和终点是否有棋子,找出所有棋子,找出同一条线上的棋子,不包括自己,自己是七点被吃的终点。起点和终点没有棋子是车的吃棋方法,不能吃己方棋子,起点和终点有一个棋子是炮的吃棋方法,也不能吃己方棋子。(代码详见附录1)马的移动和吃棋规则走棋规则:新建集合用来保存坐标和障碍,找到合法的和坐标,判断正前方、正后方、正左方、正右方是否有别的棋子,判断移动该棋子。来实现马飞日的走法。吃棋规则:也要有集合存放障碍棋子,首先判断正方是否棋子,若有则不能吃正方前方的两个棋子,若没有则可以移动到指定位置及吃棋,不能吃自己的棋子,吃棋后,停止闪烁,不显示被吃棋子。相(象)的移动和吃棋规则走棋规则:新建集合用来保存坐标和障碍棋子,用相关算法实现飞田算法(详见附录),并且红(黑)棋不能过楚河汉界。 吃棋规则:新建集合用来保存障碍棋子,吃左上方棋子的方法,首先判断左上方是否有棋子for (int i=0;i= 10 & play.getX() - playQi.getX() = 40 & play.getY() - playQi.getY() = 60)Move+;break;如果有对方棋子则Chese = true;就可以实现吃左上方的敌方棋子。吃右上方棋子方法,也是率先判断是否有敌方棋子如下:for (int i=0;i= 40 & playQi.getX() - play.getX() = 40 & play.getY() - playQi.getY() = 60)Move+;break;如果有则Chese= true;则可以实现吃掉右上方的敌方棋子了。吃左下方棋子办法,首先判断是否有敌方棋子:for (int i=0;i= 10 & play.getX() - playQi.getX() = 60 & play.getY() - playQi.getY() = -60)Move+;break;如果有则Chese = true;实现了吃掉左下方的敌方棋子。吃右下方敌方棋子,首先判断右下方是否有敌方棋子:for (int i=0;i= 50 & playQi.getX() - play.getX() = 40 & playQi.getY() - play.getY() = 50 & me.getX() - play.getX() = 15 & play.getY() - me.getY() = 50)if (Man 150 & me.getX() 300 & me.getY() 13 & me.getY() 340 & me.getX() 150 & me.getX() 300)play.setBounds(play.getX()+50,play.getY()-50,40,40);下面来介绍走法:1. 上、右:逻辑代码:(play.getX() - me.getX() = 13 & play.getY() - me.getY() = 15 & play.getY() - me.getY() = 50)2. 上、左:逻辑代码:(play.getX() - me.getX() = 13 & play.getY() - me.getY() = 15 & play.getY() - me.getY() = 50 & me.getX() - play.getX() = 50 & me.getY() - play.getY() = 80)4. 下、左: 逻辑代码:else if (play.getX() - me.getX() = 15 & me.getY() - play.getY() = 50 & me.getY() - play.getY() = 80)吃棋规则:吃棋时也是按照移动规则,进行判断吃子,判断被吃的棋子是否与士(仕)相近,如果相近则吃掉,且不能吃掉己方棋子。将(帅)的移动和吃棋规则帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在九宫之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。4.4 测试说明在软件开发的过程中,人们使用了很多保证软件品质的方法分析、设计和实现软件系统,但免不了还会在工作中犯很多错误。为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件的各项功能和操作进行严格的技术评审。软件测试就是在软件正式运用前,对软件需求分析、设计规格说明和编码的再次审查和修改使之更加完善,是软件质量保证的关键所在,也可以说软件测试是为了发现运行中的错误而运行程序的过程。其目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。目前,流行的软件测试方法有两种,一种是黑盒测试法,另一种是白盒测试法。任何工程产品都可以使用这两种方法进行测试。 黑盒测试是已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的白盒测试是对软件的过程性细节作细致的检查,它是已知产品的内部工作过程,可以通过测试证明每种操作是否符合设计规格要求,所有的内部成分是否已经检查。但是,任何软件的开发项目都要受到期限、费用、人力和机时等条件的限制。尽管我们以为为了充分揭露程序中的所有隐藏错误、彻底的做法是针对所有可能的数据进行测试,但事实告诉我们,这样做是不行的。在测试阶段既然穷举测试不可行,为了节省时间和资源,提高测试效率,就必须精心设计测试用例,也就是要从数量极大的可用测试用例中精心地挑选少量的测试数据,使得采用这些测试数据能够达到最佳的测试效果,或者说它们能够高效率地把隐藏的错误揭露出来。对于本软件的测试,我们选择的是黑盒测试法中的边界值测试。 人们从长期的测试工作经验得知,大量的错误是发生在输入或者输出范围的边界值上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入等价类与输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或者任意值作为测试用例。边界值分析方法选择测试用例的原则:(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1、比最小个数少1作为测试数据。(3)如果程序的规格说明给出的输入域或者输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。(4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。(5)分析规格说明,找出其他可能的边界条件。4.5 测试结果4.5.1 运行结果 本系统可以实现人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西吉安市青原区司法局招聘2人考试备考试题及答案解析
- 2025甘肃中铁西北科学研究院有限公司评估中心招聘考试备考试题及答案解析
- 2025年康复医疗服务体系与康复医疗设备产业协同发展报告
- 2025年数控机床智能化升级技术路径与产业变革报告
- 2025年消费金融用户画像精准营销策略与行业动态报告
- 合肥市二手房市场价格的多维度解析与影响因素探究
- 合成孔径雷达快速时域成像算法:原理、优化与应用探索
- 合作学习:开启高中生物教学的新征程
- 2025年足彩胜负彩过滤服务协议书范本3篇
- 教师招聘之《幼儿教师招聘》能力检测试卷附答案详解(黄金题型)
- 消控室委托管理协议合同
- 幼儿园视频宣传工作计划
- 股癣的护理查房
- DB41∕T 2716-2024 农村公路承灾体灾害调查技术规程
- 楼盘进企业活动方案
- 金属非金属地下矿山培训
- 结肠代食管的护理
- 生活饮用水卫生知识培训
- 粉尘安全管理管理制度
- 景区摊子管理方案(3篇)
- 实验室保密管理制度
评论
0/150
提交评论