
双人俄罗斯方块软件测试课程报告内容.doc
41页双人俄罗斯方块项目测试报告--课程报告课程名称:软件测试课程类别:专业主干课开课学期:秋季学期编写单位:信息工程学院项目测试人:编 写 人:指引教师:提交班级:提交时间:/1/2目 录1 项目目的和任务 11.1 项目背景 11.2 项目测试目的 11.3 项目测试任务 11.4 任务分工 12 项目测试筹划 23 项目测试大纲 24 白盒测试 25 黑盒测试 256 测试成果分析 286.1 白盒测试成果分析 286.2 黑盒测试成果分析 296.3 成果分析 297 项目总结 291 项目目的和任务本课程实践的目的和意义在于通过实际测试一种Java应用程序,使学生更深刻地领略软件测试的工作原理、测试用例的设计、测试工具及框架的使用措施,使学生比较全面地、系统地掌握软件测试的基本概念和基本知识,为将来从事软件测试的研究、应用奠定坚实的基本本项目来源于中国地质大学(北京)信息工程学院软件测试课程实践,测试周期为5天本项目的测试代码来自中国地质大学(北京)信息工程学院***开发团队研发,可实现双人俄罗斯方块的小游戏系统将分为2部分:双人对战部分及情侣合伙部分1.1 项目背景双人俄罗斯方块项目是***开发团队在中国地质大学(北京)信息工程学院JAVA程序设计的课程实践项目,基于Java语言开发。
此项目在老式的俄罗斯方块游戏的基本上进行了改善,实现了双人对战以及情侣合伙的功能1.2 项目测试目的项目目的是保证最后交给顾客的产品的功能符合顾客的需求,把尽量多的问题在产品交给顾客之前发现并改正最后的测试方案要达到如下规定:1. 保证产品完毕了它所承诺或发布的功能2. 保证产品满足性能和效率的规定3. 保证产品是强健的和适应顾客环境的本测试重要根据顾客需求阐明书和软件需求规格阐明书以及相应的文档进行系统测试,涉及功能测试、顾客界面测试、业务逻辑部分的单元测试1.3 项目测试任务1. 采用黑盒测试的措施进行功能测试及顾客界面测试2. 采用白盒测试的措施对重要业务逻辑部分进行测试1.4 任务分工系统设计阶段的任务分工如表1-1所示表1-1 系统设计阶段任务分工成员组内角色组内分工组长完毕游戏主控模块措施的白盒测试,所有测试成果分析,完毕文档撰写,答辩成员完毕形状构件类的白盒测试成员完毕功能测试、顾客界面测试部分的黑盒测试,制作PPT2 项目测试筹划本项目测试流程如表2所示表 1-2 系统开发流程表时间工作安排具体内容12月23日-12月25日黑盒测试完毕功能测试、顾客界面测试部分的黑盒测试12月25日-12月28日白盒测试完毕游戏主界面类、四个形状构件类的白盒测试12月29日-1月1日完毕文档、制作答辩PPT完毕文档、制作答辩PPT、准备答辩3 项目测试大纲1. 白盒测试部分采用基本途径测试措施,当所有的基本途径都被覆盖,即语句覆盖率达到100%时停止测试。
2. 黑盒测试覆盖软件的所有功能及顾客界面,当测试完所有功能及顾客界面后停止测试4 白盒测试本项目的业务逻辑部分都在俄罗斯方块的七个形状类以及主控模块中,故将白盒测试的测试范畴拟定在形状构建类以及主控模块中n 形状构件类形状构件类的业务逻辑部分十分相近,故从中抽取了ShapeI及ShapeLeftL作为典型进行测试,以期在最短的时间内迅速找出错误l ShapeI类1.reset函数:图 1 reset函数流程图图 2 reset函数流图基本途径测试: 途径分析: 环形复杂度:2基本途径集:{途径1:(1->2->3->4->6)途径2:(1->2->3->5->6)} 测试用例:输入条件覆盖途径预期成果state=01smallblock[0].m=4,smallblock[0].n=0smallblock[1].m=5,smallblock[1].n=0smallblock[2].m=6,smallblock[2].n=0smallblock[3].m=7,smallblock[3].n=0state=12smallblock[0].m=5, smallblock[0].n=0smallblock[1].m=5, smallblock[1].n=1smallblock[2].m=5, smallblock[2].n=2smallblock[3].m=5, smallblock[3].n=32.turn函数:图 3 turn函数流程图图 4 turn函数流图基本途径测试: 途径分析: 环形复杂度:2基本途径集:{途径1:(1->2->3->4->7)途径2:(1->2->5->6->7)} 测试用例:输入条件覆盖途径预期成果state=0smallblock[0].m=2, smallblock[0].n=3smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=4, smallblock[2].n=3smallblock[3].m=5, smallblock[3].n=31state=1smallblock[0].m=3, smallblock[0].n=2smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=3, smallblock[2].n=4smallblock[3].m=3, smallblock[3].n=5state=1smallblock[0].m=3, smallblock[0].n=2smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=3, smallblock[2].n=4smallblock[3].m=3, smallblock[3].n=52state=0smallblock[0].m=2, smallblock[0].n=3smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=4, smallblock[2].n=3smallblock[3].m=5, smallblock[3].n=33.canTurn函数:图 5 canTurn函数流程图图 6 canTurn函数流图基本途径测试: 途径分析: 环形复杂度: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=0map[3][2]=1smallblock[0].m=2, smallblock[0].n=3smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=4, smallblock[2].n=3smallblock[3].m=5, smallblock[3].n=31canTurn()=false state=0map[3][2]=0smallblock[0].m=2, smallblock[0].n=3smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=4, smallblock[2].n=3smallblock[3].m=5, smallblock[3].n=32canTurn()=truestate=1map[2][3]=1smallblock[0].m=3, smallblock[0].n=2smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=3, smallblock[2].n=4smallblock[3].m=3, smallblock[3].n=53canTurn()=falsestate=1map[2][3]=0smallblock[0].m=3, smallblock[0].n=2smallblock[1].m=3, smallblock[1].n=3smallblock[2].m=3, smallblock[2].n=4smallblock[3].m=3, smallblock[3].n=54canTurn()=true4.canMoveLeft函数:图 7 canMoveLeft函数流程图图 8 canMoveLeft函数流图基本途径测试: 途径分析: 环形复杂度: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使得小方块左边有障碍1FALSEState=0,m=14,设立map[][]使得小方块左边无障碍2TRUEState=1,m=2,设立map[][]使得小方块左边有障碍3FALSEState=1,m=2,设立map[][]使得小方块左边无障碍4TRUEState=1,m=17,设立map[16][0]=1使得小方块左边有障碍5FALSEState=1,m=17,设立map[][]使得小方块左边无障碍6TRUE l shapeLeftL类1.reset函数: 图 9 reset函数流程图图 10 reset函数流图 基本途径测试: 途径分析: 环形复杂度: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=01smallblock[0].m=6, smallblock[0].n=0smallblock[1].m=6, smallblock[1].n=1smallblock[2].m=6, smallblock[2].n=2smallblock[3].m=7, smallblock[3].n=2state=02smallblock[0].m=7, smallblock[0].n=1smallblock[1].m=6, s。












