目录
1.App应用架构
App客户端应用+应用服务器+数据库
1)App与Web端对比
相同点:
1 、APP和web使用的后端服务器是相同的
2、前后端都使用HTTP协议进行交互(也有部分APP用socket来交互)
不同点:
1、APP是C/S结构(C:客户端,app需要安装、更新、卸载;web浏览器是B/S结构(B:浏览器
2、APP前后端交互的数据格式以json为主,web前后端交互的数据格式以HTML为主
2.App环境
1)后端环境
一般公司内部开发、测试人员会使用不同的环境,以隔离工作过程中彼此之间的干扰。同时,上线给用户使用的产品也会单独部署环境。
①开发环境:指开发人员进行开发时调试运行的环境
②测试环境:提供测试人员使用,用于测试人员执行测试,回归缺陷。
③预发布环境:这个环境中,一般会连接生产环境的数据库,使用生产环境的数据来进行测试。
目的是测试最新的代码,应对线上复杂数据的处理情况。
注意:
1.针对基本业务进行测试
2.测试写业务,使用自己构造的数据。
3.升级时涉及到数据库的结构变化,必须将生产环境的数据备份到测试数据库来进行测试。
④生产环境:指正式提供对外服务的环境,产品的实际用户使用的环境
预发布环境过后,正式发布生产环境之前,一般会进行灰度发布。
灰度发布:由于一个项目,一般线上部署时有多台机器运行,所以灰度1台至三台,看看新功能是否OK,如果失败则只需要回滚几台,比较方便。
2)前端环境
APP开发完成后,相应的开发人员会打出应用程序包,由测试人员安装测试。
-安卓:APK测试包
-lOS:IPA测试包
①应用内测发布
在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上传到这些平台上,可以生成对应的二维码,直接扫码进行应用安装。
-蒲公英
-fir.im
②应用线上发布
产品测试完成后要在线上进行发布,让用户进行下载使用。
-安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;
-IOS应用:主要有App store、OTools
线上发布流程:
->Apk/ipa测试完成->提交应用市场审核->添加渠道号->渠道包测试->正式上线
3.App应用测试要点
4.兼容性测试
1)关注点
手机型号:主流机型,
系统版本:安卓系统、IOS系统,
屏幕尺寸/分辨率
网络:2/3/4/5G,WIFI
2)应用兼容性
①手机硬件兼容:home键、电源键、音量调节等
②外部硬件兼容:耳机、蓝牙等
③操作系统兼容:wlan设置、系统时间调节、LBS定位
④与其他APP兼容:后台播放音乐,与App中播放冲突
5.安装/卸载/升级测试
1)安装测试
正常场景:
1、在不同的操作系统版本上安装
2、从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)
3、不同的安装路径(安装到手机上、安装到SD卡上)
异常场景:
4、安装时出现异常((关机、断网),恢复后能否继续安装
5、安装时存储空间不足
6、安装时手动取消后再次安装
7、正在运行时覆盖安装
8、低版本覆盖安装高版本
9、卸载后安装
2)卸载测试
1、正常卸载(APP手动卸载、工具App卸载)
2、运行时卸载(远程卸载
3、取消卸载
4、卸载异常中断(关机
5、卸载后无数据残留
3)升级测试
1、从临近版本升级(v1.0->v1.1
2、跨版本升级(v1.0->v1.3
3、不同渠道升级(应用商场、手机助手)
4、升级提醒成功(可不提醒、可以提示升级、强制升级)
5、应用内升级时非WlFI提醒
升级后要观察升级前的数据正常(当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱)
6.交叉事件测试
交叉测试又叫冲突测试或者干扰测试。
是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。例如:在App前台/后台运行同时接听来电或者下载文件等等。
交叉事件测试关注点
如何测试:模拟用户场景(所有可能会影响APP正常运行的场景)
APP运行时接打电话、收发信息、查看应用推送、接上蓝牙设备、接收文件弹窗提醒、旋转屏幕、切换网络(4G、Wi-Fi)、使用相机、计算器等手机自带应用、电量告警、插拔充电器。
7.Push消息测试
1)消息推送场景:
产品角度:功能需要,如:资讯类产品的新闻推送、工具类产品的公告推送等等
运营角度:活动需要,如:电商类产品的促销活动;召回用户/提高活跃度等等
2)消息推送原理:
pull:客户端定期向服务器发出请求,有新消息就返回给客户端
push:服务器有消息就把消息推送给客户端(更省资源)
3)测试点
服务器配置:
1、Push消息是否按指定业务规则发送
2、当Push消息是针对特定用户时,检查收到的Push与用户身份是否相符;
手机配置:
3、设置不接收推送消息时,用户是否会收到Push消息;
4、设置push消息显示的位置,是否与配置一致。
5、收到push消息,是否能正常打开。
APP不同状态下push消息测试:
6、APP在前台使用时,收到push消息如何提示
7、APP在后台运行时,收到push消息如何提示
8、APP离线,是否能收到push消息。
8.性能测试
1)性能测试指标
2)性能测试工具——GT
性能测试工具GT的作用:
- 监控常见的性能指标:CPU、内存、流量、电量、流畅度
- 抓取 log日志
- 抓包
安装:
- 单独安装(APK,ios,无单独安装包)
- 集成SDK ( android,ios 都可以,集成到被测app代码)
使用:
安装:手机有root权限
(1)进入AUT界面,配置要监控的指标
(2)进入参数页面,选择要统计的参数,选择需要实时监控
的数据
(3)配置日志开头为logcat为on
(4)进入APP进行测试
(5)回到GT界面,在参数界面看查看监控指标的数据统计
(6)进入日志,查看响应的日志记录
3)指标介绍
①CPU
CPU出现问题的现象:
1 CPU使用长时间处于90%以上工
2手机发热、耗电量增加
3反应变慢、引起ANR (Application Not Responding)
②内存
指标:
- 私有内存:进程独占的内存,在进程销毁的时候同步回收私有内存
- 实际使用内存:除了私有内存以外,与其他进程共享的内存空间,在进程销毁的时候不能回收。
内存问题:
- 内存泄漏:内存泄露memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。(程序实际使用的内存PSS持续增长)
- 内存溢出:内存溢出out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。memory leak会最终会导致out of memory!(程序出现闪退)
③流畅度-FPS
1.想达到流畅的效果,至少需要每秒24帧
2.60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒
④流量-net
常用流量测试方法:
1.统计测试法
获取应用程序收发的数据报文,统计出对应的流量
2.抓包测试法
主要是利用工具Tcpdump或者fiddler抓包,导出 pcap文件,再在wireshark 中打开进行分析。
流量优化的方法:
>1、数揭压缩
>2、不同的数据格式
>3、控制访问的频率-
>4、只获取有效的数据
>5、缓存
>6、针对不同的网络情况使用不同的策略
⑤电量
⑥启动速度
-两种启动方式:
冷启动:指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动。
热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。
-测试方法:
使用命令adb shell am start -W -n包名/Activity名,查看App启动耗时。
三个重要时间指标:
Thistime:当前activity的时间
Totaltime: APP启动时间:包括创建进程、APP初始化、activity初始化到界面显示。
waittime: totaltime+前一个activity pause时间
9.用户体验测试
1)测试关注点
(1) ul界面测试
对照UI交互设计文档,检查每个界面设计菜单、对话框、窗口、风格、布局等
注意事项:图片、按钮(选中效果)、字体大小、颜色、居中对齐等等
(2)易用性测试
- 是否有空数据界面设计,引导用户去执行操作
- 菜单层次是否太深
- 交互流程分支是否太多
- 完成业务操作的步骤是否过多
- 界面中按钮可点击范围是否适中
- 是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义
(3)横竖屏测试
横竖屏的切换是否正常(针对每个页面都要做横竖屏测试)
特别要关注APP中有表格,因为横竖屏的显示宽度不一样
(4)关注手机应用上的其他辅助功能
可以重点关注"放大字体”、“反色”、“语音转换”、多点触碰等功能
10.稳定性测试
通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。
如闪退crash、无响应ANR等。
稳定性测试工具——Monkey
Monkey是一个命令行工具,是由安卓官方提供的。
测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现对APP压力的测试和稳定性测试。
开发人员结合monkey打印的日志和系统打印的日志,修改测试中出现的问题。
稳定性测试的时机
一般需要等产品稳定了,bug比较少的时候,再用monkey去测试待测试应用的稳定性。