【CodingNoBorder - 07】无际软工队 - 求职岛:ALPHA 阶段测试报告

无际软工队 - 求职岛:ALPHA 阶段测试报告

项目内容
这个作业属于哪个课程2022年北航敏捷软件工程
这个作业的要求在哪里团队项目-Alpha阶段测试报告
我们在这个课程的目标是熟悉敏捷开发的方法论,并通过实际开发产品进行实践。
这个作业在哪个具体方面帮助我实现目标熟悉敏捷开发的方法论:学习测试报告的编写。
通过实际开发产品进行实践:基于我们完成的项目进行测试和分析。

Author: 无际软工队

Date: 2022.05.08

Bug

前端

鉴权与注册

bug说明修复方式修复结果
用户在未注册的情况下仍然能够访问到信息页面(内容为空)将鉴权与跳转逻辑封装为中间件,实现全局自动鉴权跳转成功
用户在注册时无法收到邮箱验证码,系北航邮箱过滤策略所致更换系统验证码邮箱为校园邮箱成功
用户跳转到注册页面时页面反应迟滞添加页面跳转动画来弥补迟滞跳转的用户体验成功
用户在注册时退出,再次进入后可以访问信息页面(内容为空)前端中间件对后端返回的用户注册信息进行检查,如果用户基础信息为空时也跳转到注册页面成功
用户在登录后个人头像为空在注册时采用微信小程序接口请求用户头像并传递给后端永久存储在COS中成功
用户使用非指定邮箱仍然能够注册后跳转前端对注册接口的返回结果进行检查,对非指定邮箱注册的行为进行处理成功

用户个人页

bug说明修复方式修复结果
用户无法编辑用户信息前端通过识别用户所点击的对象,来识别是否编辑成功
用户在编辑已有的简历信息时,相关条目未被保留,需要手动重新添加前端将用户的信息存储在viewmodel中,当进入编辑页面时识别用户点击的信息条目id并将相应信息装载至当前页面对象中成功
用户编辑到一半不保存就退出后,简历信息仍然显示为被修改后的状态前端在退出编辑时重新刷新viewmodel使其与后端保持同步成功
用户输入非法的简历信息,前端没有准确识别,在提交简历时显示上传异常前端对每一条用户输入添加规则并展示相应提示信息成功
用户在删除自己的简历条目仍然能看到该条目,并对该条目进行编辑前端在退出删除页面时后对当前viewmodel进行刷新成功
用户输入条目信息过长时引发排版崩坏前端对条目展示块添加自适应设置成功
用户在选择奖项类型时,初始情况下条目内容为空,缺乏正确的引导前端将条目内容提前进行适量填写,对选择类条目添加默认选项“-请选择-”成功
日期选择组件无法正确获得符合格式规范的日期换装微信小程序自带的日期选择器成功
个人消息始终保持未读状态,即使在浏览后也如此前端对查看消息的行为绑定一个事件,将相应消息id发送给后端进行状态更新成功

广场页

bug说明修复方式修复结果
点击关注无法正确切换为已关注的团队列表修复了关注按钮绑定的状态变量名成功
点击活动Banner无法触发正确的活动搜索行为为活动Banner添加了触发搜索更新的行为成功
主页向下滑动距离有限,无法触发微信小程序的下滑更新事件将dock栏从absolute改为relative形式成功
从个人简历页切换到广场页有明显的闪烁感增加一定时长的纯白背景作为切换过渡成功

需求详情页与团队详情页

bug说明修复方式修复结果
在需求详情页无法看到发布者头像和对应团队的logo删除了开发阶段用占位的纯色方块,该方块遮盖了理应展现的头像和logo成功
点击收藏该团队后,无法在已收藏列表中看到该团队回到已收藏页面时触发一次相应的viewmodel刷新事件成功
向需求投递简历后,无法在详情页面看到相应的通知消息前端在刷新的同时向后端查询是否有新的相关消息成功
点击团队logo无法正确跳转至团队详情页面修复了合并导致的跳转链接错误问题成功

