模型
瀑布模型,敏捷模型
常用敏捷开发模型:
Scrum:
发布
灰度发布:由于一个项目,一般线上部署时有多台服务器运行,所以灰度1台至3台,看看新功能是否OK,如果失败则只需要回滚几台,比较方便。
需要安装软件包(移动端,电脑端)
格式:
安卓:xxx.apk
IOS:xxx.IPA
自己如何获取: 内测平台
例如:
蒲公英、Testlink
如何发给用户: 通过不同的发布渠道和平台
例如:
安卓:应用宝,360手机助手,某品牌手机商店
IOS:App store、iTools
专项测试
功能测试:
兼容性测试:
手机型号、系统版本、分辨率、屏幕尺寸、网络(3G,4G,5G,WIFI)、应用兼容性(硬件,软件,操作系统设置)
安装、卸载、升级测试
PUSH测试
用户体验测试
安装测试测试点
正常场景:
在不同的操作系统版本上安装
从不同的安装渠道安装(APP商城、手机助手直接下载apk或者ipa文件安装
不同的安装路径(安装到手机上、安装到SD卡)
异常场景:
安装时出现异常(关机、断网),恢复后能否继续安装
安装时存储空间不足
安装时手动取消后再次安装
正在运行时覆盖安装
低版本覆盖安装高版本
卸载后安装
卸载测试点
正常卸载(APP手动卸载、工具卸载)
运行时卸载
取消卸载(第三方软件、二次弹窗后取消)
卸载异常中断(关机)
卸载后无数据残留(给用户提示确认,可保留,可删除/不做提示,默认清空数据)
升级测试点
从临近版本升级
跨版本升级(当前版本N,N-2\)
不同渠道升级(应用商场、手机助手)
升级提醒成功(可不提醒、可以提示升级、强制升级)
应用内升级时非WIFI提醒
交叉事件测试点
APP运行时接打电话
APP运行时收发信息
APP运行时查看应用推送
APP运行接上蓝牙设备
APP运行时接收文件弹窗提醒
APP运行时旋转屏幕
APP运行时切换网络(4G、Wi-Fi)
App运行时使用相机、计算器等手机自带应用
App运行时电量告警、插拔充电器
push消息推送
用户体验测试
UI界面测试(原图对比)
横竖屏测试
易用性测试(菜单是否过深,步骤是否过多)
关于手机应用上的其他辅助功能(放大字体,反色,语音转换)
性能测试
SoloPi软件:是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。
作用如下:
基础性能测试
录屏回放
一机多控
指标:(CPU、内存、流畅度、流量、电量、启动速度、稳定性)
内存:
Private dirty(私有内存):进程独占内存,也就是进程销毁时可以回收的内存容量。
PSS(实际使用内存):
将跨进程共享页也加入进来,进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。
问题:
内存泄漏:
内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
内存溢出:
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory
memory leak会最终会导致out of memory!
CPU
一般公司回定义一个基线,不要一直超过基线就是没问题的。
没有基线一般为80,经常超过90就有问题了。
问题:手机发烫,页面卡顿,电量消耗快
流量/电量
流量测试:必须要在真机上测试,还要有流量卡。
电量测试:必须要在真机上测试。
问题:
使用了多长时间,消耗了多少流量。
使用了多长时间,消耗了多少电量。
流量优化:
1、数据压缩
2、不同数据格式的采用
3、控制访问频次
4、只获取必要的数据
5、缓存机制
6、针对网络类型设置不同的访问策略
启动状态
冷启动:APP离线的状态下启动
热启动:AP!后台运行的状态下启动
格式:adb shell am start -W包名/Activity名(com.tpshop.malls/com.tpshop.malls.SplashActivity)
流畅度
帧数:
大脑反应是连续的(10-12帧)
流畅(至少24帧)
流畅最佳(60帧)
稳定性
通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。
问题:闪退crash、无响应、ANR等。
测试工具:Monkey
注意:性能数据监控。日志收集。
APP常用命令
ADB(Android Debug Bridge):是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具。
ADB可以用来ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等
基本操作
命令 | 作用 | |
---|---|---|
adb devices | 查看已连接设备列表 | |
adb disconnect 手机IP | 断开连接设备 | |
adb connect | 连接设备(手机和电脑处于同一网段) | |
adb start-server | 开启adb服务 | |
adb kill-server | 关闭adb服务 | |
adb shell pm list packages | 列出手机所有包名 | -3 第3方软件 -s 系统应用 |
adb shell dumpsys window 管道符 findstr mCurrentFocus | 列出手机当前窗口包名(安卓) | |
adb shell dumpsys window 管道符 grep mCurrentFocus | 列出手机当前窗口包名(mac/Linux) |
安装/卸载操作
命令 | 作用 | |
---|---|---|
adb install -r (APK路径) | 安装软件 | -r :如果apk已安装,重新安装apk并保留数据和缓存文件 |
adb uninstall app的包名 | 卸载软件 |
清除缓存
命令 | 作用 |
---|---|
adb shell pm clear 软件包名 | 清除缓存 |
停/启应用
命令 | 作用 | |
---|---|---|
adb shell am start 软件包名/Activity名 | 启动 | -W 获取启动时间 -S 启动前先强行停止 -R 重复测试次数 |
adb shell am force-stop (apk包名) | 停止 |
获取软件性能信息
命令 | 作用 | |
---|---|---|
adb shell dumpsys meminfo 软件包名 | 获取当前内存占用情况 | 建议使用工具 |
adb shell dumpsys cpuinfo | 获取当前cpu信息 | 建议使用工具 |
adb shell top -s cpu | 持续获取CPU信息 | 模拟器使用:adb shell top -s 9 |
获取APP使用流量:
1.获取userId (返回数据为userId=)
adb shell dumpsys package 包名 | findstr userId
2.获取上行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId(上面获取的)/tep_snd
3.获取下行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId(上面获取的)/tcp_ rcv
Monkey测试(稳定性测试)
格式: adb shell monkey -p 包名 数字 -v >本地文件
注意:
-p:指定包名(所有命令都在此包内执行,如不指定,则在整个系统内执行)
-v:log详细程度(最高支持’-v-v-v’最详细日志)
–throttle:单步延时(每步操作间隔,单位毫秒)
–pct-touch:点击事件
扩展: