FGS_OJ项目功能测试—管理端测试

测试用例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 登录页

1.1 功能测试

1.1.1 异常登录
  1. 账号与密码均为空 → 点击登录
    预期结果:弹窗“请输入账号或密码”,页面不跳转。
    实际结果
    在这里插入图片描述
    状态:符合预期

  2. 账号不为空、密码为空 → 点击登录
    预期结果:弹窗“请输入密码”,页面不跳转。
    实际结果
    在这里插入图片描述

    状态:符合预期

  3. 账号为空、密码不为空 → 点击登录
    预期结果:弹窗“请输入账号”,页面不跳转。
    实际结果
    在这里插入图片描述
    状态:符合预期

1.1.2 错误登录
  1. 账号密码均错误 → 点击登录
    预期结果:弹窗“用户不存在”,页面不跳转。
    实际结果
    在这里插入图片描述
    状态:通过

  2. 账号错误、密码正确 → 点击登录
    预期结果:弹窗“用户不存在”,保持当前页面。
    实际结果
    在这里插入图片描述

    状态:通过

  3. 账号正确、密码错误 → 点击登录
    预期结果:弹窗“账号或密码错误”,页面不跳转。
    实际结果
    在这里插入图片描述
    状态:通过

1.1.3 正常登录
  • 账号密码正确 → 点击登录
    预期结果:弹窗“登录成功”,跳转至用户管理页,缓存写入登录用户信息且数据无误。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

2. 用户管理页

2.1 搜索用户

2.1.1 按用户 ID
  1. 输入存在 ID → 搜索
    预期结果:列表仅展示该用户信息。
    实际结果
    在这里插入图片描述
    状态:通过

  2. 输入不存在 ID → 搜索
    预期结果:弹窗“您所查找的用户不存在”,列表清空。
    实际结果
    在这里插入图片描述
    状态:通过

  3. 输入特殊字符/汉字 ID → 搜索
    预期结果:弹窗“id格式错误(仅支持纯数字)”,列表不变。
    实际结果
    在这里插入图片描述

    状态:通过

  4. ID 与昵称框均为空 → 搜索
    预期结果:弹窗“请输入用户id或者用户昵称”。
    实际结果
    在这里插入图片描述
    状态:通过

  5. 输入 <4 位 ID → 搜索
    预期结果:弹窗“id长度不能小于4位”,列表不变。
    实际结果
    在这里插入图片描述
    状态:通过

  6. 输入 >19 位 ID → 搜索
    预期结果:弹窗“id长度不能超过19位”,列表不变。
    实际结果
    在这里插入图片描述

2.1.2 按昵称
  1. 输入完整存在昵称 → 搜索
    预期结果:列表仅展示该用户。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 输入昵称前缀关键字 → 搜索
    预期结果:列表展示所有符合条件用户信息。
    实际结果
    在这里插入图片描述

    状态:通过

  3. 输入昵称中缀关键字 → 搜索
    预期结果:列表展示所有符合条件用户信息。
    实际结果
    在这里插入图片描述
    状态:通过

  4. 输入昵称后缀关键字 → 搜索
    预期结果:列表展示所有符合条件用户信息。
    实际结果
    在这里插入图片描述
    状态:通过

  5. 输入不存在昵称 → 搜索
    预期结果:弹窗“您所查找的用户不存在”,列表清空。
    实际结果
    在这里插入图片描述

    状态:通过

  6. 英文昵称小写/大写/混合 → 搜索
    预期结果:均匹配对应用户信息。
    实际结果
    在这里插入图片描述
    状态:通过

2.2 重置搜索

  1. 点击重置按钮
    预期结果:搜索框清空,列表展示全部用户。
    实际结果
    在这里插入图片描述
    状态:通过

  2. 已展示全部用户再点击重置
    预期结果:页面无变化,无报错。
    实际结果
    在这里插入图片描述

    状态:通过

  3. 未提交搜索即点击重置
    预期结果:输入清空,列表展示全部用户,未触发搜索。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

  4. 连续多次点击重置
    预期结果:功能稳定,无卡顿、数据正确。
    实际结果
    在这里插入图片描述
    状态:通过

2.3 拉黑 / 解禁

  1. 点击“拉黑”标签
    预期结果:标签变红“拉黑”,数据库 status=0。
    实际结果
    在这里插入图片描述
    在这里插入图片描述

    状态:通过

  2. 点击“解禁”标签
    预期结果:标签变绿“正常”,数据库 status=1。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

