2048游戏开发与测试论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2048游戏开发与测试论文
软件测试小论文
项目:2048游戏开发与测试
班级: 计科二班
小组: 第(1)小组
完成日期: 2014.10.31
指导教师: 钱丽
组员姓名学号所做模块
1132104128 游戏代码、后期修改
1132104121 游戏代码、单元测试
1132104110 游戏代码、集成测试
1132104129 黑盒测试、测试报告
1132104126 白盒测试、单元测试
小组得分:
摘要
在这个信息化的世界,电脑的已经基本普及于千家万户,现在人们的生活越来越离开不了计算机,随着人们的物质生活得到了应有的保障,所以现在人们更加倾向于追逐精神享受,所以计算机就成为了很好的媒介。
几年,计算机游戏的发展很迅速,这说明了现在人们喜欢靠打游戏来休闲娱乐。
因此开发一个好玩有趣的游戏是很有发展前景的。
但是现在大型的游戏是非常的多,竞争力度也比较的激烈,并且开发的困难也比较的大,相对而言,针对小型的开发游戏还是比较少一点的,特别是对于老人和儿童的小游戏更是十分的少,竞争力度也很小,所以,开发简单的小型的单机游戏是很符合当今一定年龄层次的需求的。
所以,根据游戏需求的漏洞,本组人员决定开发一款,针对老人和儿童的小游戏,本游戏的特点就是简单、易于操作的特点,是非常适合这一年龄层次的人玩的,这样游戏就会得到的很大的推广。
关键词: 计算机;小游戏;休闲娱乐;
目录
1. 引言
1.1编写目的
根据测试计划报告,对软件进行测试,详细记录测试过程,以对软件的质量进行评价,为软件设计人员提供BUG依据,故做产生测试分析报告。
1.2背景为了使游戏更加完善,使玩家有更好的游戏体验,针对游戏出现的一些问题,做出修复,使游戏更加生动,符合玩家的游戏习惯。
1.3 2048游戏可行性分析
当今市场,已经出现了各种各样,适合不同年龄段和不同人群的游戏。
比
如:CS、极品飞车、大富翁、魔兽等一些大型游戏,再比如连连看、贪吃蛇、找茬等一些小游戏,都是现在受大众欢迎的娱乐休闲游戏。
并且,随着互联网的发展,许多游戏不仅有单机版的,而且还有网络版的,甚至还有近两年流行起来的网页游戏。
迄今为止,游戏产业在我国已经发展为一个庞大的产业,为许多相关行业带来了巨大的经济效益。
2048游戏可以通过简单地操作,丰富多彩的画面来使人们达到放松的效果,人们只需要几分钟的时间就可以达到放松的效果。
由于2048游戏的开发要求并不
高,所以不需要购买特定的设施,只需安装特定的编程和图像处理软件来实现2048的开发。
2. 软件测试
2.1简介
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
2.2方法
软件测试的主要方法包括黑盒测试和白盒测试;
白盒测试:是通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正
黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。
测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。
在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。
2.3测试项目
2.3.1测试项目简介
名称:2048游戏;
游戏说明:
本游戏的主要功能是游戏开始,在游戏面板中随机出现两个2,通过键盘的
上下左右键或者W、A、S、D键来控制数字方块的移动,并且相邻且相同的数字
可以相加产生新的数字,减去一个方块,同时再随机出现另外一个数字2,如果
移动之后没有相同的两个数可以相加,也会随机产生一个随机数2,当按上下左
右键都无法移动且没有2048出现,游戏失败。
在游戏过程中只要有2048出现,
游戏成功。
当游戏结束时通过弹出的对话框选择是否再来一局:‘否’退出游戏
‘是’重新开始。
3(游戏详细设计
3.1设计思路
2048游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。
(1) 游戏主界面模块:
游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、新生方块的预览、结束游戏按钮、重新开始游戏按钮以及游戏得分按钮。
从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,赏心悦目。
(2) 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的数字移动方向、游戏的结束、重新开始等功能。
为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
本设计所开发的是基于Java的一个2048游戏软件,主要实现游戏的移动控制、游戏的重新开始、游戏的退出等功能。
性能:本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设
计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点.
3.2游戏流程图
本次游戏设计的处理流程如图3.1所示
进入游戏界面
键盘操作:
按?或A键左移
按?或D键右移
按?或W键上移
按?或S键下移
是
当其中任何当没有空方块一个方块中,而且上下左出现“2048右四个方向都”,则游戏无法移动,则成功。
游戏失败。
是否再来一局
,
否
退出游戏
图3.1 游戏设计的处理流程
3.2.1程序概述
本程序是一个利用Java应用软件制作的2048小游戏。
在游戏过程中,用户通过点击小键盘区的方向键或者W、A、S、D这四个键来控制数字的移动方向,每单击一次,数字就移动一次,其中相邻且相同的数字相加生成新的数字,同时又会随机产生一个新的数字。
当没有空方块,而且上、下、左、右四个方向都无法移动时游戏失败,当其中任何一个方块中出现2048,游戏成功。
本程序的另一个功能是在程序运行窗口的右上角显示,用户在游戏过程中所得的分数,不过缺点是无法保存分数。
3.2.2总设计模块的划分
根据游戏所需要实现的功能,整个游戏划分为两个模块进行具体设计,如图3.2:
2048游戏
游戏界面模块游戏控制模块
图3.2 游戏总设计模块
3.2.3类、方法说明
copy2048
+public void run()
+public copy2048()
+public void keyPressed()+public void Create2()+public void
setColor()+public static void main()
4(软件测试
4.1软件测试方法
本游戏的测试方法在主要是黑盒测试,由测试人员通过自己亲自去玩,然后观察游戏在运行过程中,所需要实现的功能有没有实现,以及在测试过程中有没有发现新的问题记录在案。
然后根据测试后所产生的一系列的问题,有本组负责编码人员对游戏进行改进,然后在进行测试,就这样重复的进行这样的工作,直到游戏的运行与预想时的状况基本一致时,才算通过测试。
4.2(本组人员)游戏测试内容
4.2.1测试1
名称:测试在不同计算机中操作系统中能否正常打开和运行
目的:使游戏能够在不同的计算机系统中正常运行
测试结果:经过游戏在不同计算机中运行发现,游戏能够在不同的计算机及操作系统中正常运行,并且操作流畅。
4.2.2测试2
名称:数字出现的位置是否是随机的
目的:使游戏打开后能够正常运行
数字能成功的随机出现。
测试结果:经过测试打开游戏后
4.2.3测试3
名称:相同数字的背景颜色是否相同
目的:使游戏游戏界面美观,易于辨认数字,方便玩家使用测试结果:经过测试相同数字的背景颜色相同。
4.2.4测试4
名称:数字移动是否能跟随按键控制方向而移动到相应的方向
目的:使数字能够跟随按键控制方向而向相应的方向移动
测试结果:经过测试数字能够跟随按键控制方向而向相应的方向移动。
4.2.5测试5
名称:当出现相同数字能不能相加且合并为一个数字,如2,2合并为4. 目的:使程序能够正常运行
测试结果:经过测试当出现相同数字能相加且合并为一个数字
4.2.6测试6
名称:随着数字合并相加,分数框的数字是否也是叠加向上的。
目的:当数字
合并次数增加,分数就会增加
测试结果:通过测试当数字合并次数增加,分数框的数字叠加向上。
4.2.7测试7
名称:当游戏界面中出现2048,游戏是否成功并出现游戏结束选择界面。
目的:游戏能否成功
测试结果:当游戏界面中出现2048,游戏成功并出现游戏结束选择界面。
4.2.8测试8
名称:当游戏运行到整个界面没有空白框的时候且没有出现2048,游戏是否正常结束且出现游戏结束选择界面。
目的:游戏GameOver
测试结果:通过测试当游戏运行到整个界面没有空白框的时候且没有出现2048,游
戏正常结束且出现游戏结束选择界面。
4.2.9测试9
名称:在游戏结束的界面的时候,是否可以重新开始游戏。
目的:测试能否从新开始游戏
测试结果:通过测试当游戏结束时,玩家通过按界面的按钮可以重新开始游戏。
4.3测试用例
用例操作预期结果实际结果用例1 在不同的计算机系统游戏能够在不同的计
中运行该游戏算机系统中正常运行 Pass 用例2 在电脑多次打开游戏打开游戏后数字能成
Pass 观察数字出现的位置功的随机出现
是否是随机的
用例3 进行游戏,观察相同数相同数字的背景颜色
Pass 字的背景颜色是否相相同
同
用例4 进入游戏界面,随机变数字能够跟随按键控
换按键的方向制方向而向相应的方Pass
向移动
用例5 出现相同数字能相加
Pass 且合并为一个数字点击开始按钮,游戏开
始运行
用例6 数字合并次数增加,分
Pass 数框的数字叠加向上用例7 游戏界面中出现2048,游戏
Pass 成功并出现游戏结束
选择界面点击开始按钮,游戏开
始运行用例8 游戏界面中没有空白
框且无2048,游戏正
Pass
常结束且出现结束选
择界面。
用例9 点击界面中的“是” 重新出现随机产生的
Pass
数字界面
4.4.2游戏后期改进展望
, 进一步完善自己的游戏;
, 增加关卡能转换场景;
, 增加小鱼的类型,增加超级分数鱼; , 改变食人鱼的样式,使人看到就不敢吃; , 我们会美化结束界面;
, 我们会增加游戏中途结束按钮。
4.4.3游戏第二次测试用例
DEBUG 用例预期结果测试结果第一测试结果第二
次次
用例1 关于血条颜色更正血条颜 PassFail 色,随游戏进
行,血量减少,
红色血条减少
用例2 关于等级选择随等级升高,Pass Fail 大鱼随鼠标运
动更加灵敏,
小鱼变快
用例3 关于小鱼单一增加多种小 PassFail 鱼,以丰富游
戏内容
用例4 关于小鱼的出小鱼初始随机
Fail 现,游动出现,游戏途Pass 中小鱼可以随
机转向
Fail 用例5 关于食人鱼形将食人鱼形象Pass 象加以丑化
4.4.4游戏改进后的代码
第二次测试具体过程如下:
1、小鱼随机出现问题
初始化小鱼的位置,用数组存储10条小鱼,添加到舞台,将其x,y坐标的初始位置定义成
舞台宽高范围内的随机数,即解决小鱼初始化位置的随机定位。
具体代码如下:
for (var i:int = 0; i < 15; i++)
{
var _miFish:MovieClip = new MinFish;
this.addChild(_miFish);
_miFish.x = randomNum(450,100); //小鱼的初始位置x的范围
_miFish.y = randomNum(400, 100); //小鱼的初始位置y的范围
this.minfishArr.push(_miFish);
}
2、小鱼随机转向问题
在游戏途中,运用switch语句定义随机数,当随机到某一个数字的时候,让它执行随即转向变速动作。
具体代码如下:
package
{
import flash.display.MovieClip;
import flash.events.*;
/**
* 小鱼游动方法的定义
* @author king
*/
public class MinFish extends MovieClip
{
var _speedX:int = 2;
var _speedY:int = 2;
public function MinFish()
{
this.mouseChildren = this.mouseEnabled = false; this.addEventListener(Event.ENTER_FRAME, moving); }
//定义小鱼的游动方法
private function moving(e:Event):void
{
//定义小鱼初始化速度
this .x += _speedX;
this .y += _speedY;
//用随机数,让小鱼随机改变游动的方向,速度
switch(randomNum(50, 1))
{
case 6:
_speedX = -randomNum(5,1);
this.scaleX = -1;
break ;
case 16:
_speedX = randomNum(5,1);
this .scaleX = 1;
break;
case 8:
_speedY = -randomNum(5,1); break;
case 18:
_speedY = randomNum(5,1); break;
default:
}
//判断小鱼游出舞台边缘后,处理方法if (this.x > 600)
{
this.scaleX = -1;
_speedX = -randomNum(5,1);
}
if (this.x <-50)
{
this.scaleX = 1;
_speedX = randomNum(5,1);
}
if (this.y > 450)
{
_speedY = -randomNum(5,1);
}
if (this.y < -50)
{
_speedY = randomNum(5,1);
}
}
//定义随机数的方法
private function randomNum(max:int, min:int):int
{
return int (Math .random() * (max - min) + min); }
}
}
5(总结
在本次软件测试课程设计中,通过小组人员艰辛的努力,对此游戏的制以及历时较长的和繁琐的测试工作,最终成功的完成了本次的课程设计工作。
无论是在游戏的制作还是游戏的测试,在其中遇到了很多的困难,但是通过本组人员的共同合作、共同探讨、共同合作,最终,克服了种种的困难。
所以说这次的成果是来之不易的,是大家集体的合作成果,或者说是集体智慧的结晶。
通过本次的软件测试的整个过程,虽然很忙,时间很紧迫,人也很疲惫,但是我们享受了这个软件测试的过程,以及它带给我们的乐趣,因为通过本次的设计才让我们真正的近距离接触这门课,从而对着门课有了不一样的认识,这门课不仅是一门很重要的技术,而且喜
欢它的人还会感觉到它是一门艺术的学科。
在通过每次的合作解决一系列的难题时,我们每个人都感觉到合作的重要性,
以及合作带来的效率及成果,让我们每个人都为之而惊呼。
这不仅对本次的课程设计发挥了重大的作用,而且这对我们未来的人生都是一个巨大的影响。
最后,我们由衷的感谢这门艺术的学科带给我们不一样的回味。
6.软件测试参考文献
[1].朱少民《软件测试》[M].人民邮电出版社,2009.8;
[2].章精设《Flash ActionScript 3.0》[M].清华大学出版社,2008.10; [3].史济民《软件工程》[M].北京高等教育出版社,2002.12; [4]. 刘纯录.《软件评测师教程》[M].清华大学出版社,2006.03; [5]. 崔启亮/ 胡一鸣.《国际化软件测试》[M].电子工业出版社,2006.04 [6](朱少民《软件测试方法和技术》[M].清华大学出版社,2005.02; [7](Glenford.Myers《软件测试的艺术》[M].机械工程出版社,2006.。