Beta阶段报告
Beta版测试报告
1. 在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个?
| BUG名 | 修复的BUG | 不能重现的BUG | 非BUG | 没能力修复的BUG | 下个版本修复 |
|---|---|---|---|---|---|
| url乱码 | √ | ||||
| 手机端网页的缩放 | √ | ||||
| 中文url的编码 | √ | ||||
| 根据xpath找不到元素 | √ | ||||
| GUI与后端中文无法传递 | √ | ||||
| GUI默认辨认编码无法改变 | √ | ||||
| 打包无法运行的问题 | √ | ||||
| 多线程的信号混乱 | √ | ||||
| 无法删除表格中第一项 | √ | ||||
| update() 会造成存储结果混乱 | √ | ||||
| 打包成单文件EXE无法调用phantomjs.exe | √ | ||||
| 总计 | 6 | 2 | 2 | 0 | 1 |
2.场景测试
- 小明:
小明是一个资深动漫爱好者,他一周要追10部以上的动漫,每天更新什么动漫,这部动漫再哪个平台上观看这些考记忆力的东西让小明头痛不已。小明通过我们的软件,把他追的动漫添加进关注列表里,每天打开我们的软件就能知道更新情况了。 - 小刚:
小刚是一个刚入门的动漫爱好者,他看动漫的目的是在闲暇之余放松自己。但是经常不知道去哪看什么时候看,小明的烦恼在使用我们的软件之后就没有了,他只用在搜索框搜索想看动漫的名称,之后只用每天打开软件查看更新情况就行了。
3.压力测试

可以看出同时抓取15部动漫的最新集数只要31S,平均2S多一部,这个速度已经很快了,并且系统没有卡死。
4.测试矩阵
| 测试项 | 检验点 | 预期结果 | phantomjs(headless) | firefox | chrome | edge |
|---|---|---|---|---|---|---|
| 打开url | 打开一个窗口 | 窗口打开并加载 | √ | √ | √ | √ |
| 定位元素 | 根据元素的xpath定位 | 成功定位 | √ | √ | √ | √ |
| 模拟鼠标左键点击 | 找到元素并使用click方法 | 点击事件成功响应 | √ | √ | √ | √ |
| 获取元素属性 | 找到元素并使用get_attribute方法 | 成功找到属性 | √ | √ | √ | √ |
- handleJson
| 测试项 | 检验点 | 预期结果 |
|---|---|---|
| 添加数据 | 数据唯一性 | 同一组数据只能添加一次 |
| 删除数据 | 删除指定属性的数据 | 成功删除 |
| 修改数据 | 修改指定属性的数据 | 成功修改 |
| 文件不存在时添加数据 | 新建文件 | 成功添加 |
| 文件不存在时删除数据 | 无法删除 | 抛出异常 |
| 文件为空时删除数据 | 无法删除 | 抛出异常 |
- GUI
| 测试项 | 检验点 | 预期 | win7 | win8 | win10 |
|---|---|---|---|---|---|
| 主table | 显示效果 | 可以显示 | √ | √ | √ |
| 添加订阅PBT | 点击 | 在sublist.txt内添加订阅 | √ | √ | √ |
| 重新抓取PBT | 点击 | 根据sublist.txt生成抓取json | √ | √ | √ |
| 刷新 | 点击 | 点击按钮后刷新table | √ | √ | √ |
| 删除按钮 | 点击 | 在txt和json删除对应的项并刷新 | √ | √ | √ |
5.出口条件
我们的出口条件是,能在各种条件下修改(增、删、改)订阅列表而程序不会报错,且能够通过文件里的数据来更新订阅列表,并且速度相比Alpha要快很多。
版本发布说明
1.新功能
可以搜索各大网站的正版动漫资源
支持多线程
2.修复Alpha版本的缺陷
现在爬虫速度大幅度提升,提升幅度大概是之前的4-5倍。
打包程序无法运行的缺陷也已修复
3.对运行环境的要求
- 防火墙允许phantomjs连接网络
- RAM 2G以上
- win7/win8/win10操作系统均可
4.安装方法
不需要安装直接运行exe文件即可。
5.已知问题和限制
- 由于代码重构和爬取的站点不同,我们在提高速度的同时牺牲了“更新日期”这个功能,这是因为我们利用了爱奇艺的提供的搜索功能,他的搜索可以搜全网,也就是说别的站的资源他也能搜到相当于一个专门搜动漫的百度。并且我们访问的是移动端的网页,这也是为了加快速度而设计的,因为移动端的页面结构简单,加载速度快。但是美中不足的是,“更新日期”这项信息并没有出现在搜索结果上。
- 由于我们采用了多线程,所以相当于同时多开浏览器,如果内存只有2G的话,同时更新10部以上的动漫,系统可能会因为内存耗尽而卡死。
6.发布方式和发布地址
可运行的exe文件届时会发布在github项目地址上。
项目地址
Beta版本展示博客
1.团队成员简介
2.Beta阶段总结
- 典型预期用户
| 姓名 | 小明 |
| 性别 | 男 |
| 职业 | 学生 |
| 知识层次和能力 | 硕士 |
| 动机、目的、困难 | 动机、目的:喜欢看动漫 困难:记住不所追的动漫的更新日期及观看平台以及自己看到了哪一集 |
| 用户偏好 | 同时追多部动漫 |
| 用户比例 | 40% |
| 典型场景 | 想放松自己的时候忘记了想看动漫的观看平台 |
| 姓名 | 小王 |
| 性别 | 男 |
| 职业 | 程序猿 |
| 知识层次和能力 | 本科 |
| 动机、目的、困难 | 动机、目的:喜欢看动漫 困难:不想关心追番细节 |
| 用户偏好 | 偶尔看几部 |
| 用户比例 | 60% |
| 典型场景 | 休息时间,看几集动漫休息一下 |
目标用户使用情况