2.4 业务影响

  1. 拉黑用户报名竞赛
    预期结果:页面不跳转,弹窗“您已被列入黑名单,请联系管理员”。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 拉黑用户登录
    预期结果:账号密码正确仍能登录并跳转题库页面。
    实际结果
    在这里插入图片描述
    状态:通过

  3. 拉黑用户在题库作答
    预期结果:页面不跳转,弹窗“您已被列入黑名单,请联系管理员”。
    实际结果
    在这里插入图片描述
    状态:完成

2.5 缓存一致性

  1. 执行拉黑后查询缓存
    预期结果:缓存 status=0。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 执行解禁后查询缓存
    预期结果:缓存 status=1。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:完成

2.6 管理员登出

  1. 点击退出→确认
    预期结果:跳转管理员登录页,缓存删除登录用户信息。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

  2. 点击退出→取消
    预期结果:页面不跳转,缓存保留用户信息。
    实际结果
    在这里插入图片描述
    在这里插入图片描述

    状态:通过

2.7 用户列表

  1. 非边界翻页
    预期结果:正常切换,数据无误。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

  2. 边界翻页按钮被禁用仍点击
    预期结果:按钮变红,点击无跳转、无报错。
    实际结果
    在这里插入图片描述
    状态:通过

  3. 快速连续切页
    预期结果:最终停留在最后一次操作页面,数据准确。
    实际结果
    在这里插入图片描述
    状态:通过

  4. 切换每页 5 条
    预期结果:展示条数与总页数正确。
    实际结果
    在这里插入图片描述
    切换后:
    在这里插入图片描述

    状态:通过

  5. 多次来回切换每页数量
    预期结果:最终展示符合最后设置,数据稳定。
    实际结果在这里插入图片描述
    在这里插入图片描述
    状态:通过

  6. 输入存在页码→回车
    预期结果:跳转对应页,数据正确。
    实际结果
    在这里插入图片描述

    状态:通过

  7. 输入不存在/负数/0 页码
    预期结果:停留当前页,数据正常。
    实际结果
    在这里插入图片描述

    状态:完成

  8. 输入当前页码→回车
    预期结果:页面不跳转。
    实际结果
    在这里插入图片描述

    状态:完成


3. 题目管理页

3.1 搜索题目

3.1.1 按难度搜索
  1. 选择简单/中等/困难→搜索
    预期结果:列表仅展示对应难度题目。
    实际结果
    简单:在这里插入图片描述
    中等:在这里插入图片描述
    困难:
    在这里插入图片描述

    状态:通过

  2. 选择难度后点击重置
    预期结果:列表展示全部题目。
    实际结果
    在这里插入图片描述
    在这里插入图片描述

    状态:未执行

3.1.2 按标题搜索
  1. 输入完整存在标题 → 搜索
    预期结果:列表仅展示该题目信息。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 输入标题前缀/中缀/后缀 → 搜索
    预期结果:列表展示所有匹配题目。
    实际结果
    前缀:
    在这里插入图片描述
    中缀:
    在这里插入图片描述
    后缀:
    在这里插入图片描述

    状态:通过

  3. 输入不存在标题 → 搜索
    预期结果:弹窗“您所查找的题目不存在”,列表清空。
    实际结果
    在这里插入图片描述 状态:通过

3.2 重置搜索

  1. 点击重置按钮
    预期结果:搜索框清空,列表展示全部题目。
    实际结果
    在这里插入图片描述
    在这里插入图片描述

    状态:通过

  2. 已展示全部题目仍点击重置
    预期结果:页面无变化,无报错。
    实际结果
    在这里插入图片描述
    状态:通过

  3. 搜索框输入未提交即点击重置
    预期结果:输入框清空,列表展示全部题目,未触发搜索。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

  4. 多次连续点击重置
    预期结果:功能正常,数据展示正常,无卡顿,无报错。
    实际结果
    在这里插入图片描述
    状态:通过

3.3 题目列表

  1. 翻页/首页/尾页操作
    预期结果:逻辑与用户列表一致,数据正确。
    实际结果
    首页:在这里插入图片描述
    翻页:
    在这里插入图片描述
    尾页:
    在这里插入图片描述
    状态:通过

  2. 快速连续切页
    预期结果:停留在最后一次操作页面,数据准确。
    实际结果
    在这里插入图片描述

    状态:通过

  3. 切换每页数量及多次切换
    预期结果:每页条数符合最终设置,数据稳定。
    实际结果
    在这里插入图片描述

    状态:完成

  4. 输入页码(存在/不存在/当前)
    预期结果:存在页码跳转;不存在则跳转至尾页。
    实际结果
    存在:
    在这里插入图片描述
    不存在:
    在这里插入图片描述
    在这里插入图片描述
    状态:完成

