转载自 http://blog.csdn.net/gantao754246624/article/details/77985073 侵删
常见测试点总结:
1.安装、卸载测试
主要针对编译后源程序生成的APK安装文件。
主要测试点:a.生成的APK文件在真机上可以安装及卸载;
b.Android手机端的通用安装工具,如:豌豆荚及91助手等工具可以正常安装及卸载程序。
2.在线升级测试
测试点:a.验证数字签名 b.升级后可以正常使用 c.在线跨版本升级
3.业务逻辑测试
业务逻辑测试:主要测试客户端业务能否正常完成
功能点测试:主要测试客户端功能点是否正常使用
关联性测试:主要测试客户端与PC端的交互,客户端处理完后,PC端与客户端数据一致
4.异常测试
主要包含了断网、断电、服务器异常等情况下,客户端能否正常处理,保证数据正常性。
5.交互性测试
客户端作为手机特性测试,包含被打扰的情况13种,来电,来短信,低电量测试等,还要注意手机端硬件上,如:待机,插拔数据线,耳机等操作不会影响客户端。
6.易用性测试
界面与交互性测试:符合android交互规范,符合用户使用习惯,操作方便简单,具有一致性。
可用性测试:用户体验好,用户操作方便,用户使用错误率低。
7.适配测试
手机不同分辨率支持:客户端支持800*480,960*540,1920*1280等;
手机不通版本的支持:4.0, 5.0, 6.0;在测试计划中,需要安排单独的时间用于android不同系统的兼容性测试,包括7.0版本等;
手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米收,华为输入法。是市场主流的系统及厂家不同型号的支持;
手机不通尺寸的支持:4.0到7.0屏幕在UI显示有区别的,要支持最大到最小。
解决方案:
a.自行购买或者使用借来设备来实际验证。耗费资金,购买几台。
b.第三方云测试的解决方法。
c.整理不兼容的地方,然后去分析app总可能不兼容的代码。对技术能力的要求比较高,前期也需要花费不少的时间。
d.利用友盟等第三方统计平台获得应用对应的TOP N 的记性重点进行测试。
8.客户端侧性能测试
偏重客户端侧CPU、MEM、流量、电量以及客户端在不同网络环境下响应速度等等。
大数据的测试:主要在特定环境下,客户端一次性更新大量的数据,客户端能否正常处理,分为三种情况:
a.客户端第一次使用,的一次就更新大量数据
b.客户端在平时更新中,更新大量的数据
c.客户端已经在手机本地下载很多数据后,再次更新大量数据。
9.电量与流量测试
手机的电量及流量测试主要是为了站在用户角度思考,毕竟电量、流量消耗比较大,会影响客户的使用感受。手机端量使用是和CPU使用率成正比的。由于这个没有比较详细的规定,只能出一个通用范围。CPU使用率不能超过10%以上,流量不要超过10M以上。一般通过android手机端一些监控软件获取数据。
当然也可以通过代码打点获取。
10.内存泄漏测试
OutOfMemory。
11.外网与场景测试
主要是模拟客户使用网络环境,检验客户端程序在实际网络环境中使用情况及进行业务操作。外网测试主要覆盖到wifi\3G\4G、net\wap、电信\移动\联通,所有可能的组合进行测试。
原则:a.尽可能全面覆盖用户的使用场景,测试用例中需要包含不同网络排列组合的各种可能; b.模拟信号被屏蔽时候,客户端的影响等; c.做外部场景测试,在高山、丘陵、火车上等特殊环境下进行全面测试。
12.APP性能测试分类
客户端:
a.应用测试(关注CPU、MEM、流量、GPU等)
b.ROM测试
c.其他(web页面,现在APP大多都是web页面)
服务器端:性能测试方法和WEB差不多
tips:客户端的测试其实比较推荐专用的硬件设备来,这样测出的数据更加准确,比如高速相机、功耗仪等
13.APP自动化测试分类
UI(robotium、Appium等)
接口
单元(junit、Robolectric等)
持续集成
tips:一句话,对编程要求高,逻辑性思维要求高
14.测试启动时间
a.代码里插入时间并打印Log.e
b.命令方式
adb shell
am start -W -n 包名/activity名
-W是指启动完成之后,返回启动耗时
c.秒表、高速相机
d.adb logcat
adb logcat >d:\log.txt
启动应用,待加载完成后ctrl+c停止
find "Displayed" d:\log.txt>d:\log1.txt
find "包名" d:\log1.txt>d:]log2.txt
15.代码静态扫描
代码扫描工具Lint,它能非常容易得帮米找出代码上的结构问题
具体的检察规则可以自定义(局部,全局)
lint --list 获得检查项id和简要说明
lint --show xxx 获得详细说明
jenkins:持续版本构建,与lint搭配使用
lint:检查已有规则规范
findbugs:针对java平台代码的检查
16.traceview
手机root,代码中埋点,加SD卡读写权限。通过monitor.bat打卡.trace文件。
Debug.startMethodTracing("路径"); //在oncreate方法中,开始埋点
Debug.stopMethodTracing(); //ondestroy中,结束
17.手机电量测试
a.利用硬件设备:比如耗电量测试仪
b.第三方软件来检测:手机自带电量监控、360助手、GT等
c.命令方式(5.0以上版本)
//初始化batterystats数据
adb shell dumpsys batterystats --reset
//得到整个设备的电量消耗信息
adb shell dumpsys batterys > /storage/sdcard0/Download/b1.txt
//得到指定app相关的电量消耗信息
adb shell dumpsys batterystats 包名 > /storage/sdcard0/Download/b1.txt
18.测试流量
流量分两种:a.操作app b.不操作app
测试方法:
a.各类云测平台、DDMS的Network
b.命令(模拟器不支持,某些真机不支持)
ps | grep com.android.browser 获取pid
cat /proc/pid/status 获取uid
cat /proc/uid_stat/uid/tcp_snd 发送的流量byte
cat /proc/uid_stat/uid/tcp_rcv 接受的流量byte
c.android自带api
long uidrx=TrafficStats.getUidRxBytes(10053); //10053表示uid
d.抓包(最好用root真机练习)
通过tcpdump抓包,再通过wireshark直接读取报信息来获取流量
19.GPU
通过开发者模式-》显示GPU过度绘制
20.CPU
a.第三方工具、各类云测平台
b.dumpsys命令
adb shell dumpsys cpuinfo | grep com.android.browser > /storage/sdcard0/Download/cpu.txt
c.top命令
adb shell top | grep com.android.browser > /storage/sdcard0/Download/cpu.txt
tips:关注活动状态和静默状态下的情况
21.线上监控的方法
a.第三方的标准化的开源、商业产品,如Nagios、zabbix、Ganglia、百度统计等
b.自主研发的监控手机平台
c.APM,比如听云
d.用户反馈
app埋点监控测试:如友盟