贪吃蛇白盒测试课程设计文档格式.docx

上传人:b****6 文档编号:16177111 上传时间:2022-11-21 格式:DOCX 页数:16 大小:299.55KB
下载 相关 举报
贪吃蛇白盒测试课程设计文档格式.docx_第1页
第1页 / 共16页
贪吃蛇白盒测试课程设计文档格式.docx_第2页
第2页 / 共16页
贪吃蛇白盒测试课程设计文档格式.docx_第3页
第3页 / 共16页
贪吃蛇白盒测试课程设计文档格式.docx_第4页
第4页 / 共16页
贪吃蛇白盒测试课程设计文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

贪吃蛇白盒测试课程设计文档格式.docx

《贪吃蛇白盒测试课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《贪吃蛇白盒测试课程设计文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

贪吃蛇白盒测试课程设计文档格式.docx

速度达到150时,显示“疾风之蛇!

速度达到120时,显示“已经疯子!

速度达到100时,显示“超越神了!

”。

6.当蛇吃到上下边界(顶部和底部黑色长方格)以及自己的身体后游戏结束。

7.游戏结束后,按enter回车键重新开始。

白盒测试过程:

一、代码检查:

1.变量的检查

正常

2.命名和类型的检查

3.程序逻辑审查

符合逻辑

4.程序语法检查

语法通过

5.程序结构检查

合理

二、静态结构分析:

程序静态结构如下类图所示

Snake类图关联:

Controller类图关联:

GamePanel类图关联:

1.根据类图及关联简述贪吃蛇程序的类功能及结构。

(1)Food继承于Point,其实就是个坐标对象所包含的方法1、记录新食物的位置2、比较Food对应的坐标是否与蛇头相等

(2)Ground对地板的封装,它拥有成员变量二维rocks记录墙的位置,初始状态墙在第1行和第15行蛇是否撞墙的判断方法isSnakeatGround

(3)Snake继承于Thread,通过蛇行为判断相应的动作:

是否吃到自己的判断,通过分数值来获得速度的判断,通过方向的移动来判断蛇头的移动,蛇的运行状态、运行方向、是否存活的判断(吃自己),以及初始化蛇对象。

(4)Controller控制游戏,她创建snake、food、ground对象,并获取计分面板和游戏面板对象能通过newGame()方法启动游戏利用keyPressed()方法接收按键行为利用snakeMoved()处理蛇移动后的行为

SnakeListener蛇移动的监听器

(5)Global全局变量定义,包含单元格大小以及长宽各占多少单元格

(6)GamePanel游戏面板,继承于JPanel,主要功能利用display()是获得snake、food和ground对象

并画蛇、食物和石头

(7)GameUI组合贪吃蛇面板,触发应用程序运行

(8)ScorePanel计分面板,继承于JPanel,拥有5个标签对象,最开始的成绩设置为0,等级为初出茅庐

其中label2用来显示成绩值,label4用来显示等级名称

结构描述

首先Gobal定义好场景的大小,在场景中加入计分面板ScorePanel和游戏面板GamePanel,再用GameUI组合贪吃蛇面板,触发应用程序运行。

Food中设置新食物的坐标位置,Gronud中二维rocks记录墙的位置,并定义蛇撞墙的判断方法,Snake定义蛇的行为来判断是否吃到自己获得速度以及通过方向判断蛇头的移动,在Controller中创建snake,food,ground对象,结合它们中所有的蛇行为并关联到游戏和计分面板。

SnakeListener添加蛇移动的监听器。

2.判断哪些是主要方法。

1)booleancommon.Ground.isSnakeEatGround(Snakesnake):

蛇是否撞墙的判断方法

@paramSnakesnake蛇

@returntrue蛇头的坐标等于在第一行和15行

2)booleancommon.Snake.isEatBody():

判断蛇是否吃到自己

@returntrue:

蛇身体的坐标等于蛇头的坐标

3)intcommon.Snake.getSpeed():

通过分数来获得速度

4)voidview.ScorePanel.setGrade(intspeed):

根据参数判断所处的等级,并更新计分板上的等级值

@paramspeed速度值

5)voidcontroller.Controller.keyPressed(KeyEvente):

通过keyPressed方法接收按键行为

6)voidcontroller.Controller.snakeMoved(Snakesnake):

蛇移动后的行为

1是否吃到食物,true构建新的食物坐标

2是否撞到墙,true蛇死

3重新画蛇,食物,地板4跟新计分板上的分数和等级

7)voidview.GameUI.main(String[]args):

GameUI的主函数

8voidcommon.Snake.eatFood()

蛇吃到食物后给蛇加尾巴,给游戏者加分

3.检查方法调用是否符合要求。

4.方法调用层次是否过深。

5.是否存在孤立未被调用的成员及方法。

privateGamePanelSnake.gamePanel

privateJLabellabel4;

三、动态测试

根据结构分析,贪吃蛇程序的产生BUG的主要模块为snake、controller、GameUI、ScorePanel,以下进行主要功能模块的单元测试

setGrade单元测试

A.测试用例设计

测试用例

类型(正常或异常)

输入条件

期望结果

输出结果

TestsetGrade1

300

初出茅庐!

TestsetGrade2

异常

250

小试牛刀!

超越神了!

TestsetGrade3

200

表现优异!

TestsetGrade4

150

疾风之蛇!

TestsetGrade5

120

已经疯子!

TestsetGrade6

100

B.测试类脚本(测试文件名及结构)

voidview.ScorePanelTest.testsetGrade()

testsetGrade()测试等级内容当速度达到300时,显示等级为"

"

当速度达到250时,显示等级为"

当速度达到200时,显示等级为"

