[Gamma阶段]展现博客

水哥牛X团队[Gamma阶段]展现博客

微信小程序搜索“小小易校园”便可体验

项目愿景

  • 想参加竞赛,锻炼本身,却找不到合适的队友
  • 想进行实习,体验工做,天天不得不翻遍吐槽版的几百条信息却一无所得
  • 发布在吐槽版的“求组队”被聊天淹没,无人问津
  • 想找特定竞赛、特定类型实习的通知,只能一个一个本身翻找,心力交瘁

组队、招募信息大多在吐槽版发布,而吐槽版每日上百条的消息量每每致使信息曝光率极低,形成了”想找组队、招募信息的人找不到,发布组队、招募信息的人得不到回应“的现象。html

所以,决定开发“小小易校园”小程序,提供一个针对各种竞赛组队、各种实习招募信息的统一发布平台,提供如下服务:前端

  • 首页集中显示各种招募信息,并提供分类浏览、关键词搜索等检索功能
  • 支持图片上传的招募发布功能,并提供便捷的发布管理页面,可查看申请者简历、接受,拒绝他人申请
  • 申请感兴趣的发布,在个人申请界面随时查看申请状态,并提供可随时修改的简历模板

项目整体完成状况

截至Gamma阶段结束,咱们完整实现了本来计划的信息发布、申请管理功能,还额外添加了数学建模比赛专用的组队及队友匹配模块,总共实现了30个不一样页面39个不一样功能接口ios


全部页面

全部接口

其中,Gamma阶段完成的美赛模块功能及页面以下:数据库


首页及问卷填写页面

搜索特定用户邀请组队

更换推荐队友及邀请

查看已发送的邀请

查看收到的邀请
  • 填写数学建模比赛信息问卷,系统自动打分,并根据分数匹配队友候选——匹配自动屏蔽队伍中的队友、以已邀请过的用户
  • 邀请用户进入队伍,或接受他人邀请参加其余队伍、退出队伍等队伍管理操做
  • 根据用户名搜索用户,寻找特定用户进行组队
  • 点击用户经过下拉栏直接查看专业、竞赛经历等信息,避免页面跳转的等待

用户状况

用户数量及用户分析

截至2019/06/17,共有用户量400人:编程

最近7日的总访问人数变化

而这400用户中,年龄分布以下:小程序

可见,绝大多数用户为18-24岁的在校大学生或刚毕业的大学生,用户状况符合前期调研的预期。后端

用户反馈及根据反馈的修改

在发布了Gamma阶段的第一个版本后,咱们收集了用户反馈。用户反馈的主要问题有:微信小程序

  • 问题1

本来的登陆页面中,有获取头像与姓名进入主页两个Button。获取头像与姓名按钮用于点击后获取用户头像。但这一步每每形成用户迷惑,不知道这两个按钮点击的顺序、影响。所以,咱们对登陆页面进行了修改:服务器

新的登陆页面只保留进入主页按钮,若没有用户的微信头像等信息,则自动弹出权限获取窗口。微信

  • 问题2

该反馈针对美赛模块的原首页:

该页面中,“已发邀请”、“收到邀请”、“重填问卷”、“换一批”为可点击按钮,“个人队伍”、“推荐队友”为提示信息,不可点击。其中,“推荐队友”模块中,任意点击任意用户可查看详细信息。

针对这一页面,用户提出了如下反馈:

因为颜色相近,致使用户不清楚哪些按钮能够点击而哪些按钮不能,更不知道点击用户可查看详细信息。为了改进这一问题,咱们一开始尝试经过“较为灰色的部分不可点击,颜色明亮部分能够点击”的方式解决。所以,咱们向艺术生寻求了配色帮助。然而。。。。。。。。

这样的配色并不能让可点击按钮更加明显。。而且配色风格与咱们小程序的总体风格严重不搭。通过一番尝试,咱们最终选择将全部可点击按钮加上下划线,做为提示。

这样,咱们既保留了配色的统1、美观,也提升了可点击与不可点击部分的区分度。

软件质量与Alpha版本的对比

Alpha版本如同Alpha版本出口条件所述,主要为了完成计划的各种主要功能,为工期工做提供框架。所以,Alpha版本的产品在UI上很是简陋。在以后两个版本,咱们大幅度优化了UI,几乎对全部页面的前端xsml代码进行了重构。经过长时间的努力,咱们也取得了显著的成果。如下是两个版本的UI对比:

原页面
新页面

原主页

新主页

原个人发布

