一、项目名称:百度网盘APP
二、项目描述(系统名称+主要功能+系统优点,控制在4-6行左右。)
百度网盘APP,是一款提供在线存储服务的软件,向用户提供文件的存储、下载、备份、同步及共享等文件管理功能,还为用户提供了消息队列及通讯录功能,对其所包含的功能进行了汇总为用户提供了工具管理。网盘通过云储存数据,不会占用本地内存。网盘不用随身携带。网盘可以在线分享数据及进行一些在线操作。
三、项目的测试工作(与上一个实施的项目对比有啥不一样的地方?应该如何进行测试?)
【仅有需求文档】拿到需求相关文档,阅读需求,把需求里面不明白、不清楚的整理出来,先结合需求文档前后分析这些业务问题,再搜索一些业务知识点整理到excel表里面。实在拿不准的需求项目经理进行确认。最终形成一个excel表。(文档测试)
【仅有程序】安装署上,在系统正常运行的前提下(冒烟测试),开始录入数据,整理了解系统的大小功能,特别是系统的主要业务即主要功能,通过不断操作了解系统,把不明白、不理解的整理到excel表里面,然后项目经理进行需求确认。
四、分析系统架构(分析一下系统的架构,该系统有几个端?为什么要这样设计?不明白的可以问项目经理?)
一般分析系统的部署架构,主要从以下三个方面入手进行分析?
硬件环境:CPU?内存?磁盘?整机型号?
软件环境:平台(操作系统)?中间件?数据库?开发语言?
部署方式:集式(分布式)?
(1)百度搜索引擎部署图(B/S)
(2)集部署与分布式
集:同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,做同一件事情)
集的好处:本来只有一个人在干活,现在有两个人了,分担了压力。要是有一人请假
了,没关系,还有另一位在呢。(提升系统的稳定性和安全性)
例如:你开了家小餐馆,由于资金有限,只聘请了一位厨师张工,配菜切菜备料炒菜张工一个人全包了。后来生意越来越好了,张工根本忙不过来,于是再请了一位厨师李四,张工和李四两人一起负责厨房一切事宜,他俩的关系是集。张工有时候有事请假了,没事,还有李四在。
分布式:一个业务分拆多个子业务,部署在不同的服务器上。
分布式的好处:系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。
例如:为了让张工李四他们专心炒菜,又请了个配菜师杨工来分担工作,主要负责切菜,备菜,备料,共同完成厨房的事务。杨工和张工李四他们是分布式。
(3)百度网盘业务架构
类型
平台(操作系统)
软件
硬件
开发语言
部署架构
备注
Web端
CentOS7
(1)系统部署:
Weblogic
mysql存储文档mysql
(2)大数据服务:
Hadoop
hbase
戴尔(DELL) R740丨R750丨2U机架式服务器:处理器10核20线程。内存:8G内存,硬盘:5PB SATA硬盘
java
集式部署
Hadoop解决日益增加的文件存储量和数据量瓶颈。
Hbase:非关系型数据库,适合于hadoop这种分布式计算框架,处理大量数据。
PC端
Windows系统、Mac系统
.exe安装包,.dmg安装包
普通PC机
java
移动端
Android系统
.apk安装包
手持移动设备
java
备注:
第一、在集上面部署hadoop,它是一个开源的大数据框架,是一个面对大量数据处理和存储数据解决方案/工具。
第二、Hadoop两个核心组件:
HDFS(分布式文件系统):
(1)专为存储数百兆字节或千兆字节的大型文件而设计(TB,PB)(如果小文件尽量使用RDBMS和Apache HBASE工具);
(2)会自动检测给定组件是否发生故障,传输过程中的磁盘、交换机等组件,良好的数据备份机制;
(3)HDFS里面的NameNode,当扩展新节点时,NameNode能自动感知进行数据分发和备份到相应新节点。
MapReduce框架(分布式计算问题、编程模型):有两个方法Map方法和Reduce方法。
Map:每个文件分片由单独的机器去处理,这就是map的方法,将各个机器的计算结果汇总得到最终结果,这就是Reduce的方法。
数据拆分需求:以下正常文件方可以进行拆分。
(1)上传视频、其他格式文件:最小块5MB,不足5MB,正常按一个进行计算。
(2)上传音频文件:最小块3MB,不足3MB,正常按一个进行计算。
(3)上传图片文件:最小块2MB,不足2MB,正常按一个数据块计算。
(4)上传文档、种子文件:最小块1MB,不足1MB,正常按一个数据块计算。
(5)损坏文件或其他非支持格式则不进行拆分。   
测试时需要查看hadoop里面Mapreduce的运行日志里面的拆分的数据库就可以了,一般情况下10MB的视频,在日志里面会有两个5MB的数据库记录。
Hadoop缺点:不适合大量小文件存储;文件修改效率低。
HDFS适合一次写入,多次读取的场景。
当传送数据量大,高数据吞吐量做了优化,牺牲了获取数据的延迟。
HBase:一个建立在HDFS之上的NoSQL(非关系型)数据库。
Sqoop将HBase里面的数据同步到mysql数据库里面。
文件上传过程(一个节点的处理过程)
文件上传和下载过程,百度网盘如何做到快速响应的。
第一、上述只有是一个节点:均衡负载器(DNS负载均衡)进行任务分配。分配给对应的服务器。
第二、Volume Block:百度网盘中数据拆分工具,对传输的数据进行拆分,拆分成一个一个数据块。然后实现高效传输。好比进程和线程的理解一样。
第三、Block Group:百度网盘中数据聚合工具,对成功上传的拆分数据进行聚合,聚合成功后进行保存,并通过客户端显示上传成功。
五、分析项目核心业务流程(系统的应用背景,给什么用户使用?怎么使用?系统的核心业务有哪些?分析出基本业务流程?)
(1)主要功能:上传、下载、相册备份     当前版本:v7.29.5
(2)系统业务交付:
正常上传需要选择上传文件或文件夹、文件类型及储存路径,上传成功。正常下载需要选择下载的文件及储存路径,下载成功。相册备份需要选择相册,打开自动备份,是否使用手机流量备份照片,备份成功。
(系统的基本业务流程,从业务的发起|业务的入口,到业务的完成 业务的出口,考虑所有环节都正常情况)
六、划分系统的测试范围
参考《百度网盘测试任务分配》
七、测试的分析与设计
模块名称:传输
测试点名称:上传(特测试点|公共测试点)
测试需求:
1. 正常上传需要选择上传文件或文件夹、文件类型及储存路径,上传成功。
(系统的基本业务流程,从业务的发起|业务的入口,到业务的完成 业务的出口,考虑所有环节都正常情况)
2. 上传类型分为文件上传和文件夹上传,文件夹上传成功后,目录结构不变,子文件夹及其文件都会上传
3. 文件格式
①图片类文件格式:JPG、JPEG、PNG、GIF、BMP、TIFF、SVG等常见的图片文件格式,以及一些原生的图像格式,如PSD、AI等。
②文档类文件格式:DOC、DOCX、XLS、XLSX、PPT、PPTX、PDF、TXT、RTF、CSV、HTML、XML、EPUB等。
③视频类文件格式:MP4、AVI、MOV、WMV、FLV、MKV、M4V等常见的视频文件格式,以及一些高清视频格式。
④音频类文件格式:MP3、WAV、FLAC、AAC、M4A、WMA、OGG等常见的音频文件格式,以及一些专有音频格式。
⑤压缩文件格式:RAR、ZIP、7Z、TAR、GZ等常见的压缩文件格式,可以方便地上传和下载压缩包。
⑥可执行文件格式:EXE、APK、MSI等可执行文件格式。
⑦种子类文件格式:种子文件以.torrent为扩展名
支持不同类型文件组合上传。
4. 文件上传大小
①免费用户/娱乐套餐/备份套餐情况下单文件最高达4G
工作套餐情况下,单文件最高达10G
③盘超级会员情况下会根据会员等级来进行限制,超级会员V1/V2最高可上传300G大文件,超级会员V3/V4最高可上传500G大文件,超级会员V5/V6最高可上传800G大文件,超级会员V7最高可上传1024G大文件,超级会员V8最高可上传1200G大文件,超级会员V9最高可上传1500G大文件,超级会员V10最高可上传2048G超大文件
④如果文件大小为0B,不支持上传。
5. 批量上传文件
①免费用户/娱乐套餐/备份套餐情况下批量上传文件的总数量最高达500个。如果已经上传300个,就不能在上传500个,最多只能在上传200个。
②网盘超级会员/工作套餐情况下批量上传文件的总数量无数量上限。网盘超级会员情况下支持并发上传。工作套餐情况下不支持并发上传。
6. 百度网盘支持上传损坏的文件,但上传后的损坏文件无法正常使用或打开。用户将损坏的文件上传到百度网盘时,网盘会将该文件存储在云端,但并不会对损坏文件进行修复。文件损坏可能是文件属性不完整或数据不完整、包含病毒或被病毒感染。
7. 文件在上传的时候被占用会造成无法上传,关闭文件重新上传即可。
8.在上传文件时,可能会发生文件损坏或丢失的情况,可以尝试重新上传文件、使用文件修复工具或与百度网盘。
9. 在同一台设备上同时进行多个上传操作,或者在不同设备上使用同一个账号同时进行上传多个文件时,可能会导致文件名相同或存在冲突的情况。百度网盘检测到文件名冲突时,它会自动重命名文件,添加一个唯一的后缀或编号,以避免文件的覆盖或丢失。
10.    上传过程中遇到空间已满会暂停上传,空间清理后可以继续上传。
11.    上传过程中遇到断网或连接不稳定时间较长会暂停上传,修复好网络状态后可以继续上传。
12.    上传过程中遇到意外关闭客户端会暂停上传,再次打开后可以继续上传。
13. 在弱网环境(2G:15~20KB;3G:150~600KB;4G:1.5M~10M)下,上传正常进行,不会报错或上传失败。
14. 数据拆分需求
    MapReduce框架(分布式计算问题、编程模型):有两个方法:Map方法和Reduce方法。Map:每个文件分片由单独的机器去处理,这就是map的方法,将各个机器的计算结
果汇总得到最终结果,这就是Reduce的方法。测试时需要查看hadoop里面Mapreduce的运行日志里面的拆分的数据库就可以了,一般情况下10MB的视频,在日志里面会有两个5MB的数据库记录。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。