当速度达到150时,显示等级为"

当速度达到120时,显示等级为"

当速度达到100时,显示等级为"

Speed单元测试

testGetSpeed1

90

testGetSpeed2

170

testGetSpeed3

130

160

testGetSpeed4

testGetSpeed5

50

testGetSpeedBound1

80

testGetSpeedBound2

testGetSpeedBound3

testGetSpeedBound4

testGetSpeedBound5

testGetSpeedBound6

40

1、voidcodetest.SnakeTes.testGetSpeed1():

testgetSpeedX()测试通过分数来获得速度

2、voidcodetest.SnakeTes.testGetSpeed2()

3、voidcodetest.SnakeTes.testGetSpeed3()

4、voidcodetest.SnakeTes.testGetSpeed4()

5、voidcodetest.SnakeTes.testGetSpeed5()

6、voidcodetest.SnakeTes.testGetSpeedBound1()

7、voidcodetest.SnakeTes.testGetSpeedBound2()

8、voidcodetest.SnakeTes.testGetSpeedBound3()

9、voidcodetest.SnakeTes.testGetSpeedBound4()

10、voidcodetest.SnakeTes.testGetSpeedBound5()

11、voidcodetest.SnakeTes.testGetSpeedBound6()

isSnakeEatGround单元测试

testIsSnakeEatGround1

nake.getBody().set(0,newPoint(5,0))

false

true

testIsSnakeEatGround2

nake.getBody().set(0,newPoint(5,14))

testIsSnakeEatGround3

nake.getBody().set(0,newPoint(5,2))

voidcodetest.ControllerTest.testIsSnakeEatGround1()

testIsSnakeEatGround()测试当蛇吃到上下边界时后蛇处于死亡状态

IsEatBody单元测试

testIsEatBody

snake.getBody().add(newPoint(5,1));

snake.getBody().add(newPoint(4,1));

snake.getBody().add(newPoint(4,2));

snake.getBody().add(newPoint(5,2));

voidcodetest.ControllerTest.testIsEatBody()

testIsEatBody()测试当蛇吃到自己后蛇处于死亡状态

GameUI单元测试

testGameStart

newGame()

0,初出茅庐!

voidcodetest.GameUITest.testGameStart()

KeyPressed单元测试

testKeyPressed

keyPress(KeyEvent.VK_UP)

firstPoint.x,firstPoint.y-1

keyPress(KeyEvent.VK_LEFT)

firstPoint.x-1,firstPoint.y-1

keyPress(KeyEvent.VK_DOWN)

firstPoint.x-1,firstPoint.y-1+1

keyPress(KeyEvent.VK_RIGHT)

firstPoint.x-1+1,firstPoint.y-1+1

voidcodetest.ControllerTest.testKeyPressed()

testKeyPressed()方法测试蛇的行走方向通过键盘方向键上下左右来操作

AfterEatFood()单元测试

testAfterEatFood()

NewPoint(5,1)

4、NewPoint(5,1),10

voidcodetest.ControllerTest.testAfterEatFood()

testAfterEatFood()测试

蛇(蓝色长条)吞吃一个食物(红色方格)后

身体长度增加一格,吃掉的食物消失并随机出现新食物

游戏者的分数增加10分

白盒测试缺陷报告:

关于测试缺陷优先级的说明:

– 

非常严重的缺陷,例如,软件的意外退出甚至操作系统崩溃,造成数据丢失。

  2 

较严重的缺陷,例如,软件的某个菜单不起作用或者产生错误的结果;

  3 

软件一般缺陷,例如,本地化软件的某些字符没有翻译或者翻译不准确;

  4 

软件界面的细微缺陷,例如,某个控件没有对齐,某个标点符号丢失等;

项目名称:

贪吃蛇

编号

001

002

003

004

005

006

版本号

Ver:

0.91Alpha

测试环境

Junit

Eclipse

测试阶段

(单元/集成)

单元

正确功能描述

当分数超过40,速度为250;

当速度达到300时,显示等级为“初出茅庐!

当蛇吃到上下边界(顶部和底部黑色长方格)以ControllerTest.testIsSnakeEatGround()及自己的身体后游戏结束ControllerTest.testIsEatBody()

蛇的行走方向通过键盘方向键上、下、左、右来操作。

ControllerTest.testkeyPressed()

游戏开始的时候,成绩为0,等级为“初出茅庐!

GameUITest.

testGameStart()

蛇(蓝色长条)吞吃一个食物(红点方格)后,身体长度增加一格,吃掉的食物消失并随机出现新食物(红点方格),游戏者的分数增加10分。

缺陷描述

1当分数超过200时,根据测试速度应该为100,而实际代码中为90

2当分数超过120时,根据测试速度应该为160,而实际代码为150

当速度为250时,根据测试显示为小试牛刀!

实际情况显示超越神了!

1在controller.snakeMoved方法中没有调用到snake.isEatBody()

2在Ground类中当如果蛇撞到墙时候返回值为false

缺陷类型

界面/算法/功能/自定义

算法

功能

致命/严重/一般/轻微

严重

致命

优先级

1/2/3/4

2

1

修改意见

1当分数超过200时,根据测试修改速度为100,

2当分数超过120时,根据测试修改速度为160

在scorePanel类中改为case250:

label4.setText("

);

break;

1.在Controller类中加上if(snake.isEatBody()){snake.die();

}这个方法,则蛇吃到自己时结束游戏

2.在Ground类中当如果蛇撞到墙时候返回值应该为returntrue;

测试人员

郭洋

提交日期

2011/6/8

2011/6/9

2011/6/10

测试工具

复审人

复审时间

复审结果描述

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1