App测试web测试的区别
单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的
根据两者载体不一样,则区别如下:
1、系统结构方面
web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新
app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍
2、性能方面
web项目 需监测 响应时间、CPU、Memory
app项目 除了监测 响应时间、CPU、Memory外,还需监测流量、电量等
3、兼容方面
web项目:
1. 浏览器(火狐、谷歌、IE等)
2. 操作系统(Windows7、Windows10、OSX、Linux等)
app项目:
1. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)
2. 手机设备可根据 手机型号、分辨率不同
4、相对于 Wed 项目,APP有专项测试
1. 干扰测试:中断,来电,短信,关机,重启等
2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
3. 安装、更新、卸载
安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况
卸载:需考虑 卸载后是否删除app相关的文件
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
5、测试工具方面
自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
6. 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
7. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
8. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
9. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
一、**测试点
以等价类划分和边界值法来分析
1、用户名字和密码都为最大长度 (边界值分析,取上点)
2、用户名字和密码都为最小长度 (边界值分析,取下点)
3、用户名字和密码长度在最大和最小长度之间(边界值分析,取内点)
4、必填项分别为空**
5、用户名最大长度+1(边界值分析,取离点)
6、用户名最小长度-1 (边界值分析,取离点)
7、密码最大长度+1(边界值分析,取离点)
8、密码最小长度-1(边界值 分析,取离点)
9、用户名含有非法字符**(这个可以划分几个无效的等价类,如空格,#等,看需求是否允许)
10、密码含有非法字符**(这个可以划分几个无效的等价类)
11、两次输入密码不一致(如果**时候要输入两次密码,那么这个是必须的)
12、重新**存在的用户
13、以已经**的用户名(改变大小写)来**。(有的需求是区分大小写,有的不区分)
14、看是否支持Tab和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示
15、邮箱地址格式不正确,正确格式 ---@---.com
16、验证码错误(大小写、空值、错误输入等)
二、登陆测试点
1、 用户名和密码都正确
2、用户名和密码都错误
3、 用户名正确和密码错误
4、 用户名错误和密码正确
5、用户名或密码为空
6、删除的用户名和错误密码
7、删除的用户名和正确密码
8、未**用户名和错误密码
9、用户名或密码中插入空格
10、使用Tab,Enter键是否能登陆
11、写改变用户名或密码的大小登陆
12、用户名和密码中含有全角字符登陆
13、Web系统是否有超时的限制
14、登陆错误次数是否限制
15、密码的安全性是否有强中弱鉴定
三、修改密码测试点
1、不输入旧密码,直接改密码
2、输入错误旧密码
3、不输入确认新密码
4、不输入新密码
5、新密码和确认新密码不一致
6、新密码中有空格
7、新密码为空
8、新密码长度为最大长度
9、新密码为最大长度与最小长度之间
10、新密码长度为最小长度
11、新密码为最大长度+1
12、新密码为最大长度-1
13、新密码为最小长度+1
14、新密码为最小长度-1
15、新密码为非法字符(如有的密码要求必须是英文和数字组成,如中文汉字)
16、检查是否支持Tab和Enter键等;密码是否可以复制粘贴;密码是否以* 之类的**符号
17、检查密码是否区分大小写,新密码中英文小写,确认密码中英文大写.
18、新密码与旧密码一样能否修改成功。
四、添加测试点
1、要添加的数据项均合理,检查数据库中是否添加了相应的数据
2、留出一个必填数据为空
3、按照边界值等价类设计测试用例的原则设计其他输入项的测试用例
4、不符合要求的地方要有错误提示
5、是否支持table键
6、按enter是否能保存
7、若提示不能保存,也要察看数据库里是否多了一条数据
五、 删除测试点
1、删除一个数据库中存在的数据,然后查看数据库中是否删除
2、删除一个数据库中并不存在的数据,看否有错误提示,并且数据库中没有数据被删除
3、输入一个格式错误的数据,看是否有错误提示,并且数据库中没有数据被删除。
4、输入的正确数据前加空格,看是否能正确删除数据
5、什么也不输入
6、是否指出table键
7、是否支持enter键
六、查询测试点
精确查询:
1、输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据
2、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
3、输入格式或范围不符合要求的数据,看是否有错误提示
4、输入数据库中不存在的数据
5、不输入任何数据
6、是否支持table键
7、是否支持enter键
模糊查询:
在精确查询的基础上加上以下一点:
1、输入一些字符,看是否能查出数据库中所有的相关信息
功能测试自动化
a) 轻量接口自动化测试
jmeter,
b) APP UI层面的自动化
android:UI Automator Viewer,Android Junit,Instrumentation,UIAutomator,
iOS:基于Instrument的iOS UI自动化,
性能测试
a) Web前端性能测试
网络抓包工具:Wireshark
网页文件大小
webpagetest
pagespeed insight
chrome adb
b) APP端性能测试
Android内存占用分析:MAT
iOS内存问题分析:ARC模式
Android WebView性能分析:
iOS WebView性能分析
c) 后台服务性能测试
负载,压力,耐久性
可拓展性,基准
工具:apacheAB,Jmeter,LoadRunner,
专项测试
a) 兼容性测试
手工测试:操作系统,分辨率,rom,网络类型
云平台:testin,脚本编写,Android。
b) 流量测试
Android自带的流量管理,
iOS自带的Network
tcpdump抓包
WiFi代理抓包:Fiddler
流量节省方法:压缩数据,json优于xml;WebP优于传统的JPG,PNG;控制访问的频次;只获取必要的数据;缓存;
c) 电量测试
基于测试设备的方法,购买电量表进行测试。
GSam Battery Monitoe Pro
iOS基于Instrument Energy工具
d) 弱网络测试
手机自带的网络状况模拟工具
基于代理的弱网络的模拟:
工具:windows:Network Delay Simulator
Mac:Network Link Conditioner
随着手机应用的不断状态,同一款产品的移动端应用市场占相较PC端也越来越大,那么app与PC端针对这些产品的测试有什么相同与不同之处呢?笔者总结如下:
a、首先谈一谈相同之处
一,针对同一个系统功能的测试,三端所测的业务流程是一样的
二,一般情况下手机端和PC端都对应一套后台服务,比如说笔者公司所开发的互联网金融平台,整个平台做了分布式服务架构,后台服务包括用户服务、交易服务、产品服务等。PC和手机端测试以上三个流程时,调用的都是同一个后台服务。(注:也有一些功能,比如PC与手机端展示不一致,或者有什么特殊处理,这样情况下后台会写两套不同的接口来处理对应的业务需求)
不同之处
PC、APP、H5三端测试的相同与不同
一,测试平台(容器)不同:
pc项目都是在电脑上进行测试的:常见的PC项目架构有BS架构和CS架构的,BS架构就是通过浏览器(browser)请求后台服务(server),后台返回到响应内容显示在浏览器上,常见BS架构的项目有天猫、京东等浏览器输入地址就可以访问。CS架构的项目比如QQ、微信等,需要在电脑下载客户端(client),客户端与后台服务器(server)进行数据传输交互。基于以上信息,PC端测试都是在电脑上,要么是在浏览器上测试要么安装对应客户端。平台都是电脑
app测试平台分为安卓和IOS端:安卓测试需要在安卓手机上安装开发提供的apk测试包;
IOS测试需要将手机UUID提供给开发安装ipa测试包进行测试;
H5测试就是测试HTML5页面:在PC或者手机浏览器都可以直接访问H5页面
二,兼容性测试不同:
基于以上测试平台的不同,三端的兼容性也不一样。
PC的兼容性主要包括各浏览器和不同操作系统,目前笔者所经历的公司主要测试了不同主流版本浏览器的兼容性,还未涉及操作系统层面
APP的兼容性包含安卓和IOS不同机型,不同版本,不同屏幕都要适配
H5的兼容性主要测试手机端的不同浏览器的兼容性
三,系统架构不一样
PC和H5端项目尤其是WEB项目对应一个后台服务,所有客户访问的都是同一个后台。上线测试时,直接访问线上地址测试即可
APP测试虽然对应了一个后台,但是不同的用户可能下载了不同版本的客户端,上线测试时,需要兼容每个版本的测试。
四,发布流程不同:
PC端每次更新发布,需要将测试通过的包替换线上包,重启服务后立刻生效,访问的就是最新的环境
H5由于是一些html5网站发布上线后无需重启即可访问
APP端需要向应用市场发布,安卓发布的市场有很多,应用宝、豌豆荚、应用商店等每个应用都需要单独审核;IOS端应用比较单一就是appstore。从提交、审核到发布会有几天的时间间隔,开发的应用包不会立刻发布。
五,专项测试
除以上不同外,app端还有一些专项测试:
性能方面:响应时间、流量测试和耗电量测试
安装测试(PC端web项目不用测试,CS架构的也需要考虑)
交叉测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件
操作类型:手势测试、横屏竖屏
网络测试:包含弱网和网络切换测试,重点要考虑回退和刷新是否会造成二次提交。弱网络的模拟,据说可以用360wifi实现设置。
升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了