双人俄罗斯方块软件测试课程报告内容.docx

上传人:b****2 文档编号:17737909 上传时间:2023-08-03 格式:DOCX 页数:41 大小:364.53KB
下载 相关 举报
双人俄罗斯方块软件测试课程报告内容.docx_第1页
第1页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第2页
第2页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第3页
第3页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第4页
第4页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第5页
第5页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第6页
第6页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第7页
第7页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第8页
第8页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第9页
第9页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第10页
第10页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第11页
第11页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第12页
第12页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第13页
第13页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第14页
第14页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第15页
第15页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第16页
第16页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第17页
第17页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第18页
第18页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第19页
第19页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

双人俄罗斯方块软件测试课程报告内容.docx

《双人俄罗斯方块软件测试课程报告内容.docx》由会员分享,可在线阅读,更多相关《双人俄罗斯方块软件测试课程报告内容.docx(41页珍藏版)》请在冰点文库上搜索。

双人俄罗斯方块软件测试课程报告内容.docx

双人俄罗斯方块软件测试课程报告内容

 

双人俄罗斯方块项目测试报告

--课程报告

 

课程名称:

软件测试

课程类别:

专业主干课

开课学期:

2016秋季学期

 

编写单位:

信息工程学院

项目测试人:

编写人:

指导教师:

提交班级:

提交时间:

2017/1/2

 

 

1项目目的和任务

本课程实践的目的和意义在于通过实际测试一个Java应用程序,使学生更深刻地领会软件测试的工作原理、测试用例的设计、测试工具及框架的使用方法,使学生比较全面地、系统地掌握软件测试的基本概念和基本知识,为将来从事软件测试的研究、应用奠定坚实的基础。

本项目来源于中国地质大学(北京)信息工程学院软件测试课程实践,测试周期为5天。

本项目的测试代码来自中国地质大学(北京)信息工程学院***开发团队研发,可实现双人俄罗斯方块的小游戏。

系统将分为2部分:

双人对战部分及情侣合作部分。

1.1项目背景

双人俄罗斯方块项目是***开发团队在中国地质大学(北京)信息工程学院JAVA程序设计的课程实践项目,基于Java语言开发。

此项目在传统的俄罗斯方块游戏的基础上进行了改进,实现了双人对战以及情侣合作的功能。

1.2项目测试目标

项目目标是确保最终交给用户的产品的功能符合用户的需求,把尽可能多的问题在产品交给用户之前发现并改正。

最终的测试方案要达到如下要求:

1.确保产品完成了它所承诺或公布的功能。

2.确保产品满足性能和效率的要求

3.确保产品是健壮的和适应用户环境的

本测试主要根据用户需求说明书和软件需求规格说明书以及相应的文档进行系统测试,包括功能测试、用户界面测试、业务逻辑部分的单元测试。

1.3项目测试任务

1.采用黑盒测试的方法进行功能测试及用户界面测试。

2.采用白盒测试的方法对重要业务逻辑部分进行测试

1.4任务分工

系统设计阶段的任务分工如表1-1所示

表1-1系统设计阶段任务分工

组员

组内角色

组内分工

组长

完成游戏主控模块方法的白盒测试,所有测试结果分析,完成文档撰写,答辩

组员

完成形状构件类的白盒测试

组员

完成功能测试、用户界面测试部分的黑盒测试,制作PPT

2

项目测试计划

本项目测试流程如表2所示

表1-2系统开发流程表

时间

工作安排

具体内容

12月23日-12月25日

黑盒测试

完成功能测试、用户界面测试部分的黑盒测试

12月25日-12月28日

白盒测试

完成游戏主界面类、四个形状构件类的白盒测试

12月29日-1月1日

完成文档、制作答辩PPT

完成文档、制作答辩PPT、准备答辩

3项目测试大纲

1.白盒测试部分采用基本路径测试方法,当所有的基本路径都被覆盖,即语句覆盖率达到100%时停止测试。

2.黑盒测试覆盖软件的所有功能及用户界面,当测试完所有功能及用户界面后停止测试。

4白盒测试

本项目的业务逻辑部分都在俄罗斯方块的七个形状类以及主控模块中,故将白盒测试的测试范围确定在形状构建类以及主控模块中。

⏹形状构件类

形状构件类的业务逻辑部分十分相近,故从中抽取了ShapeI及ShapeLeftL作为典型进行测试,以期在最短的时间内迅速找出错误。

●ShapeI类

1.reset函数:

图1reset函数流程图

图2reset函数流图

基本路径测试:

路径分析:

环形复杂度:

2

基本路径集:

