「MOSS - 30」MOSS队:Beta阶段测试报告
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023年北航敏捷软件工程 |
这个作业的要求在哪里 | 团队项目-Beta阶段测试报告 |
我们在这个课程的目标是 | 熟悉敏捷开发的方法论,并通过实际开发产品进行实践。 |
这个作业在哪个具体方面帮助我实现目标 | 通过Beta阶段测试发现bug,提高软件质量,熟悉敏捷开发的实践。 |
Author: MOSS队
Date: 2023.06.03
Part 1 测试过程中发现Bug
前端问题
问题描述 | 提出者 |
---|---|
热门问题无法通过点击跳转 | 王小鸽 |
找回密码,点击发送验证码后没有发送成功与否的提示 | 王小鸽 |
找回密码中的发送验证码是否可以加一个计时冷却功能?或者给它也加一个图形验证码 | 王小鸽 |
找回密码点击确认后,若修改成功不会自动关闭窗口/给任何提示 | 王小鸽 |
搜索栏似乎无法选择标签 | 王小鸽 |
编辑问题后不刷新问题 | 史泽宇 |
热门问题中的科目章节。。。不太好看,可以考虑不显示或者只显示科目但完整显示 | 王小鸽 |
标签关联多余一个时,显示由bug,点开见详情 | 王小鸽 |
标签添加后没有展示 | 王小鸽 |
后端问题
问题描述 | 提出者 |
---|---|
邮箱验证似乎出了问题,返回验证码不稳定 | 王小鸽 |
复审者认为原来的回答不正确,在否决后会成为新的回答者,但新的回答者list里没有这个人 | 王小鸽 |
Part 2 场景测试
学生
用户信息 | 用户情况 |
---|---|
姓名 | 学生A |
身份 | 大一学生希望参加“士疑解惑”活动解决自己在课程中的问题,提高自己的学习成绩,更好的考出理想的成绩 |
用户痛点 | 1.没有渠道提出课业上的问题,并获得及时准确的回答,只能线下见面提问。 2.无法看到其它同学的答疑内容。 3.提问给自己带来心理负担,希望可以匿名提问。 4.参加活动加入了各种各样的微信群,没有办法有效组织信息,干扰了自己的生活 |
预期使用场景 | 参加“士疑解惑”活动,发布自己的问题,和辅导师进行交流互动,如果满意,同意辅导师的解答,如果不满意可以拒绝辅导师的回答,系统重新分配辅导师进行解答直到学生满意为止。学生可以填写自己的个人信息主页,包括头像等信息,进行个性化展示,也可以方便的查看自己提出的问题以及收藏的问题。此外,可以方便的进行问题的检索,查看对自己有用的问题,从中获取启发。 |
实现该用户需求的功能 | 设计个人信息页面,展示头像,提出的问题,收藏的问题等信息。设计问答交互页面,以时间线的方式与辅导师进行交互,可以选择关闭问题,同意辅导师解答,拒绝辅导师解答等按钮更改问题状态,也可以点赞和收藏自己喜欢的其他人提出的问题。设计检索页面,支持多关键字检索相关问题,从其他人的问题中获得启发。设计发布问题页面,该页面可以选择匿名提问,选择问题所属的章节和科目。 |
场景一(个人信息定制,问题列表查看)
- 学生A可以在个人信息页面定制自己的信息,设置头像修改密码等。
- 学生A可以在个人信息页面方便地查看自己的收藏的问题,提出的问题
场景二(检索)
检索页面支持多关键字检索,选择检索字段,排序方式,科目章节可以快速检索问题。从其他人的相关问题中获得启发。
场景三(提问与解答)
- 发布问题,选择问题的所属科目章节,填写题目信息,可以上传本地图片,同时可以选择匿名回答减轻自己的心理负担。
- 和辅导师进行交互
学生可以随时关闭问题以及编辑问题,修改问题信息,在页面内可以看到当前认领的辅导师与复审者。
辅导师认领后可以在对话框内和辅导师进行交流,对话流以时间线的形式整理
交流结束后,根据对辅导师回答满意与否选择拒绝辅导师回答或者同意辅导师回答,同意辅导师回答,问题将变为有效问题,拒绝回答,系统将自动重新分配辅导师进行回答。
同意后问题变为有效问题
Beta阶段新增:更优越的md文本编辑器
我们对该md编辑器进行了测试,其列表,代码高亮,公式等新增功能均显示正常。
这是文本的对应展示效果
草稿的保存与复现功能
beta阶段我们加入了草稿的保存与复现功能。我们对其进行了测试,点击保存草稿时,数据可以成功保存,恢复草稿时,功能正常,可以正确回复草稿的各项内容,测试正常。
Beta阶段新增:通知查询
点击我的通知,可以查看管理员发布的全局通知。
当一个问题有新的辅导师回复时,系统也会自动向提问者发出通知提醒。
Beta阶段新增:热门问题和用户
搜索栏右侧,会显示当前最热门的问题和最活跃的用户
Beta阶段新增:往届问题搜索
点击切换到以往学期问题,可以对往届问题进行搜索
切换后搜索栏会新增一个学年选项
从而可以实现对历史学年问题的搜索
Beta阶段新增:优化搜索
在alpha阶段,必须选择科目和若干个章节后才能进行搜索。
在beta阶段:
-
若不选择学年,则默认对全部学年进行搜索
-
若选择学年而不选择科目,则默认对该学年下所有科目进行搜索
-
若选择学年和科目而不选择章节,则默认对该科目下所有章节进行搜索
此外,我们新增了模糊搜索功能。
例如,搜索关键字为数学分析中值定理,后端会对关键字进行分词操作,返回包含关键词数学分析/定理的所有问题
Beta阶段新增:找回密码
用户A忘记了自己的密码,在登录界面点击找回密码,输入自己的学号,点击发送验证码
在邮箱中收到验证码
输入验证码,设置新密码
辅导师
用户信息 | 用户情况 |
---|---|
姓名 | 50W |
身份 | 大二计算机学院学生。擅长编程,希望通过“士疑解惑”活动帮助学弟学妹,并获得志愿时长。 |
用户痛点 | 1. 答疑在微信群展开,模糊了工作与生活的边界 2. 信息组织低效,回答与问题间经常隔了很多其他提问的内容,回答过的问题未被收集整理,导致经常出现重复提问 3. 部分答疑通过微信私聊进行,无法被统计到工作量中 |
预期使用场景 | 在自己空闲的时间,登录“士问士答”平台,搜索还未被解决的问题,认领并回答。在个人主页可以看到所有自己认领的问题,便于即使给提问者反馈。若遇到较为常见的问题,可以搜索查看是否有辅导师已经回答过类似的问题,减少重复劳动。所有回答都会被后台自动统计,并计入工作量中。 |
实现该用户需求的功能 | 1. 搭建“士问士答”平台,将“士疑解惑”活动从微信中剥离出来,与生活解耦。解决用户痛点1 2. 以issue的形式组织问题,构建完备的issue转移机制管理问题,通过科目章节的形式整理问题,解决用户痛点2 3. 在数据库中有序存储所有回答,便于一键导出生成工作量。 |
- 这一版本的新功能和特性
- 该版本中实现了哪些新的功能和特性?请图文并茂地进行描述。
- 这些功能和特性分别能解决什么样的问题?请对问题所对应的各个需求进行描述。
- 这些功能和特性分别对应怎样的应用场景?请以“讲故事”的方式对应用场景进行描述。
场景一
学生A:提问
辅导师A:回答
学生A:认可
辅导师B:复审通过
辅导师A在有空的时候登录平台,选择自己负责的科目,搜索有没有待回答的问题
在认领回答后,可以在问题内进行回答。支持上传图片回答。图片上传用户友好,直接粘贴图片即可自动上传图床。
提问者认可了辅导师的回答,该问题转为待复审状态。转为待复审状态后,辅导师将无法再在该问题下发表新的内容。
辅导师B认领了该问题的复审。
从回答者名单中,可以看见该问题的历任回答者
辅导师B认为该问题有效、回答正确,将该问题判为有效问题。
场景二
场景二
学生A:提问
辅导师A:回答
学生A:认可
辅导师B:复审不通过
辅导师B:更正回答
学生A:认可
辅导师A:复审通过
辅导师A搜索发现了一个有趣的问题,点进去看了后认为确实是自己可以回答的,于是在问题详细视图内,认领了该问题
给出了错误的回答,学生未发现该答案有误被误导,认可了该回答
辅导师B在问题详细视图内,认领复审了该问题
认为该回答有误,重新认领了该问题
重新以回答者的身份给出了正确的回答,得到了学生认可
当一个问题下的消息过多时,会自动进行分页处理,便于读者阅读
辅导师A认领复审了该问题,并判断为有效
辅导师A觉得这个问题和回答很有价值,点击了点赞收藏
Beta阶段新增:关联问题
辅导师可以给一个问题添加其相关问题
当关联问题较多时,可以实现自动分页
点击放大镜可以进入相关问题了解详细信息
点击垃圾桶按钮可以删除对该问题的关联
Beta阶段新增:修改问题标签
点击标签管理可以增删该问题的标签
管理员
用户信息 | 用户情况 |
---|---|
姓名 | 辅导员小C |
身份 | 作为士谔书院半脱产辅导员,小C在上学期担任士疑解惑活动的组织者。 |
用户痛点 | 1.需要管理多个微信答疑群聊,负担较重。 |
2.无法方便管理学生和辅导师的信息。 | |
预期使用场景 | 在我们的平台上,小C可以通过表格为学生和辅导师批量注册账号,无需建多个群聊,还可以通过表格管理辅导师负责的学科。此外,小C能够根据学号、姓名、身份(学生/辅导师)等信息筛选所有用户,查看信息。对于违反规则的用户,管理员有权冻结账号。 |
实现该用户需求的功能 | 设计创建用户功能,支持创建单个用户和用表格批量导入用户。显示所有用户列表和用户信息,支持按照学号/姓名/身份对用户进行筛选,支持冻结用户。能够创建章节科目,并且通过表格导入辅导师负责的学科。 |
场景一(创建新用户)
- 管理员小C可以创建单个用户,也能用表格批量导入用户。
- 管理员小C可以输入用户信息,然后创建单个用户。
- 管理员小C可以导入表格,解析表格信息,然后批量导入用户。
场景二(用户信息检索)
管理员小C可以通过用户列表看到所有注册的用户,还可以通过指定学号/姓名/身份来筛选用户。
点击冻结账号,即可冻结某个用户,同时也能够解冻用户。
场景三(章节科目管理)
管理员小C能够查看现有学年下的科目,并且能够新建科目
管理员小C能够查看每个科目所包含的章节,可以添加或者删除章节
此外,管理员小C能够通过表格导入辅导师所负责的科目
Beta阶段新增:通知发布
进入通知发布界面,填写通知标题和通知内容。
点击发送后,显示发送成功,登录其他账号查收消息。
Beta阶段新增:标签管理
进入标签管理页面,可以看到现有的标签。
点击添加标签,输入新的标签名。
点击创建,可以看到新的标签创建成功。
点击标签右侧的“x”号,删除标签。
Beta阶段新增:统计图
选择需要的图表类型、统计量、起始时间、终止时间,点击“显示”,可以看到统计量的图表。
折线图:
饼图:
Beta阶段新增:志愿时长统计
选择起始时间、终止时间、志愿时长/有效问题、志愿时长/回答问题、志愿时长/复审问题,点击”查询“看到所有应得志愿时长不为0的用户的志愿时长信息。
点击”导出”下载excel。
Part 3 压力测试
在部署好服务器后,我们使用jmeter进行了压力测试。beta阶段我们新增了对通知功能中较为耗时的api的测试。
测试接口的配置如下图。对于每种接口请求,我们在1秒内并行发送150次,循环5次结束。
我们主要测试了如下接口:
- UserLogin:用户登录接口,查询给定用户的学号并校验密码是否正确。
- GetUserInfo:获取用户信息接口,查询用户表,返回已登录用户信息。
- GetAskIssue:查询用户提问的所有issue,并列出详细信息。
- SearchIssue:根据关键字、标签等信息搜索对应的issue。
- GetAllNotification(beta阶段新增接口)用户获取当前通知列表中的所有通知。
测试截图样例如下:
测试结果如下:
测试接口 | 平均延时(ms) | 延时标准差(ms) | 错误率 | 吞吐量(p/sec) |
---|---|---|---|---|
UserLogin | 176 | 197 | 0.00% | 730.4 |
GetUserInfo | 279 | 346 | 0.00% | 683.1 |
GetAskIssue | 195 | 201 | 0.00% | 324.5 |
SearchIssue | 278 | 371 | 0.00% | 639.9 |
GetAllNotification | 254 | 267 | 0.00% | 542.2 |
分析:在并发量为150的情形下,请求的正确性可以得到有效保证。在beta阶段的测试中,瓶颈主要集中在查询MySQL数据库时对磁盘的访问。
由于beta阶段进行了ngx性能调优,根据系统资源和并发连接数动态调整worker进程的数量,因此接口平均延时与alpha阶段压力测试相比有明显的降低。
Part 4 测试矩阵
操作系统 | 浏览器 | 登录 | 注册 | 问题搜索 | 问题发布 | 辅导师回答与复审 | 点赞和收藏问题 | 修改个人信息 |
---|---|---|---|---|---|---|---|---|
Windows10 | Google Chrome 112.0.5615.138 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Windows10 | Microsoft Edge 112.0.1722.58 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Ubuntu20.04 | Firefox 110.0.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
MAC | Google Chrome 112.0.5615.137 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
MAC | Microsoft Edge 112.0.1722.58 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
MAC | Firefox 101.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
MAC | Safari 16.4 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
Part 5 出口条件
前端
要求 | 完成情况 | 完成度(满分10分) |
---|---|---|
完善学生端版本 | 新增了issue模糊搜索,热门问题榜单,保存草稿等功能。完善忘记密码邮件确认功能。最终成果满足活动现有需求。 | 10 |
完善辅导师端版本 | 新增关联issue设置。实现了一对一问答和有效的复审机制。最终成果满足活动现有需求。 | 9 |
完善管理员端版本 | 新增学年设置,统计量导出,发布通知等重要功能。最终成果满足活动现有需求。 | 10 |
UI简洁美观 | 对UI进行了部分调整。颜色协调性有所改进,布局调整也较合理。 | 8 |
前端的验证和提示 | 添加了大部分前端验证和提示。如用户登录验证码,确认弹窗等。同时,还有忘记密码功能的加入,具有邮箱验证系统。 | 9 |
兼容性 | 在mac、windows、ubuntu等环境的chrome、edge浏览器的最近大部分版本都有所兼容。 | 10 |
后端
要求 | 完成情况 | 完成度(满分10分) |
---|---|---|
数据库设计 | 数据增删改查正常,数据库设计合理 | 10 |
权限验证处理 | 严格限制不同等级的用户的权限,用户不能自主更改权限进行hack操作 | 10 |
支持学生端相关操作 | 支持对issue的模糊搜索等关键操作,并通过压力测试 | 9 |
支持辅导师端相关操作 | 支持对issue认领、复审、关联等关键操作 | 9 |
支持管理员端相关操作 | 支持注册账户,冻结账户,发布通知,学年设置等关键操作 | 9 |