app测试规范

一般性测试:

1. 安装、卸载测试

主要针对编译后源程序生成的APK安装文件。

主要测试点:a.生成的APK文件在真机上可以安装及卸载;

b.Android手机端的通用安装工具,如:豌豆荚及91助手等工具可以正常安装及卸载程序。

2. 在线升级

测试点:a.验证数字签名 b.升级后可以正常使用 c.在线跨版本升级

3. 业务逻辑测试

业务逻辑测试:主要测试客户端业务能否正常完成

功能点测试:主要测试客户端功能点是否正常使用

关联性测试:主要测试客户端与PC端的交互,客户端处理完后,PC端与客户端数据一致

4. 异常测试

主要包含了断网、断电、服务器异常等情况下,客户端能否正常处理,保证数据正常性。

5. 交互性测试

客户端作为手机特性测试,包含被打扰的情况13种,来电,来短信,低电量测试等,还要注意手机端硬件上,如:待机,插拔数据线,耳机等操作不会影响客户端

6. 易用性测试

界面与交互性测试:符合android交互规范,符合用户使用习惯,操作方便简单,具有一致性。

可用性测试:用户体验好,用户操作方便,用户使用错误率低。

基准测试:

1. 适配测试

手机不同分辨率支持:客户端支持800*480,960*540,1920*1280等;

手机不通版本的支持:4.0, 5.0, 6.0;在测试计划中,需要安排单独的时间用于android不同系统的兼容性测试,包括7.0版本等;

手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米收,华为输入法。是市场主流的系统及厂家不同型号的支持;

手机不通尺寸的支持:4.0到7.0屏幕在UI显示有区别的,要支持最大到最小。

解决方案:

a.公司购买常用机型。

b.第三方云测试的解决方法。

c.模拟机。

2. 外网与场景测试

主要是模拟客户使用网络环境,检验客户端程序在实际网络环境中使用情况及进行业务操作。外网测试主要覆盖到wifi\3G\4G、net\wap、电信\移动\联通,所有可能的组合进行测试。

原则:

a.尽可能全面覆盖用户的使用场景,测试用例中需要包含不同网络排列组合的各种可能;

b.模拟信号被屏蔽时候,客户端的影响等;

c.做外部场景测试,在高山、丘陵、火车上等特殊环境下进行全面测试。

选择性测试:

1.测试启动时间

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

2.代码静态扫描

代码扫描工具Lint,它能非常容易得帮米找出代码上的结构问题

具体的检察规则可以自定义(局部,全局)

lint --list 获得检查项id和简要说明

lint --show xxx 获得详细说明

jenkins:持续版本构建,与lint搭配使用

lint:检查已有规则规范

findbugs:针对java平台代码的检查

3. traceview

手机root,代码中埋点,加SD卡读写权限。通过monitor.bat打卡.trace文件。

Debug.startMethodTracing("路径"); //在oncreate方法中,开始埋点

Debug.stopMethodTracing(); //ondestroy中,结束

 4. 客户端侧性能测试

偏重客户端测CPU、MEM、流量、电量以流畅度等等。

 (1). 电量与流量测试(电量表)

手机的电量及流量测试主要是为了站在用户角度思考,毕竟电量、流量消耗比较大,会影响客户的使用感受。手机端量使用是和CPU使用率成正比的。由于这个没有比较详细的规定,只能出一个通用范围。CPU使用率不能超过10%以上,流量不要超过10M以上。一般通过android手机端一些监控软件获取数据。当然也可以通过代码打点获取

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

(2).内存泄漏测试

OutOfMemory

关注点:内存消耗大和使用后,内存不释放

大数据的测试:主要在特定环境下,客户端一次性更新大量的数据,客户端能否正常处理。

(3).流畅度测试

使用高速相机,或其他工具

(4).流量分两种:操作app、不操作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 接受的流量bytec.android自带api

long uidrx=TrafficStats.getUidRxBytes(10053); //10053表示uid

