[T.15] BattleByte:Beta 阶段测试报告

HelloWorld 2024-06-11 23:35:58
项目内容
这个作业属于那个课程软件工程
这个作业的要求在哪里第十五次团队作业
我在这个课程的目标是学习软件工程相关知识
这个作业在哪个具体方面帮助我实现目标进行Beta阶段的测试

BUG信息

BUG发现前/后端BUG原因是否已修复未修复原因
大逃杀模式匹配成功后无法立刻显示题目后端后端鉴权bug已修复
firefox浏览器无法显示番茄道具前端gif动图显示问题未修复未知原因
题目显示页导航栏会遮挡用户聊天内容前端界面内容分区未协调好已修复
题目显示页导航栏会遮挡代码选择前端界面内容分区未协调好已修复
规则介绍页无法通过鼠标滚轮向下滚动前端为了防止主页向下滑动导致的兼容性问题已修复
用户发送的广播消息其他用户无法标记为"已读"后端message.getReceiver()=-1,message.getReceiver() == JwtUtil.getUserId()无法成立已修复
oj提交代码时无法评测后端token.txt未正确配置最新token已修复
创建新房间时,新房间对应的游戏id值为null,无法开启游戏后端数据库中room的game_id为null,没有设置值,并未实现游戏和房间的联系已修复
房主无法给本房间添加题目后端判断当前用户是否为房主逻辑存在问题未修复正在修复ing,发布后会及时跟上
无法根据房间id获取房间已添加的问题后端Specified result type [com.battlebyte.battlebyte.entity.Question] did not match Query selection type [com.battlebyte.battlebyte.entity.GameQuestionRecord] - multiple selections: use Tuple or array已修复
用户无法通过发送ROOM_REQUEST类型的out请求离开当前房间websocketgameService和gameSocket存在衔接问题已修复

测试计划

  • 开发时测试
    • 后端开发时采用ApiFox本地部署模拟测试。
    • 前端开发时采用服务器进行测试。
  • 单元测试:后端使用junit对controller层http请求和websocket请求进行单元测试。
    • http请求使用MockMvc模拟请求并采用数据库回滚方式对好友请求相关,游戏相关,广播消息和私聊消息相关,oj评测相关,房间相关以及登录注册相关功能进行多次测试。
    • websocket请求本地建立客户端类,模拟多个客户端实现多线程模拟请求,测试单人模式匹配请求,局内聊天请求,番茄道具功能,大逃杀,房间内开启游戏以及提交答案等多人相关功能以及个人登录,光标移动等个人相关功能。
  • 集成测试:前后端一起进行功能上的集成测试。后端Controller和Service和数据库之间的自测通过junit进行。Websocket关于比赛过程中的自测通过建立客户端类模拟真实环境进行本地测试。
  • 内部功能测试:在发布前进行了一系列内部集体的功能测试。
  • 压力测试:利用apache bench进行测试。
  • 用户测试:通过玩家游玩来反馈bug。

    压力测试

    使用 apache bench 模拟 3500 路并发,15000个请求获取较大资源

img

请求平均等待时间34秒
服务器平均处理时间0.009秒

单元测试

前端测试

前端通过后端部署到服务器上进行本地测试,主要对以下功能进行了测试。
响应式设计测试
确保用户界面能够根据不同设备的屏幕大小和方向做出适当的调整,提供良好的用户体验。
页面内容测试:

  • 主页
    • 导航栏
    • 行星背景
    • 星星背景
    • 行星环背景
    • 单人模式指示
    • 大逃杀模式指示
    • 开始匹配按钮
    • 取消匹配按钮
    • 个人信息导航栏
  • 匹配动画
    • 已匹配时间
    • 星星背景
    • 星环背景
    • 匹配动画
  • 题目加载动画
    • 敲桌子手指动画
    • loading字样
  • 失败结算动画
    • 星星背景
    • 宇航员动画
  • 胜利结算动画
    • 奖杯动画
  • 题目显示页信息显示正确
    • 导航栏
    • 题目描述
    • 输入输出格式说明
    • 输入输出样例
    • 标签
    • 代码编写框
    • 编程语言
    • 背景显示主题
    • 字体大小及行高
    • 聊天框
    • 番茄道具框
    • 排名
    • 血量
    • 姓名
    • AC数量
  • 个人主页
    • 名称
    • 邮箱
    • 朋友
    • 头像
  • 规则介绍页
    • 使用技术栈
    • 相关功能

后端测试