待解决问题

bug说明修复方式修复结果
页面之间切换较为僵硬,因为当前采用单个页面内嵌套多个组件而非拆分为多个页面,因此无法使用微信小程序自带的切换动画将组件拆分为多个不同页面,再重新修改dock栏,使其能够在保持美观且可自定义样式的情况下在多个页面之间保持一致性与连续性待修复

后端

bug说明修复方式修复结果
外键字段未设置on_delete参数无法运行添加on_delete参数成功
分布式开发的数据模型之间连接错误阅读所有模型定义,处理遇到的所有异常,使其能通过编译成功
在应当使用OneToOneField的地方错误使用ForeignKey修改为OneToOneField成功
uid若采用单调递增的数字容易被爬虫爬取用户信息将uid生成方式修改为随机的字符串成功
后端项目不能方便地同时兼具服务器部署和本地调试能力增加若干特判使其识别各种环境,并按照期望正常运行成功
CI 中 PyLint缺少依赖无法测试添加PyYAML依赖成功
错将wx_openid协作openid,导致字段访问错误未通过测试改为正确的wx_openid成功
微信鉴权服务器返回的json中在成功时不包含errcode导致程序出现KeyError特判若不出现errcode则认为返回成功成功
后端开发对框架使用不熟练导致无用代码过多不利于维护由熟练框架的同学进行重构修改成功
广播消息忘记考虑到已收消息的bug改为筛选所有以自己的id为终点或者以广播地址为终点的消息成功
User的管理界面密码设置界面错误增加ModelAdmin成功
项目组成员应该尽可以为招聘者将member的类型改为Employer的外键成功
新消息创建时所需数据格式错误修复新消息创建时所需数据格式成功
数据库全文搜索搜两遍效率低合并数据库配置成功
模型的关联数据查询时多次访问了数据库导致效率低下利用prefetch优化成功
在PostgreSQL上做测试时主键递增id可能不从1开始导致测试不通过不再做第一个用户id为1的假设,重写编写test成功
不能处理对一个Job重复申请的情况添加新的联合Union约束成功
由于Username可能为null,这与Django内置的一个__str__函数产生冲突重写__str__函数使其一定返回str成功

场景测试

用户信息用户情况
姓名LLLeo
身份计算机学院学生,大三下,还没找好暑期实习,计划寻找校内实习,但没有想好要找的实习类型。
用户痛点1. 各大微信群内发布的实习招聘信息过于杂乱,种类太少。
2. 现在有很多求职平台,但是缺少一个汇总校内实习信息的平台,寻找寻找校内实习时无从下手。
3. 可能有多个合适的实习岗位,缺少一个工具对合适的实习信息进行收藏。
4. 缺乏简历编写经历,希望寻找高效的方式投递自己的申请。
预期使用场景通过「求职岛」高效浏览和搜索现有校内实习岗位,并对适合的实习岗位进行收藏,找到合适的实习岗位后,通过给定的模板进行简历的编写后进行投递,之后等待申请结果。
实现该用户需求的功能1. 汇总校内实习平台的信息,并支持搜索功能,解决痛点 1 和痛点 2。
2. 支持对实习岗位的收藏和一键查询,解决痛点 3。
3. 支持编写简历并一键投递简历,可以随时查看投递状态和申请结果,解决痛点 4。
用户信息用户情况
姓名LLJeo
身份计算机学院学生,大二下,计划寻找校内实习,确定了一些想进的实验室,但还没有确定去哪个实习岗位。
用户痛点1. 实验室主页分散,甚至主页上可能缺少有效的实习信息,浏览和检索上耗费大量时间。
2. 无法快速获取每个实验室对应实习岗位的最新信息。
3. 无法对不同实习岗位进行高效对比。
预期使用场景通过「求职岛」关注对应的实验室团队,高效浏览和搜索关注实验室所推出的实验岗位,比较不同岗位之间的优劣,选定合适的岗位后,通过给定的模板进行简历的编写后进行投递,之后等待申请结果。
实现该用户需求的功能1. 汇总校内各大实验室的信息,并支持搜索功能,避免在实验室主页上低效检索,解决痛点 1。
2. 支持关注团队,可以一键搜索和查询所关注团队所推出的需求岗位,解决痛点 2 和痛点 3。
用户信息用户情况
姓名Chernoff
身份计算机学院教授,课题比较多,有招聘实习生的需求。
用户痛点1. 所在实验室主页较为古老,翻新成本过高。
2. 缺乏发布招聘实习生需求的途径。
预期使用场景通过「求职岛」创建实验室团队,并发布实习生招聘需求,查看投递学生的简历并进行反馈,实现实习生的高效招聘。
实现该用户需求的功能1. 招聘需求详情页会详细展示实习生岗位的具体信息,团队详情页会详细介绍实验室团队的信息,画面简洁精美,可以很好地吸引相关学生,解决痛点 1。
2. 每个发布的招聘需求都会在广场页上被展示,有效拓宽了发布招聘需求的途径,解决痛点 2。