新个人发布

原个人申请

新个人申请

原发布详情

新发布详情

从上述对比能够看到UI、布局、配色的大幅度提高。

除页面的优化外,自Alpha版本以来还进行了大量的BUG修复及操做修改,其中重大问题包括但不限于:

  • 缺少加载提示,网络出现问题时显示一片空白,致使用户不清楚出现了何种问题

    咱们在以后的阶段对全部页面加入了加载提示:

  • 修复了大输入框在IOS端字体重影的问题(小程序自带UI控件BUG)

  • 自动联想标签的失焦问题:

    自动联想的标签在Beta版本在进行滑动下拉等操做时也会断定为失焦,而自动关闭。这样致使在备选项较多,超过一个屏幕长度时,用户在进行滑动屏幕,想选择屏幕外的标签时,会断定为失焦而自动关闭。这一问题在以后获得了解决。

  • 获取头像后没法登录的问题

总而言之,Alpha版本是一个”能用“的版本,但存在诸多由于没有经验致使的设计问题、程序BUG。而在Gamma阶段,咱们不但修复了以前各种极度影响用户体验的BUG,还在UI设计方面下了更多功夫,引入了更多诸如图标、不规则多边形、圆角矩形、阴影等设计元素,将软件质量大大提高。


原主页

新模块主页

相比Alpha阶段在软件工程质量上的提升

相比Alpha阶段,咱们在软件工程质量上的提升主要体如今三个方面:

  • 明确了每一个人擅长的工做,对分工进行了细化,让每一个人的工做效率尽可能最大化

除了基本的PM、开发、测试的分工,咱们通过Alpha阶段的磨合,为每一个人都分配了最适合的任务:

姓名 职位 详细分工
byw PM 全部博客、进度追踪、页面设计、功能策划、接口初步规划、issues管理,尽可能让其余成员专一于编程
wb 前端开发 和bsh同寝室,共同负责大部分前端页面的完成。
bsh 前端开发 负责部分前端页面的完成及测试矩阵的完成
szy 后端开发 后端部分开发,后端接口的详细设计,接口的单元测试
lw 后端开发 后端部分开发,服务器的一切管理事物,压力测试
lqh 前端开发 小部分前端页面开发,微信机器人的完成,博客gif的录制

从Beta阶段开始咱们明确了这一详细分工,这样每位成员都能明确本身在每一个迭代不一样阶段的职责,促进了任务的顺利进行。

  • 完善、详细的前期规划设计工做

通过Alpha阶段,咱们意识到了设计得越详细,实现时的问题就越少。

在Alpha阶段咱们的接口设计较为简单。在实现过程当中,咱们发现,接口做为先后端对接之处,任何一点理解上的不一致都会致使严重影响正常使用的bug发生。所以,咱们在以后的阶段中将接口设计尽可能细致,对每一个参数、返回值的类型、名称、条件都作了相应要求。


  • 将前端的UI、布局与实现过程分离

在Alpha阶段,咱们将前端每一个页面彻底交给负责的相应开发人员。当时咱们认为,由开发者决定用什么样的控件、进行怎样的布局,最大程度方便开发者,让开发者选择本身熟悉、使用方便的控件。所以,Alpha阶段的页面设计图极其简单:

可是,在实际运做过程当中咱们发现,前端开发人员不但要考虑如何可靠的实现功能,还要考虑布局、配色(尤为是配色。。。),不但没有起到方便前端开发的做用,反而还大大拖慢了前端的开发进度,还致使页面的美观程度不尽人意。。所以,在以后的阶段中,由PM负责对页面进行详细设计:

在有详细的设计案后,前端开发人员有了具体的目标,反而提升了前端开发的速度,前端页面的质量也有了巨大的提高。