3.4 添加题目

  1. 填写所有必填→发布
    预期结果:提示“添加成功”,列表刷新,新题位于第一页,DB/ES/Redis 写入成功。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

  2. 标题留空→发布
    预期结果:前端提示“请添加题目标题”,不发送请求。
    实际结果
    在这里插入图片描述
    状态:通过

  3. 标题与已有题重复→发布
    预期结果:前端提示“该题目已存在”,数据库无变更。
    实际结果
    在这里插入图片描述
    用户端已删除:

    状态:通过

3.5 删除题目

  1. 删除存在题目并确认
    预期结果:提示删除成功,DB/Redis/ES 同步删除,用户/管理端列表不再显示。
    实际结果
    测试删除 “最短连续子数组之和”,
    在这里插入图片描述
    数据库已清除
    在这里插入图片描述
    Redis已删除(key不存在)
    在这里插入图片描述
    ES已删除:(total从15变为14)
    在这里插入图片描述
    用户端已经删除:
    在这里插入图片描述
    状态:完成

  2. 删除被竞赛引用题目
    预期结果:弹窗“该题目已经被竞赛引用,不可删除”。
    实际结果
    在这里插入图片描述

    状态:通过

3.6 编辑题目

  1. 修改题目内容→发布
    预期结果:提示“编辑成功”,返回列表可见最新信息,数据库/缓存同步。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    状态:通过

  2. 标题改为已存在题目→发布
    预期结果:提示“该题目已经存在”,数据库与缓存无变化。
    实际结果
    在这里插入图片描述
    编辑成功?。
    状态:不通过,竞赛编辑题目可重复 未做校验


4. 竞赛管理页

4.1 查询竞赛

4.1.1 按时间
  1. 选择有效时间区间→搜索
    预期结果:列表展示该时间段所有竞赛。
    实际结果
    在这里插入图片描述
    状态:通过
  2. 结束时间早于开始时间→搜索
    预期结果:组件校验阻止操作,不执行数据库查询。
    实际结果
    组件el-date-picker自动将较早的时间定位为开始时间

在这里插入图片描述 状态:通过

4.1.2 按标题
  1. 输入完整存在标题→搜索
    预期结果:竞赛列表展示对应竞赛信息。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 输入标题前/中/后缀→搜索
    预期结果:列表展示所有符合条件竞赛。
    实际结果
    前缀:
    在这里插入图片描述

    中缀:
    在这里插入图片描述

    后缀:
    在这里插入图片描述

    状态:通过

  3. 输入不存在标题→搜索
    预期结果:竞赛列表为空,弹窗提示 您所查找的用户不存在
    实际结果
    在这里插入图片描述

    状态:通过

  4. 标题时间都为空直接搜索
    预期结果:竞赛列表保持不变 弹窗提示 请输入要查询的竞赛标题或时间
    实际结果
    在这里插入图片描述
    状态:通过

4.2 重置竞赛

  • 标题与时间都有值→点击重置
    预期结果:条件搜索框清空,列表展示全部竞赛信息。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    状态:通过

4.3 发布 / 撤销发布竞赛

  1. 未到开赛时间竞赛→发布
    预期结果:状态tag变绿“已发布”,DB/缓存同步更新,用户端竞赛列表可见。
    实际结果
    发布大凯杯
    在这里插入图片描述
    数据库status字段更改
    在这里插入图片描述
    缓存存储
    在这里插入图片描述
    用户端竞赛列表可见:
    在这里插入图片描述

    状态:通过

  2. 已发布竞赛→撤销发布
    预期结果:状态tag变红“未发布”,DB/缓存同步更新,用户端不可见。
    实际结果
    在这里插入图片描述
    数据库字段更新
    在这里插入图片描述
    缓存数据同步清除
    在这里插入图片描述
    用户端竞赛列表不可见
    在这里插入图片描述
    状态:通过

4.4 删除竞赛

  • 未开赛可操作竞赛→删除并确认
    预期结果:提示删除成功,管理端竞赛列表不再显示,DB/缓存同步删除。
    实际结果
    测试删除”大凯杯“
    在这里插入图片描述
    管理端竞赛列表不展示在这里插入图片描述
    数据库同步刷新
    在这里插入图片描述
    缓存同步删除
    在这里插入图片描述

    状态:通过