压力测试

在使用 nginx+uwsgi 部署好服务器之后,我们使用了 JMeter 进行压力测试,并按照以下步骤进行分段测试。测试过程均采用高并发利用全部服务器资源。

  1. echo: 最简单的一个API,将 request 中的 params 转换成 reponse 中的 body,不访问数据库,用于测试纯网络连接性能作为参考。
  2. authenticate: 单纯用于验证token是否可用的API,会查询数据库获得User信息以及部分加密,所有其他API的参考基准
  3. retrieve info: 列出已登录用户的个人信息的API。
  4. list offers: 列出某已登录用户所能查看的所有Offer的详细信息,最耗费时间的API之一。(测试数据库中一共有113个Offer和226个OfferJob,每个查询会列出其中的10个)
  5. retrieve offer: 列出一个用户指定的Offer的详细信息,与list offer进行比较。
  6. search offers: 用于测试Postgresql上的jieba插件的分词和全文搜索性能,这是本项目功能最复杂最耗费时间的API。(测试数据为113个Offer和226个OfferJob,里面的内容填充有意义的中文文本)

测试截图示例

在这里插入图片描述

测试结果

测试项目平均延时 ms延时标准差 ms错误率 %吞吐量 packet/sec
echo282530.00215
authenticate285320.23223
retrieve info4421320.00127
list offers423937481.7311.6
retrieve offer10076560.0058.2
search offers379033920.0010.3

改进措施

测试结果表明在列表和搜索性能上,基本满足了我们的需要。通过分析,serach offers和list offers性能差距不大,说明在数据库层面搜索没有什么消耗,而主要在于Django对数据的处理的时间或拉取相关数据上。故对该API进行改进,利用prefetch_relate和select_relate方法来提前拉取关联数据避免多次查询数据库,改进后结果如下

测试项目平均延时 ms延时标准差 ms错误率 %吞吐量 packet/sec
retrieve offer10345960.0058
list offers458027221.7312.9

虽然有改善但是改善并不大,说明性能瓶颈在Python代码执行上,无更多优化空间。

单元测试

我们利用Django的Test框架对所有的可测的API编写了测试用例,每个API至少包含了一个测试正例保证功能可用性,并针对登录注册鉴权等等API编写了若干恶意输入和错误输入确保系统的安全性和鲁棒性。

在这里插入图片描述

同时我们还将自动测试部署到CI,每次合并到开发主分支时会自动进行单元测试与生成覆盖率报告,持续保持代码的正确性。我们的代码覆盖率达到了93%,仅一些无法自动测试的API(如微信认证登录和管理员界面)没有编写测试用例。

在这里插入图片描述

通过单元测试,我们在进行大规模重构时可以自动的发现大量的由此牵连导致的错误并迅速将其修复,极大地降低了思维负担。

出口条件

前端

