第七次作业:Beta阶段综合报告(Java-Team)
团队:Java-Team
成员:
章辉宇(284)
吴政楠(286)
陈阳(PM:288)
韩华颂(142)
胡志权(143)
github地址:https://github.com/WHUSE2017/Java-Team
服务器地址:http://125.220.159.167:8080/jeesns-web/
二、Beta版本测试报告(30分)
1、在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个?
A:修复的bug
B:不能重现的bug
C:这个产品就是这样设计的,不是bug
D:没有能力修复,将来也不打算修复
E:这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复
BUG名 |
A |
B |
C |
D |
E |
插入表情异常 |
√ |
|
|
|
|
教师在首页能够进行选课 |
√ |
|
|
|
|
选课人数、帖子、学生人数错误 |
√ |
|
|
|
|
教师上传作业删除异常 |
√ |
|
|
|
|
上传图片异常 |
√ |
|
|
|
|
评论发送邮件提醒报错 |
√ |
|
|
|
|
服务器崩溃 |
√ |
|
|
|
|
总计 |
7 |
0 |
0 |
0 |
0 |
2、场景测试(scenario testing)
①你预期不同的用户会怎样使用你的软件?
预期的用户分为武汉大学计算机学院教师和全体学生。假设有何老师准备开设《高级软件工程》,王老师准备开设《高级算法设计》,两位老师分别根据各自的教工号和初始密码登录课程群组系统,申请开设两个课程后,这两个课程各自产生对应课程的群组,李小明同学根据自己学号和初始密码登录系统,在申请课程页面看到这两个课程后,申请加入后(人数限制满足要求),选课成功,自动加入群组。两位老师可以在各自的课程群组里发布任务、图片等,小明下课后可以查看到这些信息,并且可以和老师进行讨论。
②他们有什么需求和目标?
教师:教师的目标是高效的管理课程,包括管理学生、发布课堂相关资料等。避免在课堂上找课代表、找人建立QQ群并一个同学一个同学的批准加入等问题。教师可以很方便的布置作业、发布学习资料、课程信息,并与选了本课程的学生进行交流。
学生:学生的目标是不需要通过各种途径获取课程群号、不需要通过课代表获取课堂信息。学生可以很方便的在选课的时候就能加入这个课程的群,直接在群里获取课堂的学习资料,并与老师进行交流。
③你的软件提供的功能怎么组合起来满足他们的需要?
为了满足教师和学生的需求和目标,同时保证系统的可靠性和实用性,我们的系统设计包括了登录验证、个人资料管理、学生选课、课表和群组的展示、学生下载资料、学生参与评论、教师申请课程、教师管理课程群组、教师发布任务和资料、教师参与评论等内容。
3、根据不同项目的特点,进行必要的性能测试、压力测试等,并给出测试的过程和结果
压力测试:
4、你们在什么样的平台、硬件配置、浏览器类型等条件上对你们的软件进行测试?——测试矩阵(test matrix)
A:谷歌浏览器 B:IE浏览器 C:360浏览器 D:搜狗浏览器 E:火狐浏览器
√:测试正常 ×:测试异常
测试项 |
检验点 |
预期结果 |
A |
B |
C |
D |
E |
学生、教师登录验证 |
数据唯一性,用户名和密码输入 |
验证通过 |
√ |
√ |
√ |
√ |
√ |
申请开课 |
“申请开课”按钮 |
申请成功 |
√ |
√ |
√ |
√ |
√ |
查看已开设课程 |
“查看课程页面”按钮 |
查看成功 |
√ |
√ |
√ |
√ |
√ |
学生选课 |
点击“选课” |
(符合人数要求)选课成功加入本课程的群组 |
√ |
√ |
√ |
√ |
√ |
查看个人课表 |
点击“个人课表” |
可以查看课表及群组 |
√ |
√ |
√ |
√ |
√ |
教师在讨论区输入内容 |
输入框输入并提交 |
学生端可以看到此内容 |
√ |
√ |
√ |
√ |
√ |
学生在讨论区输入内容 |
输入框输入并提交 |
教师端可以看到此内容 |
√ |
√ |
√ |
√ |
√ |
教师在讨论区布置作业 |
输入框添加文件 |
学生端可以看到此内容 |
√ |
√ |
√ |
√ |
√ |
教师、学生私信交流 |
输入框输入并提交 |
可以查看私信内容 |
√ |
√ |
√ |
√ |
√ |
评论邮件提醒 |
评论后发送到对应用户邮箱 |
邮箱收到评论消息 |
√ |
√ |
√ |
√ |
√ |
找人 |
输入框输入用户名 |
搜索到用户并显示用户信息 |
√ |
√ |
√ |
√ |
√ |
退出登录 |
退出页面 |
退出成功 |
√ |
√ |
√ |
√ |
√ |
5、你认为你们团队的软件在什么条件下,就可以认定其已经足够好,可以发布Beta版本?——出口条件(exit criteria)
武汉大学计算机学院教师与学生能够正常使用课程组群系统,进行“登录验证、个人资料管理、学生选课、课表和群组的展示、学生下载资料、学生参与评论、教师申请课程、教师管理课程群组、教师发布任务和资料、教师参与评论、学生教师可以私信、评论会以邮件形式提醒”不报错或不报异常的情况下,认为该版本满足出口条件。
三、版本发布说明 (10分)
- 这一版本相对于Alpha版本的新功能
- 增加教师发布作业可以上传文档、PPT的功能
- 将系统部署到服务器上运行,实现查看课程具体内容功能
- 增加找人功能
- 增加表情功能
- 邮件提醒功能
- 这一版本对Alpha版本修复的缺陷
- 将系统部署到服务器上运行
- 文档、PPT上传成功
- 运行环境的要求
win7/win8/win10操作系统
安装版本较新的常用浏览器(谷歌浏览、IE浏览器、360浏览器、搜狗浏览器 、火狐浏览器)
- 安装方法
系统是网页版的,安装IE或者谷歌浏览器输入地址即可以打开。
- 描述系统已知的问题和限制
已经解决的问题和限制有:
- 教师发布作业只能上传图片,还未完成文档、PPT的上传。(√)
- 首页功能不完整(只能看到开设课程,不能查看课程具体内容)(√)
- 学生无法查看同班同学或者老师的个人信息(√)
- 私信功能只能发送文字(√)
- 出现新的评论以邮件方式发送给用户(√)
现有的问题和限制有:
- 系统框架问题,系统框架还未达到企业级别
- 数据安全问题,数据没有采用备份机制
- 文件传输问题,文件较大的时候(大于10M),传输速度较慢
- 说明软件的发布方式以及发布地址
系统文件已发布在github项目地址上。
地址为:https://github.com/WHUSE2017/Java-Team
四、Beta版本展示博客 (20分)
1、团队成员的简介和个人博客地址,团队的源码仓库地址
团队情况介绍:
成员名字 |
简介 |
个人博客地址 |
韩华颂 |
武汉大学计算机学院研究生 |
|
章辉宇 |
武汉大学计算机学院研究生 |
|
陈阳 |
武汉大学计算机学院研究生 |
|
胡志权 |
武汉大学计算机学院研究生,研二,研究方向为机器学习。 |
|
吴政楠 |
武汉大学计算机学院研究生 |
团队的源码仓库地址:
https://github.com/WHUSE2017/Java-Team
2、我们要做软件工程,那就要有一点工程的样子
- 团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?
团队的项目目标是为教师课堂管理和学生课程信息获取建立一个简单、便捷的系统。
用户主要为在校的教师和学生(目前预设想的为计算机学院教师和学生)。根据用户的性质和类别,我们预期实现两个主要的功能模块,分别为教师模块和学生模块。教师模块:可以开设自己的课程、对每个课程的群组、群组成员、发布的任务和讨论信息进行管理。学生模块:可以选课、查看课表、加入课程群组、获取各个课程老师发布的任务信息并在群组中与其他同学或者老师交流讨论。项目首先在本院推广,将计算机学院的师生作为第一批用户。
- beta 发布之后一定会比alpha 阶段更能满足用户的需求,请录一段视频, 展现目标用户使用 beta 产品的情况。
Beta版本比上一版本多了上传传文档和PPT、发送表情、找人等功能,视频地址: https://pan.baidu.com/s/1bWtqN0
- 团队的成员如何分工协作的?有什么经验教训?
团队根据成员特点和项目实际进展情况进行分工协作,成员分为pm,dev和test。
pm负责会议主持、建议和总结,dev负责系统开发,test负责系统测试和文档撰写。各项任务按照之前制定的计划顺利进行。该阶段我们总结的经验有三点:
- 合理的计划安排十分重要。在项目开始之前我们进行了详细的讨论,列出项目进行过程可能出现的一系列问题,探讨解决方案。
- pm风险把控十分到位。很好的协调了dev和test组员之间的配合,保障项目的进度。
- dev和test之间密切配合,虽各有侧重点,但是通过交流后很好的解决项目中的问题。
- 团队是如何进行项目管理的?
团队的管理主要是依据每个成员的身份(pm、dev或test)和预定的项目计划进行的。Pm是团队管理的核心。每个人明确个人身份之后,我们每天提交进展报告,遇到问题的时候及时反馈和交流。
- 团队如何平衡 时间/质量/资源 争取如期完成任务的?
为了如期完成任务,pm负责把控进度,在实际衡量每个队员的时间、完成的质量等方面给出任务指标。每个队员也会结合自己的实际情况和进展在群里进行交流。每天分为两个阶段,上午提交预期计划,晚上反馈实际进展。
- beta 阶段每个团队在软件工程方面有哪些具体改进?(例如 代码测试覆盖率从 x 提高到 y),也要列出来。
- 代码测试率:从6500/15000 到13200/15000
- 增加压力测试:
3、团队项目的实际进展(拷贝那些 scrum 过程中的燃尽图即可),发布的功能(拷贝发布文档)。说明在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?
我们的燃尽图的每个卡片是我们所要完成的需求功能,每次完成一个功能,才会改变一个卡片todo-doing-done的状态。
4、到了beta,代码的情况也请列出来,到底有多少行,多少文件,文档在哪里,如果一个新团队要接受这个项目,他们应该怎么做?这有说明吗?
代码量 |
文件数量 |
文档地址 |
项目说明 |
项目建议 |
包括前后端15000行左右 |
Java后端文件90个左右,前段包括图片、js、ftl文件120各左右 |
项目目标是为教师课堂管理和学生课程信息获取建立一个简单、便捷的系统 | 建议在已完成功能的基础上进行完善,重点解决系统框架、数据安全、数据传输问题 |
5、团队可以用视频显示, 如何在一个全新的电脑上,下载所有代码,构建,发布,并运行你们的程序
视频地址:https://pan.baidu.com/s/1gfu545P
五、Beta阶段总结分析报告 (20分)
请各小组在Deadline之前,召开事后诸葛亮会议,发布一篇事后分析报告。
- 设想和目标
课堂上老师建议我们通过调查的方式去收集身边比较常见的软件问题,一开始我们调查的对象主要是老师和学生,反映比较多的是建群的问题。团队一开始想做出一个类似QQ的通信软件,然后改进里面的建群功能。然而这个想法的工作量太大,经过反复讨论,我们决定直接解决建群这个问题,并将项目的目标确定为为教师课堂管理和学生课程信息获取建立一个简单、便捷的系统。
- 计划
结合课程的安排,我们进行人员的时间特点和个人所长,进行细致的分工合作。具体的计划安排可以参考我们的项目组的每次冲刺报告。并将工作完成情况反应在燃尽图上。当然中间碰到了很多问题,有些问题影响了项目的进行。由于系统主要是安装功能进行划分的,当遇倒较难解决的问题的时候,我们会适当的跳过某些问题,在不影响整体进度的情况下,返回去重点解决遗留的问题。
- 资源
我们最重要的资源就是时间和能力。一开始我们计划做成一个桌面客户端形式或者手机端形式,但是考虑到系统的开发时间和实际使用情况,我们最后选择做成网页的形式。在测试方面,由于系统涉及到服务器,一开始我们在本地进行测试,当基本功能实现后,我们再在服务器上进行部署,进行更为详尽的测试。
- 变更管理
项目的进度由PM进行把控,每个人在确定自己的任务之后每天都会进行反馈。我们的在项目的各个阶段都会进行集中讨论,确定项目的目标、项目的出口条件等。
- 设计和实现
项目的进行比较顺利,项目的进行基本按照原定的计划开展。每个阶段开始之前我们都会制定相应的计划。当遇到不清晰的情况,或者项目内容不明确的情况,我们都会及时展开讨论,并记录讨论结果。在设计的过程,遇到比较多的是逻辑设计问题、文件传输问题。
- 测试和发布
项目的测试和项目的开发是同步的,甚至在部分功能为开发之前,测试人员会提出一些常见的问题,提醒开发人员,提供开发效率。
- 项目总结
在项目的开展过程中,带着明确的目标,每个成员各抒己见,各尽其职。团队中只有有问题都可以及时进行讨论,包括开发问题和测试问题。项目管理、项目合作过程没有出现问题,而且成员之间积极分享自己的经验和感受,并建立了友谊。
全组讨论的照片(陈阳出差以致没有参加本次事后诸葛亮会议):
团队成员在Beta阶段的角色和具体贡献:
名字 |
角色 |
团队贡献分 |
可验证的贡献 |
韩华颂 |
Dev |
22% |
代码编写 |
章辉宇 |
Dev |
22% |
代码编写 |
陈阳 |
PM |
17% |
博客编写 |
胡志权 |
Test |
22% |
召开会议,测试,文档编写 |
吴政楠 |
Test |
17% |
测试,博客编写 |