4.5 竞赛列表

  1. 翻页功能
    预期结果:竞赛列表信息展示无误 ,最终数据对应当前页码
    实际结果
    翻页前:在这里插入图片描述
    翻页后:
    在这里插入图片描述

状态:通过
2. 快速连续切换
预期结果:停留在最后一次操作页面,数据准确。
实际结果:待执行
状态:未执行
3. 切换每页数量、多次切换
预期结果:最终页面竞赛信息与页面数据对应,数据稳定。
实际结果:待执行
状态:未执行
4. 指定页码切换功能
预期结果:存在页码跳转;不存在则跳转至最后一页。
实际结果
存在页码:
在这里插入图片描述
不存在页码:

在这里插入图片描述
状态:通过

4.6 添加竞赛

  1. 仅填写基本信息→发布
    预期结果:弹窗提示“竞赛当中不包含题目”,留在当前页;数据库仅exam表存信息,缓存无记录,状态未发布,客户端竞赛列表不可见,但管理端竞赛列表可见。
    实际结果
    在这里插入图片描述
    在这里插入图片描述
    数据库exam表存储信息
    在这里插入图片描述

缓存未存储中枢制造算法杯
在这里插入图片描述
管理端竞赛列表可见
在这里插入图片描述

客户端竞赛列表不可见:
在这里插入图片描述

状态:不通过 客户端竞赛列表可见 未发布无题目”空壳竞赛“
2. 填写所有必填→发布
预期结果:数据库与缓存同步更新,用户端竞赛列表出现该竞赛。
实际结果
在这里插入图片描述
发布该竞赛,管理端竞赛列表可见
在这里插入图片描述
用户端竞赛列表可见:
在这里插入图片描述
数据库表同步存储竞赛对应题目关系
在这里插入图片描述
缓存存储该竞赛数据
在这里插入图片描述
状态:通过

  1. 未填写任何信息→发布
    预期结果:弹窗“请先保存竞赛基本信息”。
    实际结果
    在这里插入图片描述

    状态:通过

  2. 基本信息未填写竞赛名称→保存
    预期结果:弹窗“请先填写竞赛名称”。
    实际结果
    在这里插入图片描述

    状态:通过

4.8 编辑竞赛

  1. 编辑未发布竞赛:修改标题/时间→发布
    预期结果:用户/管理端列表展示编辑后信息,DB/缓存同步更新。
    实际结果
    编辑前:
    在这里插入图片描述
    编辑后:
    在这里插入图片描述
    管理端竞赛列表信息:
    在这里插入图片描述
    用户端竞赛列表信息:
    在这里插入图片描述
    数据库信息:
    在这里插入图片描述
    缓存信息:
    在这里插入图片描述

    状态:通过

  2. 编辑未发布竞赛:标题与已发布竞赛重名→保存
    预期结果:弹窗“当前竞赛昵称已存在”,停留当前页,不跳转。
    实际结果
    在这里插入图片描述
    状态:通过

5. 缺陷列表

BUG-ADMIN-001

  • 严重程度: P2
  • 缺陷描述: 管理员编辑竞赛名称时,可将竞赛名称改为竞赛列表已存在的名称,造成两个昵称相同,但是具体内容包括关联题目不同的竞赛出现,造成用户会混淆竞赛内容,可能报错名、看错信息。数据统计易出错,相同名称可能导致数据合并或遗漏。
  • 复现步骤:
  1. 管理员切换至竞赛管理页面
  2. 管理员选中一条未发布竞赛并点击编辑按钮
  3. 修改该竞赛标题为已存在的竞赛标题
  4. 管理员保存竞赛基本信息
  • 状态: 已修复
  • 备注: 没有对编辑后竞赛各个参数进行严格校验

BUG-ADMIN-002

  • 严重程度: P0
  • 缺陷描述: 管理员新增竞赛 仅保存竞赛基本信息,但并无发布或进行题目关联后,在客户端竞赛列表可找到该竞赛,即未发布且无题目的空壳竞赛。 影响用户报名:用户看到列表中的竞赛,点击后发现无题目、无法参与,浪费时间和精力。降低用户信任:多次遇到空壳竞赛,会让用户质疑平台的专业性和内容质量,可能减少使用频率。
  • 复现步骤:
    1.管理员点击添加竞赛
    2.管理员填写竞赛基本信息——标题和时间
    3.管理员保存竞赛基本信息并返回列表
    4.切换用户端 刷新竞赛列表可见该竞赛
  • 状态: 已修复
  • 备注: 用户端考试列表查询(friend模块)没有过滤未发布的考试,导致管理员创建但未发布的考试仍会显示给用户
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值