组队、招募信息大多在吐槽版发布,而吐槽版每日上百条的消息量每每致使信息曝光率极低,形成了”想找组队、招募信息的人找不到,发布组队、招募信息的人得不到回应“的现象。html
所以,决定开发“小小易校园”小程序,提供一个针对各种竞赛组队、各种实习招募信息的统一发布平台,提供如下服务:前端
截至Gamma阶段结束,咱们完整实现了本来计划的信息发布、申请管理功能,还额外添加了数学建模比赛专用的组队及队友匹配模块,总共实现了30个不一样页面,39个不一样功能接口:ios
![]() 全部页面 |
![]() 全部接口 |
其中,Gamma阶段完成的美赛模块功能及页面以下:数据库
![]() 首页及问卷填写页面 |
![]() 搜索特定用户邀请组队 |
![]() 更换推荐队友及邀请 |
![]() 查看已发送的邀请 |
![]() 查看收到的邀请 |
截至2019/06/17,共有用户量400人:编程
而这400用户中,年龄分布以下:小程序
可见,绝大多数用户为18-24岁的在校大学生或刚毕业的大学生,用户状况符合前期调研的预期。后端
在发布了Gamma阶段的第一个版本后,咱们收集了用户反馈。用户反馈的主要问题有:微信小程序
本来的登陆页面中,有获取头像与姓名
、进入主页
两个Button。获取头像与姓名
按钮用于点击后获取用户头像。但这一步每每形成用户迷惑,不知道这两个按钮点击的顺序、影响。所以,咱们对登陆页面进行了修改:服务器
新的登陆页面只保留进入主页按钮,若没有用户的微信头像等信息,则自动弹出权限获取窗口。微信
该反馈针对美赛模块的原首页:
该页面中,“已发邀请”、“收到邀请”、“重填问卷”、“换一批”为可点击按钮,“个人队伍”、“推荐队友”为提示信息,不可点击。其中,“推荐队友”模块中,任意点击任意用户可查看详细信息。
针对这一页面,用户提出了如下反馈:
因为颜色相近,致使用户不清楚哪些按钮能够点击而哪些按钮不能,更不知道点击用户可查看详细信息。为了改进这一问题,咱们一开始尝试经过“较为灰色的部分不可点击,颜色明亮部分能够点击”的方式解决。所以,咱们向艺术生寻求了配色帮助。然而。。。。。。。。
这样的配色并不能让可点击按钮更加明显。。而且配色风格与咱们小程序的总体风格严重不搭。通过一番尝试,咱们最终选择将全部可点击按钮加上下划线,做为提示。
这样,咱们既保留了配色的统1、美观,也提升了可点击与不可点击部分的区分度。
Alpha版本如同Alpha版本出口条件所述,主要为了完成计划的各种主要功能,为工期工做提供框架。所以,Alpha版本的产品在UI上很是简陋。在以后两个版本,咱们大幅度优化了UI,几乎对全部页面的前端xsml代码进行了重构。经过长时间的努力,咱们也取得了显著的成果。如下是两个版本的UI对比:
|
|
![]() 原主页 |
![]() 新主页 |
![]() 原个人发布 |
![]() 新个人发布 |
![]() 原个人申请 |
![]() 新个人申请 |
![]() 原发布详情 |
![]() 新发布详情 |
从上述对比能够看到UI、布局、配色的大幅度提高。
除页面的优化外,自Alpha版本以来还进行了大量的BUG修复及操做修改,其中重大问题包括但不限于:
缺少加载提示,网络出现问题时显示一片空白,致使用户不清楚出现了何种问题
咱们在以后的阶段对全部页面加入了加载提示:
修复了大输入框在IOS端字体重影的问题(小程序自带UI控件BUG)
自动联想标签的失焦问题:
自动联想的标签在Beta版本在进行滑动下拉等操做时也会断定为失焦,而自动关闭。这样致使在备选项较多,超过一个屏幕长度时,用户在进行滑动屏幕,想选择屏幕外的标签时,会断定为失焦而自动关闭。这一问题在以后获得了解决。
获取头像后没法登录的问题
总而言之,Alpha版本是一个”能用“的版本,但存在诸多由于没有经验致使的设计问题、程序BUG。而在Gamma阶段,咱们不但修复了以前各种极度影响用户体验的BUG,还在UI设计方面下了更多功夫,引入了更多诸如图标、不规则多边形、圆角矩形、阴影等设计元素,将软件质量大大提高。
![]() 原主页 |
![]() 新模块主页 |
相比Alpha阶段,咱们在软件工程质量上的提升主要体如今三个方面:
除了基本的PM、开发、测试的分工,咱们通过Alpha阶段的磨合,为每一个人都分配了最适合的任务:
姓名 | 职位 | 详细分工 |
---|---|---|
byw | PM | 全部博客、进度追踪、页面设计、功能策划、接口初步规划、issues管理,尽可能让其余成员专一于编程 |
wb | 前端开发 | 和bsh同寝室,共同负责大部分前端页面的完成。 |
bsh | 前端开发 | 负责部分前端页面的完成及测试矩阵的完成 |
szy | 后端开发 | 后端部分开发,后端接口的详细设计,接口的单元测试 |
lw | 后端开发 | 后端部分开发,服务器的一切管理事物,压力测试 |
lqh | 前端开发 | 小部分前端页面开发,微信机器人的完成,博客gif的录制 |
从Beta阶段开始咱们明确了这一详细分工,这样每位成员都能明确本身在每一个迭代不一样阶段的职责,促进了任务的顺利进行。
通过Alpha阶段,咱们意识到了设计得越详细,实现时的问题就越少。
在Alpha阶段咱们的接口设计较为简单。在实现过程当中,咱们发现,接口做为先后端对接之处,任何一点理解上的不一致都会致使严重影响正常使用的bug发生。所以,咱们在以后的阶段中将接口设计尽可能细致,对每一个参数、返回值的类型、名称、条件都作了相应要求。
在Alpha阶段,咱们将前端每一个页面彻底交给负责的相应开发人员。当时咱们认为,由开发者决定用什么样的控件、进行怎样的布局,最大程度方便开发者,让开发者选择本身熟悉、使用方便的控件。所以,Alpha阶段的页面设计图极其简单:
可是,在实际运做过程当中咱们发现,前端开发人员不但要考虑如何可靠的实现功能,还要考虑布局、配色(尤为是配色。。。),不但没有起到方便前端开发的做用,反而还大大拖慢了前端的开发进度,还致使页面的美观程度不尽人意。。所以,在以后的阶段中,由PM负责对页面进行详细设计:
![]() |
![]() |
在有详细的设计案后,前端开发人员有了具体的目标,反而提升了前端开发的速度,前端页面的质量也有了巨大的提高。
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以下:
接口 | 现象 | 缘由 | 是否解决 |
---|---|---|---|
/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阶段使用相同工具。基本参数以下:
进行压力测试后的结果以下:
对于前端的功能测试,仍采用与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阶段的全部单元测试,保证了前两个版本功能的正确性。
前端上,咱们对前两个版本的页面也进行了详细测试,确保了原功能的正确性。并修复了一些新发现的问题,如: