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

上传人:b****8 文档编号:23874354 上传时间:2023-05-21 格式:DOCX 页数:41 大小:364.86KB
下载 相关 举报
双人俄罗斯方块软件测试课程报告内容.docx_第1页
第1页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第2页
第2页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第3页
第3页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第4页
第4页 / 共41页
双人俄罗斯方块软件测试课程报告内容.docx_第5页
第5页 / 共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,且map[i][j]矩阵有两行全为1

1

20

Style=1,a=0,且map[i][j]矩阵当i<13时三行全为1

2

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

当前位置:首页 > 高中教育 > 语文

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

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