咱们在合做过程当中学到的软工知识

  • 利用用户反馈进行改正是提高品质的最快最好方法
    不管怎样精心的设计,都不免有遗漏之处。而当局者迷,发现这些漏洞的最好方法,莫过于发布体验版或邀请用户试用。用户看待产品的角度与开发者、设计者有极大的不一样,而用户提出的问题每每也是在体验中最明显、影响最显著的问题。所以,根据用户的反馈修改产品是最高效、最准确的方法之一。
  • 在长时间固定每位成员的职责后,能必定程度促进成员自觉,甚至提早完成任务
    若分工或详细职责频繁更换时,每每须要PM话费较多经历提醒成员其负责的工做、工做的DDL,对于PM和开发成员来讲都不是一个好的体验。而具体的分工肯定后,每位成员对本身的职业很是清晰,知道本身在每一个迭代的不一样时期有何责任,必定程度上提升了成员工做的积极性和自主性,对于总体开发过程的体验有较大的提高。
  • 将设计与实现工做分离是提高效率及工做完成质量的重要步骤
    在Alpha阶段,咱们将各个页面彻底交给负责的同窗完整。咱们本来的指望是,开发同窗在工做时,能够根据本身的编程习惯等,选择最适合本身,本身认为最方便最好用的空间、第三方库。咱们但愿尽可能不对前端开发人员进行限制,来方便他们进行开发。但实际工做中,因为开发者不但要考虑功能的可靠实现,还要考虑页面的布局、设计,形成了进度缓慢,且设计质量不高。所以,
  • 功能越多、越方便接入用户的平台,每每审查条件越严格。留出足够的缓冲时间以防万一很是重要
    咱们的产品发布在微信小程序平台上。微信小程序可用微信登陆,不用安装直接从微信进入,具备巨大的流量引入优点。可是,微信小程序的审查也很是严格:任何具备“信息发布类”功能的小程序,都须要经过注册企业申请企业版小程序才可发布。而且,若企业版小程序具备任何审查员认为是“招聘、中介类”功能,还须要进一步提供“人力资源管理证”,才能经过审核。这一点在Beta阶段为咱们形成了较大的困扰。所以,在Gamma阶段发布时,咱们预留了足够的时间,而且在发布前将后台数据中和招聘相似的实习类发布下架,避免审查人员误解,在经过审核后再从新上线。

团队贡献分

Gamma阶段成员的贡献分以下:

名字 分工 团队贡献分 具体贡献
bsh 1167 前端负责人 50 完成美赛查看申请者的界面
完成美赛查看申请者,赞成申请,拒绝申请等页面功能
完成美赛查看个人邀请的界面
修复了上阶段拒绝之后的图标显示BUG
byw 1173 PM 51 每日例会的召开与主持
每日例会博客撰写
Gamma阶段总体计划规划
每日任务分配及Issues管理
全部新页面的设计
测试报告、发布说明博客的撰写
功能、接口的规划
lqh 1168 微信监听机器人开发 54 学习了微信小程序的开发
完成了前端美赛问卷调查页面的实现
完成了小程序新增功能展现的录屏及gif制做
lw 1175 后端负责人及测试 47 gamma阶段主要负责实现了获取美赛信息修改美赛信息,搜索用户,获取美赛队伍信息,提交评分,获取推荐队员,退出队伍等7个后端接口
实现了上述信息的相关的数据表
最后进行了压力测试
wb 1155 前端开发及测试 52 完成美赛页面
完成美赛搜索功能
完成美赛换一批功能
完成美赛我的信息功能
修复上阶段没法查看申请者简历的bug
修复上阶段没法查看本身投递的简历的bug
修复上阶段主页进入不方便的bug
szy 1170 后端开发及测试 46 美赛后端邀请功能共5个接口
全部单元测试的完成,包括以前版本的回归测试及修改
后端诸多BUG的修复
协助前端进行ios系统的测试

其余阶段的贡献分参见贡献分汇总博客

产品测试

在Gamma阶段,咱们一样从单元测试、 压力测试、前端测试矩阵三个方面进行了详细的测试。

单元测试

单元测试的主要目的,是测试后端全部接口的工做是否正常。其内容主要包含两方面:
- 接口在正常状况下是否能发挥预期功能
- 接口在异常状况下是否能返回预期错误信息

Gamma阶段的全部单元测试与Alpha、Beta阶段相同,在pycharm下使用Coverage工具进行测试。通过修改后已经经过了全部单元测试。

在Gamma阶段,咱们依旧针对每个接口都设计了相应的单元测试。如今,三个阶段单元测试的总数高达203个

在运行完全部单元测试后,单元测试的代码覆盖率高达96%,切实确保了全部接口的正确性。

单元测试中发现的bug以下:

后端单元测试Bug汇总