抓包(最好用root真机练习)

通过tcpdump抓包,再通过wireshark直接读取报信息来获取流量

5. 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:关注活动状态和静默状态下的情况

6. 线上监控的方法

a.第三方的标准化的开源、商业产品,如Nagios、zabbix、Ganglia、百度统计等

b.自主研发的监控手机平台

c.APM,比如听云

d.用户反馈

app埋点监控测试:如友盟

扩展:

APP性能测试分类

客户端:

  1. 应用测试(关注CPU、MEM、流量、GPU等)
  2. ROM测试
  3. 其他(web页面,现在APP大多都是web页面)

服务器端:性能测试方法和WEB差不多

tips:客户端的测试其实比较推荐专用的硬件设备来,这样测出的数据更加准确,比如高速相机、功耗仪等

APP自动化测试分类

UI(robotium、Appium、POCO等)

接口

单元(junit、Robolectric等)

持续集成

tips:一句话,对编程要求高,逻辑性思维要求高

 

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.07.0屏幕在UI显示有区别的,要支持最大到最小。

解决方案:

a.自行购买或者使用借来设备来实际验证。耗费资金,购买几台。

b.第三方云测试的解决方法。

c.整理不兼容的地方,然后去分析app总可能不兼容的代码。对技术能力的要求比较高,前期也需要花费不少的时间。

d.利用友盟等第三方统计平台获得应用对应的TOP N 的记性重点进行测试。

 

8.客户端侧性能测试

偏重客户端侧CPUMEM、流量、电量以及客户端在不同网络环境下响应速度等等。

大数据的测试:主要在特定环境下,客户端一次性更新大量的数据,客户端能否正常处理,分为三种情况:

a.客户端第一次使用,的一次就更新大量数据

b.客户端在平时更新中,更新大量的数据

c.客户端已经在手机本地下载很多数据后,再次更新大量数据。

 

9.电量与流量测试

手机的电量及流量测试主要是为了站在用户角度思考,毕竟电量、流量消耗比较大,会影响客户的使用感受。手机端量使用是和CPU使用率成正比的。由于这个没有比较详细的规定,只能出一个通用范围。CPU使用率不能超过10%以上,流量不要超过10M以上。一般通过android手机端一些监控软件获取数据。当然也可以通过代码打点获取

 

10.内存泄漏测试

OutOfMemory

 

11.外网与场景测试

主要是模拟客户使用网络环境,检验客户端程序在实际网络环境中使用情况及进行业务操作。外网测试主要覆盖到wifi\3G\4Gnet\wap、电信\移动\联通,所有可能的组合进行测试。

原则:a.尽可能全面覆盖用户的使用场景,测试用例中需要包含不同网络排列组合的各种可能; b.模拟信号被屏蔽时候,客户端的影响等; c.做外部场景测试,在高山、丘陵、火车上等特殊环境下进行全面测试。

 

12.APP性能测试分类

客户端:

a.  应用测试(关注CPUMEM、流量、GPU等)

b.  ROM测试

c.  其他(web页面,现在APP大多都是web页面)

服务器端:性能测试方法和WEB差不多

tips:客户端的测试其实比较推荐专用的硬件设备来,这样测出的数据更加准确,比如高速相机、功耗仪等

 

13.APP自动化测试分类

UI(robotiumAppium)

接口

单元(junitRobolectric等)

持续集成

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.各类云测平台、DDMSNetwork

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 接受的流量bytec.android自带api

long uidrx=TrafficStats.getUidRxBytes(10053); //10053表示uid

抓包(最好用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.第三方的标准化的开源、商业产品,如NagioszabbixGanglia、百度统计等

b.自主研发的监控手机平台

c.APM,比如听云

d.用户反馈

app埋点监控测试:如友盟

 

转载于:https://www.cnblogs.com/yanamay/p/10489546.html

你可能感兴趣的:(app测试规范)