团队作业五-测试与发布(Alpha)
所属课程 | 软件工程2024 |
---|---|
作业要求 | 团队作业5——测试与发布(Alpha版本) |
作业目标 | 对项目进行测试,并发布Alpha版本 |
0. 前言
对于测试与发布,并非只是测试人员的工作,一个合理的测试流程是需要多个流程的参与人员共同完成的。
对于本项目而言,单元测试需要拆分进游戏本体的开发过程当中,实时更新测试情况。
在完成设计后,根据游戏功能的区分,分功能进行后续测试,如下:
黑白盒测试可以通过游戏本体部分以及网络功能成员交换负责部分进行测试的方式实现,为了实现,需要两个部分写出游戏说明书,详见#1.2.3 黑盒测试
1. 测试计划
1.1 测试背景
- 五子棋是一种简单的休闲游戏,主要面向不需要高强度消耗、高耗时的网络用户
- 对于本项目,需要测试的基础内容包括
- 保证单机游戏正常运行
- 保证联机游戏的通道建立正常
- 在游戏中对话的功能
1.2 测试方法
1.2.1 单元测试
单元测试,由各部分实现者实时进行并汇总了,筛选出无法解决的bug后,评估该单元是否有价值继续投入时间,是否需要删除功能
1.2.2 集成测试
集成测试,主要验证组件之间的接口和交互是否正确,在编写应用界面的同时进行测试
1.2.3 黑盒测试
黑盒测试,要求游戏本体部分以及网络功能成员交换负责部分进行测试。
为了实现,需要两个部分分别写出游戏说明书,对方根据说明/根据游戏规则进行测试,最后将出现的bug进行捕获
说明书如下:
文件"QTwork2"和"Solution"分别是可在qt creator中运行的五子棋服务端源代码和五子棋客户端源代码
可直接在window运行的五子棋客户端和服务端的exe文件分别在对应的release文件里面
服务端默认监听本地所有IP地址端口9999,只需要用客户端连接即可。
联机版连接操作:
打开服务端,会自动开启监听,不需要手动监听。点击“显示主机信息”,里面显示的即为本地IP地址,其中有英文有数字为IPV6,有数字和小数点为IPV4(没记错的话),复制第一个
打开客户端,在IP地址栏填粘贴,端口填写9999,点击连接服务器,显示连接成功即完成连接。
联机版开始游戏:
在连接两个联机版客户端之后,两个客户端都点击"准备”按钮后游戏自动开始,客户端按照文本框提示即可开始下棋。
游戏过程中可以认输
联机版文字发送:
发送按钮旁边输入相应文本,点击发送,即可发送信息给对手。
1.2.4 白盒测试
白盒测试,测试者需要检查程序的内部结构,从程序的逻辑着手,得出测试数据。
1.3. 质量标准
(1)测试标准
- 黑盒测试结果与预期要一致
- 白盒测试的代码覆盖率应达到 95% 以上
- 多次模拟测试五子棋的特殊情况,如提前判断输赢、斜向五子获胜等
(2)验收标准(出口条件)
- 无导致游戏崩溃的bug
- 用户游玩时,避免出现游戏错误
- 软件能在预期的平台上运行
1.4 测试项目
测试将根据拆分出来的模块进行,模块如下:
- 游戏本体模块
- 网络功能模块
- 整合功能模块
注:整合功能模块实际上是属于集成测试的一部分
测试模块 | 测试项 | 检查点 |
---|---|---|
游戏本体 | 落子正确性 | 落子位置与点击位置是否相符 |
横竖向胜利判断 | 每次下棋后,判断是否在横竖向达到同色五子 | |
斜向胜利判断 | 每次下棋后,判断是否在斜向达到同色五子 | |
网络功能 | 建立多端连接 | 进入联网模式后,通过输入ip地址与端口号,使端口之间建立连接 |
发送下棋信息 | 建立连接成功后,通过连接通道保证两端实时更新下棋信息 | |
发送文字信息 | 建立连接成功后,双方发送文字,要及时同步 | |
整合功能 | 交换棋手 | 每次下棋后是否正确交换了位置 |
悔棋操作 | 点击悔棋按钮后,能否回到上一次落子 | |
和棋 | 点击悔棋按钮后,能否发送和棋 | |
创建综合平台 | 创建导向两个功能部分的菜单界面 | |
结束棋局 | 每完成一次棋局,系统不会直接结束 |
2. 测试报告
2.1 测试平台
平台:Windows系统,直接打开.exe可运行文件
2.2 测试结果
2.2.1 通过测试项目
测试模块 | 测试项 | 检查点 | 测试方式 | 预期结果 |
---|---|---|---|---|
游戏本体 | 落子正确性 | 落子位置与点击位置是否相符 | 白盒/单元 | 相符 |
横竖向胜利判断 | 每次下棋后,判断是否在横竖向达到同色五子 | 白盒/单元/黑盒 | 判断正确 | |
斜向胜利判断 | 每次下棋后,判断是否在斜向达到同色五子 | 白盒/单元/黑盒 | 判断正确 | |
网络功能 | 建立多端连接 | 进入联网模式后,通过输入ip地址与端口号,使端口之间建立连接 | 白盒/单元 | 连接成功 |
发送下棋信息 | 建立连接成功后,通过连接通道保证两端实时更新下棋信息 | 白盒/单元 | 实时更新成功 | |
发送文字信息 | 建立连接成功后,双方发送文字,要及时同步 | 白盒 | 实时更新成功 | |
整合功能 | 交换棋手 | 每次下棋后是否正确交换了位置 | 白盒/单元 | 交换成功 |
悔棋操作 | 点击悔棋按钮后,能否回到上一次落子 | 白盒/单元/黑盒 | 悔棋成功 | |
和棋 | 点击悔棋按钮后,能否发送和棋 | 白盒/单元/黑盒 | 和棋成功 | |
创建综合平台 | 创建导向两个功能部分的菜单界面 | 单元 | 创建成功 | |
结束棋局 | 每完成一次棋局,系统不会直接结束 | 黑盒 | 成功 |
2.2.2 Bug
Bug所属 | Bug描述 | 是否解决 | 修复方法/未解决原因 |
---|---|---|---|
单机 | 在下完全部棋子之后没有判和功能 | 解决 | 实时监测 |
联机 | 在进行游戏中时,若一方退出游戏,会造成另一方游戏崩溃 | 解决 | 添加检查error函数,若一方断开连接,另一方直接判胜 |
只能够提供2人进行游戏 | 未解决 | 多人的游戏涉及到多线程设计,且需要重写大量函数,由于时间不充沛并且难度较大,因此暂不准备解决 |
2.2.3 集成测试结果
- 游戏本体功能整合正常,未出现整合后功能冲突
- 网络功能实现成功,但存在多线程相关问题,当前版本暂不对该问题处理,详情请查看:Alpha版本测试报告
- 在第三个或以上的人连接服务器时,会造成多方面崩溃,例如会夺取进行回合下棋权、混乱游戏黑白方、破坏游戏胜负(指乱投降)。
- 整体功能整合成功,包括菜单界面建立完成,详见:Alpha版本测试报告
3. Alpha版本测试报告
Alpha版本发布说明书
3.1 在最终测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个?
- 共3个Bug
- 单机:1个bug
- 联机:2个bug
3.2 修复的Bug
在下完全部棋子之后没有判和功能 | 解决 | 实时监测 |
---|---|---|
在进行游戏中时,若一方退出游戏,会造成另一方游戏崩溃 | 解决 | 添加检查error函数,若一方断开连接,另一方直接判胜 |
3.3 没有能力修复,将来也不打算修复
只能够提供2人进行游戏 | 未解决 | 多人的游戏涉及到多线程设计,且需要重写大量函数,由于时间不充沛并且难度较大,因此暂不准备解决 |
---|
3.4 场景测试(scenario testing)
- 你预期不同的用户会怎样使用你的软件?
- 使用电脑下载客户端
- 他们有什么需求和目标?
- 需要短时间快速放松_
- 需求游戏的同时进行社交
- 不希望繁杂的页面设计
- 测试矩阵(test matrix)
测试模块 | 测试项 | 检查点 | 测试方式 | 预期结果 |
---|---|---|---|---|
游戏本体 | 落子正确性 | 落子位置与点击位置是否相符 | 白盒/单元 | 相符 |
横竖向胜利判断 | 每次下棋后,判断是否在横竖向达到同色五子 | 白盒/单元/黑盒 | 判断正确 | |
斜向胜利判断 | 每次下棋后,判断是否在斜向达到同色五子 | 白盒/单元/黑盒 | 判断正确 | |
网络功能 | 建立多端连接 | 进入联网模式后,通过输入ip地址与端口号,使端口之间建立连接 | 白盒/单元 | 连接成功 |
发送下棋信息 | 建立连接成功后,通过连接通道保证两端实时更新下棋信息 | 白盒/单元 | 实时更新成功 | |
发送文字信息 | 建立连接成功后,双方发送文字,要及时同步 | 白盒 | 实时更新成功 | |
整合功能 | 交换棋手 | 每次下棋后是否正确交换了位置 | 白盒/单元 | 交换成功 |
悔棋操作 | 点击悔棋按钮后,能否回到上一次落子 | 白盒/单元/黑盒 | 悔棋成功 | |
和棋 | 点击悔棋按钮后,能否发送和棋 | 白盒/单元/黑盒 | 和棋成功 | |
创建综合平台 | 创建导向两个功能部分的菜单界面 | 单元 | 创建成功 | |
结束棋局 | 每完成一次棋局,系统不会直接结束 | 黑盒 | 成功 |
- 出口条件(exit criteria)
- 无导致游戏崩溃的bug
- 用户游玩时,避免出现游戏错误
- 软件能在预期的平台上运行