团队分工协作,经验教训
PM:负责组织开会、反馈、分配任务、撰写文档
dev:负责具体的开发
test:负责测试
这次的开发,由于我们爬虫的代码基本上是重写的,所以时间依旧很紧。所以导致,我们加班严重,所以,上次的团队成员对彼此的代码都不熟悉,因为时间都花在重构上了。幸好这次没有同学请假,但是这个问题还是存在的,特此说明。团队项目如何满足了用户的需求?
我们通过搜索并把相关信息添加到订阅列表的功能,让用户只用一次操作,以后都只用打开软件就能获取信息的方式,没有多余的操作,简单易用。团队如何平衡 时间/质量/资源 争取如期完成任务的?
由于Alpha版本的爬虫速度和搜索质量都不高,所以我们决定要大改,不能以大作业的态度来对待这次项目。我们迅速的查阅资料,然后从提高爬虫速度切入在网上看别人的经验,发现了两种加速方法,第一就是找网站提供的API说白了就是js调用服务端的接口,第二就是爬手机端的网页,因为手机端页面结构简单,加载速度快。然后我们分析了一下,第一找API估计是不可能了,工作量太大,爱奇艺这种级别的网站光js文件就好几个更别说找接口了。第二个方案可行,我们试了一下速度确实有很大的提高,但是页面结构全变了,所以代码要重写。然后就是多线程,这个方法是为了能更快的抓取订阅列表里面的动漫最新集数,如果一个一个来速度太慢了光靠爬虫是做不到的。我们Beta版就是着重改进了速度问题,不然用户体验极差。我们做的所有工作都是围绕这一目标进行的。- Beta具体改进
- 借用爱艺奇的搜索功能,能提供全网范围的搜索
- 爬取手机端网页优化速度
- 多线程爬取
项目实际进展

额……很尴尬,由于我们之前在讨论具体方案,直到4号才开始编码……所以燃尽图就是这个样子了。代码情况

AnimateSubscribe.py 是GUI的代码 176行
handleJson.py 处理Json文件的代码 127行
phantomjs.exe 是headless浏览器
spider_changed.py 是新版本的爬虫 111行
subscribe.json 是订阅列表存储文件
上面是我们的核心代码。如果新团队要接手的话,需要着重看爬虫和json文件处理,这是本项目功能的核心。代码的注释我们后面会补上。爬虫和json文件处理都封装的很好了,个函数之间的耦合性比较低,所以进一步开发不需要改动太多代码。项目展示

Beta阶段总结分析报告
1.事后诸葛亮会议报告
2.团队成员照片