要求完成情况下一步
实现求职者前端的最小可用版本目前发布的版本,覆盖了求职者简历编辑、需求查看与申请、组织关注、需求收藏等基本需求。完成功能更为丰满的求职者小程序端平台。
UI 美观UI 风格一致,较为美观。进一步丰富 UI 元素。
UX 合理用户操作流畅,较为符合直觉。进一步优化 UX 体验。
前端的验证和提示添加了对绝大多数输入的前端验证和提示。对新产生的功能组件接续添加前端验证支持。
跨端兼容性小程序前端在 iOS 端和安卓端皆运行良好。扩展对桌面平台小程序端的支持。

后端

要求完成情况下一步
数据库设计前端能够正常访问,并支持正常的数据修改继续完善设计数据库
权限验证限制不同类型用户的权限,用户不能通过自主发送请求突破权限限制继续完善权限处理系统
支持邮箱验证和邀请码双途径注册限制恶意注册账号来攻击平台,减少恶意用户继续完善注册方式
全文检索支持对于offer的全文检索,并通过压力测试继续改善相关性能和检索体验

测试矩阵

终端设备操作系统版本邮箱验证登录首页显示完善简历搜索招聘信息招聘详情显示投递简历关注与收藏查看申请
安卓HarmonyOS 2.0.0正常正常正常正常正常正常正常正常正常
iPhoneiOS 15.4.1正常正常正常正常正常正常正常正常正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65125.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

❀YOLOv5学习❀图像标注工具LabelImg的下载,配置和使用。

LabelImg是图形图像注释工具。它是用Python编写的,并将Qt用于其图形界面。批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。此外,它还支持YOLO格式。下载这个,主要是为了YOLOv5中,做自己的数据集&…

brat事件标注平台使用教程

事件图谱首先涉及到的是事件标注,我采用的是brat事件标注平台,该平台使用的是Linux系统,因为我的电脑是windows系统, 将brat安装在了linux虚拟机(Ubuntu)上。 一.下载与安装 1.下载brat 进入brat官网brat…

OpenAI 成近期顶流团队?如何使用 OpenAI 和 Node.js 构建 AI 图像生成器?

摘要: 12月7号,知名人工智能研究机构 Open AI 在Youtub上发布视频介绍使用OpenAI 和 DALL-E 模型创建一个网络应用程序,该应用程序将根据输入的文本从头开始生成图像。https://www.youtube.com/watch?vfU4o_BKaUZE 前言💖 大家好&#xff0…

AI 自动写代码插件 Copilot(副驾驶员)

AI 自动写代码插件 Copilot 提示:Copilot单词直译过来就是副驾驶员的意思。 介绍:本质上就是基于GitHub开源的亿级别的代码,训练AI模型,自动生成代码。 就是数据量(GitHub的数据量就很大!)能够决定你AI模型精度的上…

软件测试中的AI——运用AI编写测试用例

文章目录 一、现状二、测试技术可结合AI的几个方向三、尝试使用AI编写测试用例(实验过程)1、AI联系上下文的能力弱2、回答的内容类似于能在网上搜索到的内容3、需要有一个明确的指令4、输出内容有限5、无法想象到需求描述之外的内容 四、总结&#xff1a…

AI热度降温?揭秘加德纳技术成熟度曲线与AI发展阶段

一文解决你所有对 AI 的焦虑 近期,我们发现ChatGPT的热度似乎不如前几个月。许多人尝试了这个技术,觉得它非常强大,但似乎与自己的日常生活和工作关系不大,因此逐渐失去了兴趣。 然而,这实际上是技术发展的正常周期&…

王炸赚钱组合!!ChatGPT + AI大模型

“ 你近期有体验过哪些大模型产品呢? 你有使用大模型API做过一些实际开发吗? 在你日常开发中,可以与大模型相关应用结合来完成工作吗? ” 从去年底开始,大模型的发展趋势就非常迅猛,这也代表着人工智能进入…

ChatGPT + AI大模型 = 王炸!!!

