APP测试和Web测试的区别

时间:2023-01-10 18:48:40

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、邮箱地址格式不正确,正确格式 [email protected]

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实现设置。

 升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了