3.团队成员在Beta阶段的角色和具体贡献
| 名字 | 角色 | 团队贡献分 | 可验证的贡献 |
|---|---|---|---|
| 黄亦薇 | PM | 21 | 撰写文档 |
| 赵坤 | dev | 23 | 爬虫处理json的代码编写 |
| 李世钰 | dev | 24 | GUI界面编写,整合代码 |
| 王成科 | test | 12 | 测试 |
Beta阶段报告的更多相关文章
- 高级软件工程2017第7次作业--团队项目:Beta阶段综合报告
Deadline:2017-11-06(周一) 21:00pm (注:以下内容参考集大作业8 集大作业9 集大作业10 ) 0.评分规则: 按时交 - 有分,内容包括以下5个方面: Beta阶段敏捷冲 ...
- 第七次作业:Beta阶段综合报告(Java-Team)
团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://github.com/WHUSE201 ...
- 高级软件工程2017第7次作业--C++团队项目:Beta阶段综合报告
1.Beta阶段敏捷冲刺每日报告 Bate版敏捷冲刺报告--day0 Bate版敏捷冲刺每日报告--day1 Bate敏捷冲刺每日报告--day2 Bate敏捷冲刺每日报告--day3 Bate敏捷冲 ...
- Beta阶段总结分析报告
1 讨论照片 2 Postmortem结果 二手交易平台项目Postmortem结果 整理:程环宇 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有 ...
- Beta阶段敏捷冲刺报告-DAY5
Beta阶段敏捷冲刺报告-DAY5 Scrum Meeting 敏捷开发日期 2017.11.6 会议时间 12:00 会议地点 软工所 参会人员 全体成员 会议内容 乱序问题的解决,异常输入提示 讨 ...
- Beta阶段敏捷冲刺报告-DAY4
Beta阶段敏捷冲刺报告-DAY4 Scrum Meeting 敏捷开发日期 2017.11.5 会议时间 11:30 会议地点 羽毛球场 参会人员 全体成员 会议内容 bug的原因讨论, 测试内容安 ...
- Beta阶段敏捷冲刺报告-DAY3
Beta阶段敏捷冲刺报告-DAY3 Scrum Meeting 敏捷开发日期 2017.11.4 会议时间 12:30 会议地点 软工所 参会人员 全体成员 会议内容 当天任务确认,进度调整, 讨论时 ...
- Beta阶段敏捷冲刺报告-DAY2
Beta阶段敏捷冲刺报告-DAY2 Scrum Meeting 敏捷开发日期 2017.11.3 会议时间 13:00 会议地点 微信群 参会人员 项目组全体成员 会议内容 打包问题修复, 爬虫优化, ...
- Beta阶段敏捷冲刺报告-DAY1
Beta阶段敏捷冲刺报告-DAY1 Scrum Meeting 敏捷开发日期 2017.11.2 讨论时间 20:30 讨论地点 下课路上以及院楼侧门 参会人员 项目组全体成员 会议内容 附加功能讨论 ...
随机推荐
- Android中的Socket
1. UDP (1)访问网络必须添加权限,访问网络必须添加权限,访问网络必须添加权限,重要的事情说三遍. (2)简述 UDP协议是面向报文的,简单地说,利用UDP访问网络的步骤就是"寄快递& ...
- 【SPOJ】Substrings(后缀自动机)
[SPOJ]Substrings(后缀自动机) 题面 Vjudge 题意:给定一个长度为\(len\)的串,求出长度为1~len的子串中,出现最多的出现了多少次 题解 出现次数很好处理,就是\(rig ...
- [HAOI2008]木棍分割
题目大意 网址:https://daniu.luogu.org/problemnew/show/P2511 题目大意: 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连 ...
- 构造方法里的super()方法
为什么经常会遇到有的构造函数会有super(),而有的却没有,其实super就比如 对数函数,log的底数为10,如果为10 ,我们可写可不写,如果不为10,那么我们就要加上底数 在子类构造方法中,s ...
- SQL Server 历史SQL执行记录
编程执行Sql语句难免忘记保存执行的文本,或是意外设备故障多种情况的发生.对于写的简单的Sql语句丢了就丢了,但对于自己写的复杂的丢失就有些慌了, 有时候很难再次写出来,这时候就需要用一些方法找回Sq ...
- C++学习-4
1.一个类重写了operator(),可以f()-相当于匿名对象-f()()相当于调用operator()函数 把对象名当成函数名来使用--伪函数 2.通过成员函数创建多线程 a) 可以用成员函 ...
- 使用NPOI导出Excel引发异常(IsReadOnly = “book.IsReadOnly”引发了类型“System.NotImplementedException”的异常)
前言: 本人调式npoi导入.导出试用成功后,引入到项目中,导入完美运行,但是导出怎么样都看不到现在的页面,而且浏览器和后台都没有报任务错误,让人好事纳闷,后来去调式,发现在除了一个IsReadOnl ...
- Openstack Pycharm 的远程调试
问题背景 最近再研究openstack cinder api的时候遇到了个问题:使用命令行调用API的时候,使用domain的token时,会产生一个错误,但是通过cinder的api都无法确定产生错 ...
- Ubuntu14.04 设置wifi热点
Ubuntu14.04 设置wifi热点 $ sudo add-apt-repository ppa:nilarimogard/webupd8 $ sudo apt-get update $ sudo ...
- springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法
springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...