后端使用junit对controller层http请求和websocket请求进行单元测试
http请求基本功能测试:

  • 用户注册
  • 用户登录
  • 用户信息查询
  • token验证
  • 好友功能
    • 发送添加好友申请
    • 同意好友申请
    • 删除好友
    • 好友列表查询
    • 邀请好友加入当前房间
    • 同意邀请进入房间
  • 游戏功能
    • 增加游戏
    • 删除游戏
    • 查询游戏记录
  • 游戏记录
    • 增加游戏记录
    • 查询游戏记录
    • 删除游戏记录
  • OJ功能
    • 登录OJ后端
    • 获取题目
    • 提交评测
    • 获取评测结果
  • 消息功能
    • 发送私聊消息
    • 发送广播消息
    • 收到消息
    • 将消息标为已读
  • 房间功能
    • 创建房间
    • 更新房间信息
    • 查找特定状态房间(未开始,比赛中)
    • 查找目标房间号的房间
    • 房主在房间内批量添加题目
    • 根据房间id获取该房间题目
    • 房主删除房间
  • 上传功能
    • 上传用户头像

websocket请求基本功能测试:

  • 登录测试
    • 账号登录
    • 同一账号多次登录
    • 同一账号退出再登录
    • 同一账号登录再退出
    • 同一账号匹配后进入游戏再登录
  • 匹配测试
    • 账号进入匹配
    • 账号取消匹配
    • 账号在匹配过程刷新/退出登录
  • 聊天测试
    • 账号发送聊天信息
    • 账号接收聊天信息
    • 账号断线后对手发送聊天信息
    • 账号重新登录后发送聊天信息
  • 表情测试
    • 账号发送道具
    • 账号接收道具
    • 账号断线后对手发送道具
    • 账号重新登录后发送道具
  • 刷新评测答案测试
    • 前端自动刷新接口
  • 光标移动测试
    • 光标移动
    • 接收光标
  • 比赛过程测试
    • 断线重连
    • 退出重新登录
    • 刷新
    • 投降测试
    • 刷新后投降测试
    • 对方退出游戏后投降测试
    • ac题目测试
    • 血量修改测试
  • 发送局内聊天消息
  • 获取评测结果
  • 好友功能
    • 实时通知
  • 房间
    • 实时通知邀请
    • 邀请进入房间
    • 拒绝加入房间
    • 进入房间
    • 离开房间
    • 开始本房间游戏
    • 获取本房间信息

对基于springboot架构的controller层http请求进行单元测试

img

img

img

img

以部分函数测试为例
gameController单元测试中getGame()正确返回信息

img

friendController单元测试getFriendApplications()正确返回信息

img

userController单元测试login()正确返回信息

img

ojController单元测试get()正确返回信息

img

ojController单元测试submit()正确返回信息

img

测试结果总结如下:

img

部分行覆盖率情况如下:

img

img

websocket测试情况如下:

img

img

img

用户信息用户情况
姓名用户A
身份中学老师
用户痛点需要一个能够激发学生学习兴趣、提升编程能力的教学工具
预期使用场景在中学的电脑课上,张三老师带领一群初中生介绍编程的基础知识,并希望通过一个有趣的编程实时对战游戏来帮助学生更好地理解这些概念。可以自定义题目。
实现该用户需求的功能
  1. 匹配动画:有趣的动画吸引玩家兴趣
  2. 比赛流程:提供题目描述和输入输出样例,让学生编写代码并提交,在线自动评测,并给出得分和排名。通过比赛的胜负来激发学生的竞争意识和学习动力。
  3. 实时交流功能:提供在线聊天系统,让学生们可以互相交流讨论问题,在学习过程中更好地合作和交流。
    |

老师可以在OJ后端进行创建题目,导入题目细节和数据点等信息。

img

还可以查看对所有题目进行管理

img

老师可以在课堂创建房间

img

同学们可以加入房间、查看好友和邀请好友

img

并进入比赛题目显示界面:

img

发送聊天信息增加趣味性:

img

扔爱心番茄:

img

主页:

img

匹配动画:

img

img

显示对方编程进度:

img

比赛过程有人AC了会公布第二道题目和血量扣除机制

测试矩阵

操作系统浏览器登录注册匹配提交答案修改个人信息
Windows10Google Chrome 112.0.5615.138正常正常正常正常正常
Windows10Microsoft Edge 112.0.1722.58正常正常正常正常正常
Windows11Google Chrome 112.0.5615.138正常正常正常正常正常
Windows11Microsoft Edge 112.0.1722.58正常正常正常正常正常
MACSafari 16.4正常正常正常正常正常
MACMicrosoft Edge 112.0.1722.58正常正常正常正常正常

出口条件

核心功能完成:确保所有计划中的核心功能已经实现并且基本可用。
兼容性和可访问性:在主流操作系统和浏览器平台上正常运行,并且符合基本的可访问性要求。在不同的屏幕大小下,ui显示正常,没有发生明显的扭曲或错位。
性能要求:匹配时间较短,题目评测时间较短,在大多数情况下保证用户等待时间较少
安全性保障:用户名设置长度范围,邮箱设置正则校验,头像文件大小上限,防止出现异常情况。

...全文
61 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

71

社区成员

发帖
与我相关
我的任务
社区描述
2024年北航敏捷软件工程
软件工程团队开发结对编程 高校 北京·海淀区
社区管理员
  • clotho67
  • Yeyanhan
  • HJin_Gwok
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