“ 你近期有体验过哪些大模型产品呢? 你有使用大模型API做过一些实际开发吗? 在你日常开发中,可以与大模型相关应用结合来完成工作吗? ” 从去年底开始,大模型的发展趋势就非常迅猛,这也代表着人工智能进入…

ChatGPT+低代码,好用到飞起?

ChatGPT 凭借短短 2 个月,月活用户突破 1 亿,成为史上用户增长速度最快的消费级应用程序。ChatGPT 的爆火,在全球范围内掀起了一场关于 AI 技术革命的狂潮,AIGC 也迅速成为科技圈最火赛道。 更有国际咨询机构预测,203…

信用卡兴趣人群洞察报告.pdf

男性用户对信用卡的关注度显著高于女性 信用卡兴趣人群年龄集中在24-40岁,与主流消费人群相吻合。41岁以上人群信用卡关注度明显滑落 深广信用卡关注度最高,占据前四名知州、西安等中西部城市占据前十名中半数名额 信用卡兴趣人群高度集中于iPhone手机,其次分别为三星、魅族…

关于程序员的调查报告

最近Stack Overflow发布一份开发者调查报告,内容涵盖了开发人员最喜欢的技术到工作偏好等等各种问题。下面小编就带大家一起来看一看。 NO.1 最常用的的编程语言: 我们发现Python的使用度今年超过了Java,Python的势头有点猛啊!&am…

c语言进行数据统计分析的研究报告,统计分析报告范文

统计分析报告范文 大家都知道,统计分析的写作是为了制作统计分析文章。在统计部门,统计分析文章则称为统计分析报告。下面是一篇统计分析报告范文,欢迎阅读! 统计分析报告范文 【目录】 一.引言 二.研究目的 三.数据分析 I.对能源生产及构成的…

论文阅读报告

0 2022/6/23-2022/6/25 1. FLAME: Taming Backdoors in Federated Learning 1.1 本文的贡献 我们提出了FLAME,这是一种针对FL中后门攻击的防御框架,能够消除后门而不影响聚合模型的良性性能。与早期的后门防御相反,FLAME适用于一般对手模型…

「市场调研」简说

1. 外部因素评价矩阵EFE EFE矩阵可以帮助战略制定者归纳和评价经济、社会、文化、人口、环境、政治、政府、法律、技术以及竞争等方面的信息。 建立EFE矩阵的五个步骤如下:  1) 列出在外部分析过程中所确认的外部因素,包括影响企业和其所…

《用图表说话》读后感

《用图表说话:麦肯锡商务沟通完全工具箱(珍藏版)》在我的必读清单里,推荐过很多次,也是之前送书活动中的书目,今天就来总结一下这本书到底讲了个啥。(知识图谱在文末,想要高清图片可…

微信读书产品调研报告

在信息爆炸时代,还是有一些人通过阅读书籍的方式静下心思考,静心提升自己的。而电子阅读产品也是互联网时代下的特色与产物,在竞争激励的电子阅读产品市场中,微信读书也正凭借着高质量的产品设计赢取用户的称赞与信赖。 微信读书产品调研报告 产品名称:微信读书 产品版…

哪里下载全部股票历史数据?下载全部股票历史数据怎么下?

4000只个股所有股票的历史数据,500个指数的全部历史数据,已经打包好了,而且可以随时下载最近一个交易日的全部股票历史数据,一个在线下载的工具 只要两步就能下载: 填股市代码、邮箱5分钟后收到股市历史数据Excel 放…

如何下载股票历史数据?

如何下载股票历史数据?发现一个可以在线批量下载股票历史数据的的工具,相比那些套路收费的,起码批量在线下载历史数据的Excel是真的,免费很关键… 只要两步就能下载: 填股市代码、邮箱5分钟后收到股市历史数据Excel 放在公主号…

股票历史走势的比较及显示

本文总结一下以前参加的一个股票分析软件的子项目(仅放了部分代码),项目用QT实现的,股票历史数据存储在excel文件中。 子项目的目标是根据提供的股票历史数据查找与近期股票数据相似的时间段,并根据历史数据对走势进行…