移动APP之专项测试
兼容性测试
1.兼容性测试的准备和手工测试
APP通常考虑
(1)操作系统版本(考虑大版本迭代)
(2)屏幕分辨率 (720p,1080p等)
(3)不同厂家的ROM
(4)网络类型(wifi/2G/G/G)
手机M版网站(主要考虑不同浏览器类型,另外需要考虑屏幕分辨率问题)
2.基于UI自动化脚本的云测试方案
App云测试平台
(借助UI自动化方案,有大量真机的云测试平台,平台提供截图日志等)
testin
(1)脚本的编写和本地调试
简单的testcase封装
(2)上传到云平台运行
(3)查看测试报告
流量测试
流量:一是用户的操作直接导致的流量消耗;二是后台,即在用户没有直接使用情况下流量消耗。
一:Android APP特有的流量测试方法
1.基于系统自带的统计功能
直接读取Android系统上二个文件内容
proc/uid_stat/{UID}/tcp_snd
proc/uid_stat/{UID}/tcp_rcv
{UID}是每个Android APP在安装时分配的一个唯一编号,用于识别该app。tcp_snd文件中数据表示发送的数据累计大小,以字节为单位。tcp-rcv表示接收到的数据累计大小。
可通过访问/proc/{PID}/status查找PID
2.通过系统API来获取流量数据
通过TrafficStats.getUidRxBytes方法获取该APP对应接收流量数据,然后显示在日志里
3.APP内部通过代码统计接口数据量
在网络访问接口代码加上相关的统计功能来获取流量数据,resp是一个httpresponse对象,resp.getEntity().getContengLength()方法可获得本次响应的数据量
二:通用流量测试方式
在手机上抓包或通过网络代理来统计
1.手机上抓包
常用抓包工具:windows下Wireshark,Linux下tcpdump
2.基于wifi代理的方式获取流量数据
通过代理工具来实现:fiddler代理工具,charles
3.自动化的流量统计方案
三:常见流量节省方法
1.数据的压缩
减少传输的数据量是最基本节省流量的方法
2.不同数据格式的采用
3.控制访问的频次
4.只获取必要的数据
5.缓存
6.针对不同网络类型设计不同的访问策略
电量测试
一:Android电量测试方法
1.基于硬件设备的方法
基本方法:将手机电池取下,并将电量表串接在手机和外部电源之间,查看电量消耗
2.基于GSam Battery Monitor Pro查看电量消耗
弱网络测试
1.借助手机自带的网络状况模拟工具
2.基于代理的弱网络模拟
Windows下的Network Delay Simulator,Mac下Network Link Conditioner
稳定性测试
一:基于Monkey的稳定性测试
Monkey命令随机地向目标程序发送各种模拟键盘事件流,并且可以自定义发送的次数,来观察被测应用程序的稳定性和可靠性
MonkeyRunner
二:Android 的ANR
1.ANR:输入事件5秒内未响应完成,例如点击屏幕,按键等操作;
BroadcastReceiver10秒内未执行完毕
2.Android的ANR日志存放在/data/anr/traces.txt下
导出该日志:
cp /data/anr/traces.txt /sdcard/traces.txt
adb pull /sdcard/traces.txt 本地文件路径
三:基于模糊测试思路的稳定性测试方法探索
模糊:相对于通常功能测试的“确定”而言
模糊测试
1.单个步骤数据的引入随机,包括一些异常情况
2.执行步骤的不确定性
3.多个随机处理的步骤串行的持续运行
4.日志和辅助监控手段
安全测试
一:安装包测试
1.能否反编译代码
android测试中常用反编译方法:dex2jar工具并结合jd-gui工具查看源代码
2.安装包是否签名
发布前校验下签名使用的key是否正确,以防被恶意第三方应用覆盖安装
jarsigner -verify -verbose -certs apk包路径,运行后结果为“jar已验证”说明签名校验成功。
3.完整性测试
为确保安装包不会在测试完成到最终交付过程中因为各种问题发生文件损坏,需要对安装包进行完整性校验。通常做法是检验md5的值,而且一般可以通过做自动化校验
4.权限设置校验
防止用户隐私泄漏,需要对app申请某些特定权限的必要性进行检查。
Android平台可以直接检查manifest文件来读取应用所需的全部权限,并结合需求校验此权限是否为必须。
二:敏感信息测试
1.数据库是否存储敏感信息
2.日志中是否存在敏感信息
3.配置文件是否包含敏感信息
三:软键盘劫持
若用户安装第三方软键盘,在使用我们app输入时信息被第三方键盘截获。
因此需在一些输入带有敏感信息的输入地方检查,例如金融类登录app
四:账户安全
1.密码是否明文存储在后台数据库
2.密码传输是否加密
3.账号锁定策略
4.同时会话
5.注销机制
五:数据通信安全
1.关键数据是否散列或加密
2.关键连接是否使用安全通信
3.是否对数字证书合法性进行验证
4.是否校验数据合法性
六:组件安全测试
Android平台各个组件是否能被外部应用恶意调用从而带来一些安全问题,采用测试方法调用drozer工具
七:服务端接口测试
关注服务端接口是否存在以下问题:
SQL注入
XSS跨站脚本攻击
CSRF跨站请求伪造
越权访问
环境相关测试
一:干扰测试
干扰场景:收到电话/收到短信,收到通知栏消息,无电提示框弹出,第三方安全软件景观框弹出
二:权限测试
一些用户使用app时有意识阻止某些功能
三:边界情况
1.可用存储空间过少
2.没有sd卡/双sd卡
3.飞行模式
4.系统时间有误
5.第三方依赖
四:Android定位测试
App行为与地理位置相互关联
1.白盒方式
定位代码最终获取的是一个位置对象,只需在获取位置对象后手动设置经纬度即可测试,程序中位置对象一般是android.location.Location对象,调用它的setLatitude和setLongitude方法可以设置经纬度
2.模拟器模拟
使用模拟器时可使用DDMS进行经纬度设置
3.自定义位置提供器
移动APP之专项测试相关推荐
- 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi
目录 APP测试要点 目标 一.APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二. 性能测试工具 ...
- 手机APP测试之专项测试
前言 说到专项测试,大家的第一反应可能是流量测试.电量测试.弱网络测试等及其对应的专项测试工具.除了以上,关于专项测试我们还要知道: 1) 我应该在什么阶段去做专项测试. 2) 每个阶段做什么. 3) ...
- 一秒点击屏幕次数测试_安卓App性能专项测试流畅度深度解析
指标背景 流畅度,顾名思义是用户感知使用App页面时的流畅情况. "App卡不卡",这是用户最直接的感受. 但是要用量化之后的数据衡量流畅度,在Android平台这边并没有直接有效 ...
- APP 兼容性专项测试
读者提问:APP 兼容性测试怎么做 ? 阿常回答:分为三步走:1.选取主流机型+版本:2.对主流机型做功能验证:3.选一款机型做网络兼容测试. 一.选取主流机型 + 版本 选取 TOP 机型+版本的几 ...
- app常见的专项测试以及面试题
1.为什么进行专项测试? 手工测试之后,自动化测试之后,接口测试,性能测试之后,线下环境.预发布环境都没有问题了,测试工作看似完整,但是到了用户生产环境,安装使用过程中还是有很多之前没有预料的问题被反 ...
- APP专项测试-弱网测试
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式.不同的协议.不同的制式.不同的速率,使移动应用运行的场景更加丰富.目前移动端产品的使用用 ...
- Android App专项测试-压力测试篇
小伙伴们大家好,今天主要分享的主题是Android App专项测试.如何进行Android App专项测试压力测试呢?我们主要通过Android平台的一门工具Monkey.在学习本门课程之前,如果你具 ...
- APP性能测试——基于手机的专项测试
转载自http://bbs.51testing.com/thread-1199231-1-2.html 我之前的APP性能测试是基于服务端的,这里收藏一个基于手机的专项测试. Android篇 性能测 ...
- 移动App测试实战—专项测试
转自:http://www.51testing.com/html/58/n-3713758.html 我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较 ...
- APP客户端性能专项测试手册
APP客户端性能专项测试手册 一.前言 1.1文档目的 通过对本文档的学习,对APP客户端性能专项测试的理论知识,测试工具,测试方法,缺陷分析思路等能有一定程度的了解,并能快速投入到专项测试工作中去. ...
最新文章
- 详解DNS递归查询与迭代查询
- 【DOM编程艺术】动态创建标记(签)---创建和插入节点
- Jmeter分布式压测方案
- BigChainDB
- 【LOJ】#2066. 「SDOI2016」墙上的句子
- Android之给gridview的单元格加上分割线
- 前端学习(2868):vue3数据劫持解析3
- arrayrand php,php中array_rand函数的功能起什么作用呢?
- 每天看了哪些技术点,都记录在该文章下面,时常回过头来看看。
- python编译exe运行慢_Python运行速度慢你知道这是为什么吗?
- 综合项目:Keepalived+Redis+Haproxy实现主从热备、负载均衡、秒级切换
- 华为首次赶超苹果;拼多多遭调查;Google 计划推中国版搜索引擎 | 极客头条
- 网络定位服务NetworkLocationProvider
- ltspice滑动变阻器在哪_NB物理创新课堂|变阻器
- upc51-种树 实现:树形dp+换跟+剪枝
- Android开发之手机震动器
- Javaweb支付宝支付
- 浅谈 Fhq-Treap
- 数据结构-头插法和尾插法
- IDEA 支持vue