{路径1:

(1->2->3->4->6)路径2:

(1->2->3->5->6)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

1

smallblock[0].m=4,smallblock[0].n=0

smallblock[1].m=5,smallblock[1].n=0

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=7,smallblock[3].n=0

state=1

2

smallblock[0].m=5,smallblock[0].n=0

smallblock[1].m=5,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=2

smallblock[3].m=5,smallblock[3].n=3

2.turn函数:

图3turn函数流程图

图4turn函数流图

基本路径测试:

路径分析:

环形复杂度:

2

基本路径集:

{路径1:

(1->2->3->4->7)路径2:

(1->2->5->6->7)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

smallblock[0].m=2,smallblock[0].n=3

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=4,smallblock[2].n=3

smallblock[3].m=5,smallblock[3].n=3

1

state=1

smallblock[0].m=3,smallblock[0].n=2

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=3,smallblock[2].n=4

smallblock[3].m=3,smallblock[3].n=5

state=1

smallblock[0].m=3,smallblock[0].n=2

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=3,smallblock[2].n=4

smallblock[3].m=3,smallblock[3].n=5

2

state=0

smallblock[0].m=2,smallblock[0].n=3

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=4,smallblock[2].n=3

smallblock[3].m=5,smallblock[3].n=3

3.canTurn函数:

图5canTurn函数流程图

图6canTurn函数流图

基本路径测试:

路径分析:

环形复杂度:

4

基本路径集:

{路径1:

(1->2->3->5->9)

路径2:

(1->2->3->6->9)

路径3:

(1->2->4->7->9)

路径4:

(1->2->4->8->9)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

map[3][2]=1

smallblock[0].m=2,smallblock[0].n=3

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=4,smallblock[2].n=3

smallblock[3].m=5,smallblock[3].n=3

1

canTurn()=false

state=0

map[3][2]=0

smallblock[0].m=2,smallblock[0].n=3

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=4,smallblock[2].n=3

smallblock[3].m=5,smallblock[3].n=3

2

canTurn()=true

state=1

map[2][3]=1

smallblock[0].m=3,smallblock[0].n=2

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=3,smallblock[2].n=4

smallblock[3].m=3,smallblock[3].n=5

3

canTurn()=false

state=1

map[2][3]=0

smallblock[0].m=3,smallblock[0].n=2

smallblock[1].m=3,smallblock[1].n=3

smallblock[2].m=3,smallblock[2].n=4

smallblock[3].m=3,smallblock[3].n=5

4

canTurn()=true

4.canMoveLeft函数:

图7canMoveLeft函数流程图

图8canMoveLeft函数流图

基本路径测试:

路径分析:

环形复杂度:

6

基本路径集:

{路径1:

(1->2->4->12)

路径2:

(1->2->5->12)

路径3:

(1->3->6->8->12)

路径4:

(1->3->6->9->12)

路径5:

(1->3->7->10->12)

路径4:

(1->3->7->11->12)}

测试用例:

输入条件

覆盖路径

预期结果

State=0,m=11,设置map[10][0]=1使得小方块左边有障碍

1

FALSE

State=0,m=14,设置map[][]使得小方块左边无障碍

2

TRUE

State=1,m=2,设置map[][]使得小方块左边有障碍

3

FALSE

State=1,m=2,设置map[][]使得小方块左边无障碍

4

TRUE

State=1,m=17,设置map[16][0]=1使得小方块左边有障碍

5

FALSE

State=1,m=17,设置map[][]使得小方块左边无障碍

6

TRUE

shapeLeftL类

1.reset函数:

图9reset函数流程图

图10reset函数流图

基本路径测试:

路径分析:

环形复杂度:

4

基本路径集:

{路径1:

(1->2->3->4->10)

路径2:

(1->2->3->5->6->10)

路径3:

(1->2->3->5->7->8->10)

路径4:

(1->2->3->5->7->9->10)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

1

smallblock[0].m=6,smallblock[0].n=0

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=2

smallblock[3].m=7,smallblock[3].n=2

state=0

2

smallblock[0].m=7,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=1

smallblock[3].m=5,smallblock[3].n=2

state=2

3

smallblock[0].m=6,smallblock[0].n=2

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=5,smallblock[3].n=0

state=3

4

smallblock[0].m=5,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=7,smallblock[2].n=1

smallblock[3].m=7,smallblock[3].n=0

2.turn函数:

图11turn函数流程图

图12turn函数流图

基本路径测试:

路径分析:

环形复杂度:

4

基本路径集:

{路径1:

(1->2->3->5->13)

路径2:

(1->2->4->6->8->13)

路径3:

(1->2->4->7->9->11->13)

路径4:

(1->2->4->7->10->12->13)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

smallblock[0].m=6,smallblock[0].n=0

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=2

smallblock[3].m=7,smallblock[3].n=2

1

state=1

smallblock[0].m=7,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=1

smallblock[3].m=5,smallblock[3].n=2

state=1

smallblock[0].m=7,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=1

smallblock[3].m=5,smallblock[3].n=2

2

state=2

smallblock[0].m=6,smallblock[0].n=2

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=5,smallblock[3].n=0

state=2

smallblock[0].m=6,smallblock[0].n=2

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=5,smallblock[3].n=0

3

state=3

smallblock[0].m=5,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=7,smallblock[2].n=1

smallblock[3].m=7,smallblock[3].n=0

state=3

smallblock[0].m=5,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=7,smallblock[2].n=1

smallblock[3].m=7,smallblock[3].n=0

4

state=0

smallblock[0].m=6,smallblock[0].n=0

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=2

smallblock[3].m=7,smallblock[3].n=2

3.canTurn函数:

图13canTurn函数流程图

图14canTurn函数流图

基本路径测试:

路径分析:

环形复杂度:

8

基本路径集:

{路径1:

(1->2->3->5->17)

路径2:

(1->2->3->6->17)

路径3:

(1->2->4->7->9->17)

路径4:

(1->2->4->7->10->17)

路径5:

(1->2->4->8->11->13->17)

路径6:

(1->2->4->8->11->14->17)

路径7:

(1->2->4->8->12->15->17)

路径8:

(1->2->4->8->12->16->17)}

测试用例:

输入条件

覆盖路径

预期结果

state=0

map[7][1]=1

smallblock[0].m=6,smallblock[0].n=0

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=2

smallblock[3].m=7,smallblock[3].n=2

1

canTurn()=false

state=0

map[7][1]=0

smallblock[0].m=6,smallblock[0].n=0

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=2

smallblock[3].m=7,smallblock[3].n=2

2

canTurn()=true

state=1

map[6][2]=1

smallblock[0].m=7,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=1

smallblock[3].m=5,smallblock[3].n=2

3

canTurn()=false

state=1

map[6][2]=0

smallblock[0].m=7,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=5,smallblock[2].n=1

smallblock[3].m=5,smallblock[3].n=2

4

canTurn()=true

state=2

map[5][1]=1

smallblock[0].m=6,smallblock[0].n=2

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=5,smallblock[3].n=0

5

canTurn()=false

state=2

map[5][1]=0

smallblock[0].m=6,smallblock[0].n=2

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=6,smallblock[2].n=0

smallblock[3].m=5,smallblock[3].n=0

6

canTurn()=true

state=3

map[6][0]=1

smallblock[0].m=5,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=7,smallblock[2].n=1

smallblock[3].m=7,smallblock[3].n=0

7

canTurn()=false

state=3

map[6][0]=0

smallblock[0].m=5,smallblock[0].n=1

smallblock[1].m=6,smallblock[1].n=1

smallblock[2].m=7,smallblock[2].n=1

smallblock[3].m=7,smallblock[3].n=0

8

canTurn()=true

⏹主控模块

1.keyPressed函数

图15Keypressed函数流程图

图16Keypressed函数流图

基本路径1:

1-2-15

基本路径2:

1-3-15

基本路径3:

1-3-9-15

基本路径4:

1-4-15

基本路径5:

1-4-9-15

基本路径6:

1-5-15

基本路径7:

1-5-11-15

基本路径8:

1-6-15

基本路径9:

1-6-12-15

基本路径10:

1-7-15

基本路径11:

1-7-13-15

基本路径12:

1-8-15

基本路径13:

1-8-14-15

测试用例:

输入

覆盖路径

预期结果

VK_DOWN

1

Interval=100

VK_W

2

dqfk[0]横纵坐标变化

VK_W且将map[][]设置为旋转后会碰到障碍物

3

dqfk[0]横纵坐标无变化

VK_UP

4

dqfk[1]横纵坐标变化

VK_UP且将map[][]设置为旋转后会碰到障碍物

5

dqfk[1]横纵坐标无变化

VK_A

6

dqfk[0]横坐标m-1

VK_A且将map[][]设置为左移后会碰到障碍物

7

dqfk[0]横坐标无变化

VK_LEFT

8

dqfk[1]横坐标m-1

VK_LEFT且将map[][]设置为左移后会碰到障碍物

9

dqfk[1]横坐标无变化

VK_D

10

dqfk[0]横坐标m+1

VK_D且将map[][]设置为右移后会碰到障碍物

11

dqfk[0]横坐标无变化

VK_RIGHT

12

dqfk[1]横坐标m+1

VK_RIGHT且将map[][]设置为右移后会碰到障碍物

13

dqfk[1]横坐标无变化

2.CanVanish函数

图17canVanish函数流程图

图18canVanish函数流图

基本路径1:

1-2-4-5-4-7-8

基本路径2:

1-2-4-5-4-5-6-8

基本路径3:

1-3-4-5-4-7-8

基本路径4:

1-3-4-5-4-5-6-8

测试用例:

输入条件

覆盖路径

预期结果

row=1,a=0,且map[][row]表示的此行没有空格

1

true

row=1,a=0,且map[][row]表示的此行含空格

2

flase

row=1,a!

=1,且map[][row]表示的此行没有空格

3

true

row=1,a!

=1,且map[][row]表示的此行没有空格

4

false

3.

vanish函数

此函数的复杂部分在于消行的部分有3个for循环,故把循环部分及主要逻辑部分分离进行考察。

图19vanish函数流程总图

图20vanish函数流程图分图1

图21vanish函数流程三层循环分图2

对三层循环的流程图的具体分析,若采用基本路径法,有大部分路径无法覆盖,采用循环测试,对于for语句这种固定循环次数的控制流程无法在外部改变for循环的执行过程,故将此部分三层循环抽象成总业务流程的一个顺序模块。

图22vanish函数主要逻辑流图

基本路径1:

1-2-6-7

基本路径2:

1-3-4-6-7

基本路径3:

1-3-5-6-7

测试用例:

输入条件

覆盖路径

预期结果

style=0

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2