目录html
团队名称:WhatAHardChoice前端
照片 | 姓名&自我介绍 | 指望角色 |
---|---|---|
![]() |
我是周BW,喜好摄影、音乐及各类新奇的技术。技术上后端熟悉Java、Python,前端会一点vue,熟悉PS还能够当美工。总之什么都会一点但都不够深,但愿能在与你们合做的过程当中与你们一同窗习进步! | 开发&PM/美工 |
![]() |
我是周GJ,喜欢体验生活,爱好挺多,运动旅游电影音乐。对C、Java、C#比较熟悉,各类语言都能快速上手。有缘能成为一个团队,合做愉快! | 开发 |
![]() |
我是何YF,平时喜欢追剧看番,能力不足,热情有余。偏向作测试,也愿意给开发的同窗提供各类协助。很高兴能和你们成为一个团队,也但愿接下来合做愉快! | 测试 |
![]() |
我是樊ZK,业余时间喜欢玩游戏看电影。比较熟悉C/C++,也能够开发也能够测试(哪边缺人去哪边)。技术可能不是很是好,可是愿意学习。 | 开发或测试 |
![]() |
我是王ZQ,喜欢电影、电视剧和综艺,能力通常水平有限,希望意多学习。对C和Java比较熟悉,偏向作测试。很是高兴加入这个团队,但愿在以后的任务里能一块儿努力,合做愉快。 | 测试 |
![]() |
我是杨S,喜欢游戏、电影、电视剧,固然也喜欢编程。对C和Java比较熟悉,偏向开发。能力还有不少不足,水平也有限,希望意多多学习,跟你们共同进步 | 开发 |
![]() |
我是殷LXY,爱好是看小说、玩游戏,如今正抓紧时间锻炼本身的编程能力。对C/Java比较熟悉,偏向测试,也可也作一些测试之外的杂务及辅助pm工做。很高兴能和你们一个团队,会尽力为团队作出贡献 | 测试&文档 |
典型用户1 | 典型用户2 | 典型用户3 | |
---|---|---|---|
姓名 | 小王 | 小李 | 小张 |
性别、年龄 | 男、20 | 男、20 | 男、20 |
职业 | 大二 | 大二 | 大二 |
收入 | 无 | 无 | 无 |
知识层次和能力 | 本科在读,善于利用网络工具,物理系学生 | 本科在读,善于利用网络工具,非物理系学生 | 本科在读,善于编程,计算机系学生 |
生活/工做状况 | 上学 | 上学 | 上学 |
动机、目的、困难 | 动机:物理实验必修课;目的:想取得好成绩;困难:每次实验以前,得花大量时间查找资料写预习报告,在实验数据处理上存在困难。期末考试复习找不到资料。 | 动机:物理实验必修课;目的:想取得好成绩;困难:每次实验都要花费大量时间,还有其余专业课的负担 | 动机:物理实验必修课,本身会编写脚本处理数据;目的:但愿分享本身的脚本给他人使用;困难:没有途径分享,分享给他人后他人不会用 |
用户偏好 | 认真学习,善于利用电脑手机 | 喜欢社交、善于利用电脑手机 | 乐于助人、但愿帮助你们学习 |
用户比例 | 40% | 50% | 10% |
典型场景 | 在网站上发现有不少实验的预习报告,以及对数据的处理 | 在网站上发现能自动处理数据,来检测本身的结果是否正确 | 申请管理员权限后,上传并调试本身的脚本 |
典型描述 | 认真严谨、踏实 | 追求简单、效率 | 乐于助人 |
功能 | 功能描述 | 验收标准 | |
---|---|---|---|
用户 | 用户认证 | 用户注册 用户登录/登出 邮箱认证 修改密码 |
可以正常注册 可以正常登录,并维持登陆状态 可以收到认证邮件并认证 可以修改密码 |
信息修改 | 查看我的信息 修改我的信息 上传头像 |
可以浏览本身的我的信息 可以修改我的信息并于服务器同步 可以上传/修改本身的头像 |
|
实验 | 预习实验 | 预习报告 | 每一个实验可以看到相应的预习报告,预习报告内容正确 |
数据处理 | 数据处理运行 数据处理正确性 数据处理报错 支持不一样效果的模板 |
实验的脚本可以根据输入数据运行获得结果 实验脚本可以获得正确的数据 实验脚本在遇到错误输入时能报错 不一样的模板都能生成合格的报告 |
|
评论 | 实验界面评论区评论 | 可以在实验界面看到他人评论,并能发送简单的评论信息 | |
收藏 | 收藏实验报告 查看收藏报告 下载收藏报告 删除收藏报告 |
可以在报告生成后收藏相应报告 可以查看本身收藏的报告 可以下载本身收藏的报告 可以删除(取消收藏)本身收藏的报告 |
|
社区 | 发表问题 | 发表问题,提供问题描述 点赞他人的回答 |
可以发表问题,并在问题描述中提供图文、附件等信息 可以对他人答案点赞,本身的答案可以被点赞 |
回复 | 回复某一文章/问题/答案 | 可以在某一文章/问题/答案下评论,并附带图文或附件等信息 | |
发表文章 | 发表文章 | 可以发表一篇文章,并附带图文、附件等信息 | |
控制台 | 新建实验 | 新建一个小实验 | 可以正确新建实验,新建后实验处于未发布状态,且自带实验模板 |
上传报告 | 上传预习报告至相应实验组下 | 可以上传PDF格式的预习报告,可以拦截错误的文件上传 | |
编辑脚本代码 | Python/Latex/Html/Markdown编辑 html实时预览 |
可以编辑/保存某个实验的代码 可以在编辑html表格时实时预览 |
|
运行测试 | 输入数据运行测试 | 可以在输入数据的状况下运行测试,并返回服务端的运行日志 | |
发布/删除实验 | 发布实验 删除未发布实验 |
可以正常发布实验,发布后用户能够在实验区看到 可以删除未发布实验,删除后服务端文件也被清空 |
|
主页 | 公告栏 | 显示公告栏 修改公告栏 |
全部用户都能看到公告栏 只有管理员可以修改公告栏、且修改可持久化 |
设计性实验 | 设计性实验复习 | 切换实验内容 点击显示/隐藏答案 |
可以切换不一样的实验(共8个) 点击挖空部分可以显示/隐藏答案 |
其余 | 移动端 | 总体显示正常 基本功能可用 |
移动端显示没有明显的溢出、错乱状况 注册登陆、生成报告、设计性实验等基本功能可以使用 |
截至6月17日晚,共有70人次在网站注册。Beta阶段和Gamma阶段注册量增量不大,缘由一是宣传力度减弱,二是新功能不须要注册便可使用,且综合实验在Gamma阶段已经结束。vue
网站访问量方面,截至6月17日晚设计性实验页面总访问量417次。laravel
在生成报告界面能够选择报告生成方式:Latex或Markdown模板。git
目前全部实验都支持使用两种模板生成报告了。github
与Alpha阶段对比: Markdown模板内容与Latex模板内容一致,仅样式略显简陋,但生成速度大大提高(详见测试报告-性能测试部分)。数据库
控制台管理的内容由以前的三件套(Python/Latex/HTML)转为了四件套(+Markdown)。原先的操做均不受影响。增长了Markdown接口的测试。编程
无需登录便可直接访问:设计性实验复习小程序
上线了8个考试实验内容,内容参考了往届的复习资料。支持使用鼠标滑过、点击的方式显示与隐藏答案。后端
Gamma阶段修复了点击事件的问题,目前该页面在移动端也能正常工做了。
上线了两个小实验2160115密立根油滴实验 和 2200116声光衍射实验。
Gamma阶段因为综合实验结束,暂未考虑增长新的实验内容。
Beta阶段引入了主页公告栏,Gamma阶段引入了公告栏的编辑功能。
因为以前项目之前并未考虑到移动端使用的问题,移动端的原有页面崩坏严重,报告生成没法使用。
与Alpha阶段对比: 点此查看之前移动端页面的诸多问题
Beta阶段咱们改善了移动端的显示,使移动端可以正常生成和查看报告。
用户界面目前支持上传本身的头像了。
修复了密码修改接口,目前能够在登录页面-忘记密码连接中向注册邮箱发送修改密码连接。
该部分详情将于第五部分介绍。
与Alpha阶段不一样,在Beta和Gamma阶段团队格外重视测试,进行了包括单元测试、性能测试、接口测试等一系列测试,在提高项目总体质量的同时也学到了不少知识。
为了方便测试,在Gamma阶段咱们在项目内定义了错误码,以帮助测试和debug。错误码统一了以前项目返回出错信息或抛异常的状况。咱们提供了配套的错误码说明文档。
在Gamma阶段咱们对项目中的代码增添了不少注释。大部分注释集中在后端,前端也有少许简单的注释帮助开发理解代码。
为了帮助以后的同窗更快上手项目,咱们修订和编写了不少文档,包括:入门及项目结构介绍、接口文档、服务端部署文档、本地部署踩坑文档、错误码说明、配置文件说明、接口测试运行说明。
除此以外咱们在Github将服务端运行的完整代码进行了打包,以帮助以后的同窗部署。
项目的分工在Beta和Gamma阶段大致如图:
基本上团队内分工在尽可能让你们作熟悉的事情基础上又有灵活的调整,使得效率尽量最大化。
Beta和Gamma阶段出现的一个迹象是其余课程花费的时间逐渐挤压了软工的时间。尤为是在Gamma阶段起初因为多门课程有考试/大做业,致使项目进度一度停滞不前。
针对这一问题,PM根据各同窗时间充裕程度分配任务,并鼓励结对的模式,最终的进度有所延误但工做都完成了。
Alpha阶段咱们的项目对于Issue管理不是很是严谨,简而言之大部分issue的关闭都没有对应的commit内容或成果。
在Beta和Gamma阶段咱们采用先回复再关Issue的方式使用issue功能。关闭issue的同时也须要提供相应的成果,不只仅是commit,也能够是博客连接、设计图等等。
天天的例会时PM会对当日的工做进行确认,若是出现关闭issue后发现问题仍未解决的状况,则会新开issue处理新的问题。
相比于Alpha阶段彻底没有自动化测试来讲,咱们在Beta和Gamma阶段的自动化测试主要分为如下的三个部分展开:单元测试、性能测试和接口测试。
除此以外正常的前端功能测试(填写测试矩阵)和每一个阶段的回归测试也是必不可少的。
在Beta阶段咱们首先尝试了在项目中引入单元测试,并取得了很多成效。Beta阶段结束时测试不全,以及遇到的不少测试相关的没有解决的问题也在Gamma阶段得以解决,使得咱们目前几乎全部功能控制器都能被测试覆盖。
覆盖率:
在Beta阶段引入了Markdown模板报告生成后,咱们对这一功能与原先的Latex报告功能采用性能测试的方式进行比较。
接口 | 总用时 | 平均用时 |
---|---|---|
Markdown | 39841ms (39.841s) | 398ms |
Latex | 116035ms (116.035s) | 1160ms |
Markdown生成一个报告用时约是Latex接口的34%左右。
因为Postman仅能进行串行的测试,咱们使用Jmeter对接口进行并发压力测试。
根据本项目第一届同窗们测试的结果(连接),1c2g的服务器约能承受30人同时生成Latex报告。
如下时间单位为ms
Latex接口运行本测试失败,生成了12个报告后服务器宕机。
Markdown接口运行正常
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MDtest | 50 | 20086 | 20982 | 22123 | 22135 | 22209 | 16458 | 22209 | 0.00% | 2.16939 | 2.91 | 2.45 |
Markdown接口:在60s内均匀地产生180个线程发起请求:平均每一个请求耗时24s
Latex接口:在60s内均匀地产生90个线程发起请求:平均每一个请求耗时:60s
注意虽然Latex接口在Jmeter中返回的错误是10%,但部分返回http 200的接口实际上返回信息是“fail”,统计了服务器上生成的pdf个数为:68,既真实错误率为24.44%。
尝试以测试Markdown接口的参数测试Latex接口,一样致使了服务器宕机。
在Gamma阶段,为了方便开发者在本地快速验证接口正确性,咱们对Postman这一工具进行了学习后编写了多个接口测试样例。并导出为方便使用的JSON文件共后续开发同窗使用。接口测试相比于单元测试来讲运行时间短,能够快速验证接口是否工做正常。
在Gamma阶段,咱们为目前的项目代码增长了注释,而且尽可能删除了其中的无用代码。(多数是第一届同窗遗留的代码)
在后端方面,咱们统计了全部控制器的行数和注释关系。可见在总行数提高的状况下注释率仍高于原版本,注释行数增加120%。
后端控制器 | 总行数 | 代码行数 | 注释行数 | 注释占比(含空行) |
---|---|---|---|---|
往届版本 | 1330 | 952 | 294 | 22% |
目前版本 | 1911 | 1118 | 647 | 34% |
增量 | 43.68% | 17.44% | 120.07% | 54.55% |
在前端方面,咱们统计了JS部分的行数和注释关系。虽然没有写太多注释,但对代码中的无用代码进行了清理。注意到虽然代码行数变化不大,但这是在新版本实现了不少新功能状况下进行统计的。
前端JS | 总行数 | 代码行数 | 注释行数 | 注释率(含空行) |
---|---|---|---|---|
往届版本 | 2416 | 2064 | 141 | 6% |
目前版本 | 2397 | 1913 | 197 | 8% |
增量 | -0.79% | -7.32% | 39.72% | 33.33% |
在配置解耦方面,咱们将全部可能的配置均放到了.env
文件以及config
文件夹下的配置文件中,并编写了相应说明文档。
咱们在Alpha阶段由于项目难以入手而花费了不少时间。在Gamma阶段,咱们为项目补充了不少文档,目的是帮助以后的同窗(若是有的话)更快上手该项目。除此以外咱们还编写了8篇技术博客,能够做为后续同窗的参考。
目前GitHub的dev分支下docs目录中共有8篇文档。分别是:
目前团队共发布了8篇技术博客,虽然篇数很少,但大部分比较详细实用,结合文档对项目入门的帮助较大。
【技术博客】 关于laravel5.1中文件上传测试的若干尝试
【技术博客】 利用Postman和Jmeter进行接口性能测试
【技术博客】 Laravel 5.1单元测试(PHPUnit)入门
【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试
【技术博客】利用Python将markdown文档转为html文档
【技术博客】Postman接口测试教程 - 环境、附加验证、文件上传测试
与Alpha阶段相比,因为后半学期其余课程比较忙,而且各位组员干劲也有些降低,所以燃尽图也不是很是“美观”。
但整体来讲咱们计划的任务都完成了,且燃尽图真实的反映了项目的状态(真实的平了一段时间)。
咱们仍按照Alpha阶段的统计方式对贡献分进行了统计。
最终Beta和Gamma的贡献分平均以下:
姓名 | Beta | Gamma | 总分 | 平均 | 取整数 |
---|---|---|---|---|---|
ZBW | 59.18367 | 64.93213 | 124.1158 | 62.0579 | 62 |
ZGJ | 65.30612 | 60.181 | 125.4871 | 62.74356 | 63 |
FZK | 58.16327 | 63.34842 | 121.5117 | 60.75584 | 61 |
YLXY | 53.06122 | 47.51131 | 100.5725 | 50.28627 | 50 |
HYF | 42.85714 | 34.84163 | 77.69877 | 38.84939 | 39 |
WJB | 51.02041 | 57.01357 | 108.034 | 54.01699 | 54 |
YS | 20.40816 | 22.17195 | 42.58011 | 21.29005 | 21 |
700 | 350 | 350 |
终于,本学期的软工课程到此也接近尾声了。
做为接手往届项目的团队,通过三轮紧张的迭代以后,起码咱们能拍着胸脯说:
咱们的项目相比于以前的版本进步了很多,功能变多了,项目质量也有所提高。
固然目前项目中还有不少咱们由于能力或者精力没能彻底解决的问题,但团队尽可能总结出了这些问题,给未来开发的同窗一些指引。
主要问题包括:
咱们在思考后提出了关于将来开发的一些可行方向,包括但不限于:
以及一些提高项目质量的方法:
感谢各位老师、助教和同窗们的支持与帮助!