接口 现象 缘由 是否解决
/mcm/invite/<int:user_id>/ 调用接口时返回错误码500 数据库操做时搜索的键名错误
/mcm/invitations/send/ 后端返回的邀请信息全是本身的信息,实际上应为被邀请者的信息 对数据库搜索到的数据进行的索引错误
/mcm/accept/<int:invitation_id>/ 赞成后未加入队伍 更新数据库是未进行保存
/mcm/quit/ 用户退出队伍后未成为单人队伍的队长 未更新用户身份字段
/mcm/accept/<int:invitation_id>/ 邀请赞成后被邀请者仍能在邀请列表里看见 未对被邀请者可见的邀请信息进行过滤
/mcm/invite/<int:user_id>/ 可以邀请队友 发出邀请是应过滤现有队友
/my/profile/modify/ 没法修改我的资料 account超出最大长度限制
/mcm/search/user/ 返回的user_id不正确 返回的user_id为整数,应改成string类型
/mcm/match/ 返回的推荐用户中包含本身 没有设置相关的查询过滤条件
/mcm/search/user/ 没法获取name参数 name参数在url中,不能从body中获取
/mcm/match/ 获取推荐用户时没有正确过滤已发送邀请的用户 设置的相关查询过滤条件不正确
/mcm/quit/ 用户做为队员退出某一队伍单独一人时未自动成为队长 缺乏对数据表中相关字段的设置
/mcm/invite/<int:user_id>/ 调用接口时返回错误码500 数据库操做时搜索的键名错误
/mcm/invitations/send/ 后端返回的邀请信息全是本身的信息,实际上应为被邀请者的信息 对数据库搜索到的数据进行的索引错误
/mcm/accept/<int:invitation_id>/ 赞成后未加入队伍 更新数据库是未进行保存
/mcm/quit/ 用户退出队伍后未成为单人队伍的队长 未更新用户身份字段
/mcm/accept/<int:invitation_id>/ 邀请赞成后被邀请者仍能在邀请列表里看见 未对被邀请者可见的邀请信息进行过滤
/mcm/invite/<int:user_id>/ 可以邀请队友 发出邀请是应过滤现有队友

表中详细列出的BUG的现象及具体缘由,目先后端发现的全部BUG均已解决。

压力测试

进行的压力测试与Beta阶段使用相同工具。基本参数以下:

  • 并发用户数:500
  • 总请求数 :5135

进行压力测试后的结果以下:




  • 测试结果:
    总请求数量为5135个的状况下,失败请求数为2,表现良好。
    平均响应时间为0.905s吞吐率为51.2req/s
    Gamma阶段压力测试的表现相比Beta阶段,有较大提高。
    Beta阶段压力测试详情请见这里

前端功能测试

对于前端的功能测试,仍采用与Alpha阶段相同的方式,即在不一样的机型、不一样的操做系统下,对每一个页面的每一个功能进行一一测试,以检测其功能的正确性。前端功能测试的测试矩阵以下:

测试矩阵 功能测试 页面显示
测试机型 测试环境 登陆 搜索 查看分类标签 首页智能推荐 修改我的信息 修改简历 查看招募 发布招募 查看个人发布 采纳申请 申请招募 查看个人申请 填写美赛我的信息 填写美赛问卷 换一批推荐 退出队伍 邀请推荐队友 查看已发邀请 查看收到邀请 接受和拒绝邀请 搜索用户 页面排版
Redmi K20 Pro Android 9.0 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 显示的人错误(偶尔) 无问题 无问题 无问题 无问题 无问题 无问题
Mi6 Android 9.0 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 显示的人错误(偶尔) 无问题 无问题 无问题 无问题 无问题 无问题
Honor Play Android 9.0 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 显示的人错误(偶尔) 无问题 无问题 无问题 无问题 无问题 无问题
IQOO Android 9.0 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 显示的人错误(偶尔) 无问题 无问题 无问题 无问题 无问题 无问题
iphone7 IOS 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 没法查看我的简历 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题
iphone8 IOS 无问题 无问题 无问题 无问题 无问题 无问题 无问题 无问题 没法查看申请者 没法查看申请者 无问题 没法查看我的简历 无问题 无问题 无问题 退出队伍有时显示其余人 无问题 无问题 无问题 无问题 无问题 无问题

回归测试

从后端的接口测试部分能够看见,在进行Gamma阶段的单元测试时,咱们同时运行了前两个阶段已完成的单元测试,并对测试失败的接口进行了修正,最后顺利经过了Alpha、Beta阶段的全部单元测试,保证了前两个版本功能的正确性。
前端上,咱们对前两个版本的页面也进行了详细测试,确保了原功能的正确性。并修复了一些新发现的问题,如:

  • 部分机型没法查看发出的申请简历问题
  • 自动联想表如今进行滑动屏幕时会断定为失焦,致使实际上超过一屏的联想结果没法选择的问题
相关文章
相关标签/搜索