功能测试
功能点测试
测试个模块的业务功能是否正常,app前端与后端数据交互是否正常,页面显示是否正常等。
业务逻辑测试
测试各关联业务的业务流是否正常,异常情况下处理方式是否正确,也要特别关注一些关联和交互性的测试,比如与pc端的交互,客户端被打扰的测试,待机和插拔数据线的测试,前后台切换是否正常等。
也包括业务场景测试 ,比如弱网状态测试,网络切换测试等。
安装、卸载测试
直接安装
覆盖安装(新版覆盖旧版,旧版覆盖新版、同版本覆盖安装)
第三方软件辅助安装和卸载(不同第三方应用市场覆盖安装)
安装退出
安装协议、权限
升级测试
第三方应用市场升级
app内升级
选择不升级
适配性测试
对外:硬件、软件
不同品牌、不同型号、不同系统、不同屏幕尺寸、不同芯片、不同定制OS
对内:是否影响其他app
性能测试
服务端性能:
app本身性能:
耗电量
流量(没有标准,竞品对比)
第一次启动、第二次启动、热启动、冷启动
大量图片的页面加载
稳定性测试
通过adb命令或者monkey等工具对app进行长时间的稳定性测试
安全性测试
第三方工具跳出的提示禁止,是否会影响业务流程的正常进行
敏感信息泄露,手机通讯录、照片、视频
服务器接口安全性
账号安全性
文件及目录权限
扣费风险
易用性测试
包括用户操作、界面领域的测试。
如:操作步骤、菜单是否符合用户习惯、界面布局是否合理、界面是否美观、整体风格一致
单手操作
横竖屏切换
常用的ADB命令
SDK:软件开发工具包
ADB:一个工具集,PC与手机建立连接的桥梁
SDK环境配置:
下载后解压,配置环境变量。
手机连接电脑:
打开开发者模式,使用USB线连接。没有真机可以使用模拟器。
-
连接:adb connect ip地址:端口号
-
查看设备:adb devices
-
查看设备状态:adb get-state
offline
unknown
device -
查看日志:adb logcat
用ctrl+c结束
把日志保存到本地:adb logcat > d:log.txt
安卓手机日志4各缓冲区:
radio:通讯相关的日志
system:系统相关的日志
main:应用相关的日志,默认查看此日志
event:按键相关的日志
四种日志级别:
D:DEBUG
I:INFO
E:ERROR
W:WARNING
设置日志输出级别:adb logcat *:E
指定日志输出缓冲区:-d参数
-
adb bugreport
-
安装app:adb install apk包的路径
adb install d:/xxx.apk -
卸载app:adb uninstall [-k] packgename
应用包名找开发咨询 -
从电脑向手机传文件:adb push 电脑文件 手机目录
adb push d:pushlog.txt /dev -
从手机拷贝文件到电脑:adb pull 手机文件 电脑目录
adb pull /dev/log/log.txt d: -
截屏:adb shell screencap -p 路径/名称
adb shell screencap -p /sdcard/1.png -
adb shell 进入shell
查看分辨率
查看电池信息
查看CUP信息
查看应用耗电量
获取系统版本号
重启设备
iOS和Android的APP测试区别
从功能上区分
- 物理按键
Android:独有3个物理按键的功能(菜单,主页面,返回),尤其是返回键,是一定要测试的功能点
iOS:所有的返回上一层,只能靠页面功能实现
- 安装
生产环境:
Android:可以通过各个手机自带的应用市场或者是第三方的手机助手进行下载
iOS:APP store和iTunes
测试环境:
Android:开发或者测试将源码打包成apk文件,即可随意安装
iOS:可以使用Apple官方平台testflight,或者是开发直接给你安装好
- 兼容性
系统兼容性:
Android:版本居多,还有不同手机型号的定制版系统
iOS:版本相比较Android偏少
分辨率兼容性:
Android:分辨率多达20多种
iOS:相比较Android偏少
- 原生技术支持
Android:以微信举例,长按删除,置顶聊天等操作,左滑则会进入到通讯录菜单
iOS:以微信举例,长按没有任何反应,左滑则会出现标记未读和删除操作
- 支付方式
Android:对于一些有内购功能的APP,Android是直接调用第三方支付渠道的
iOS:需要先在你的APP store里绑定你的支付方式,然后通过APP store去完成支付操作
PS:Apple对于一些非官方的支付渠道是不允许上架的
从系统底层上区分
- 运行机制
Android:虚拟机运行机制
1、所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件
2、所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡了
ps:补充知识,手机中的RAM和ROM,可以分别对应电脑的内存和硬盘这么理解
iOS:沙盒运行机制
1、每个程序都有自己的虚拟地址空间。所以,程序之间是都不能进行访问
2、默认只会将应用的最后运行数据,记录在RAM里面
- 程序后台运行机制
Android:任何程序都可以在系统后台运行
iOS:第三方程序不能在系统后台运行
- 消息推送渠道
Android:可以使用第三方或者自建平台进行消息推送,但是一般都是使用第三方的
iOS:消息推送渠道由苹果官方提供的
- 页面渲染机制
Android:系统的优先级响应层级为:Application-->Framework-->Library-->Kernal,而Android系统的图像处理这部分功能是属于Library层的。
所以,当你触摸屏幕之后Android系统首先会激活application应用,然后是framework框架,然后才是Library屏幕,最后是Kernal核心架构
iOS:系统的优先级响应层级为:Touch-->Media-->Service-->Core,而IOS系统的图像处理这部分功能是属于Touch层的。
所以,当你触摸了屏幕之后,系统就会最优先去处理Touch层,然后才是Media媒体,Service服务以及核心Core。
- 系统的开源
Android:系统开源,有非常多的第三方测试工具可以辅助测试
iOS:系统非开源,严重依赖mac环境