移动端APP测试总结(二)
移动APP测试,除了基础功能测试测试方法外,需要额外关注以下方面:
兼容性测试
流量测试
电量测试
弱网络测试
稳定性测试
安全测试
环境相关测试
apk性能测试
兼容性测试
针对App通常会考虑这些方面:
1、操作系统版本
包括Andoird版本,iOS版本
2、屏幕分辨率
android 800480, 960640,1280720(720p),19201080(1080p),2560*1440(2k).
对于iOS,考虑最近几代机型对应的分辨率即可.
3、不同厂家的ROM
不同厂家的ROM,大多厂家都对android 系统进行了定制、实际中会遇到例如调用相机和底层服务出现的不兼容问题以及摇一摇遇到的不同手机对于方向和重力传感器灵敏度设置不同的问题.
4、网络类型
网络类型通常考虑wifi,2g,3g4g下的功能情况。另外针对m版网站考虑不同浏览器类型和屏幕分辨率.
流量测试
在移动产品的测试中,很有必要对App使用的流量进行度量,大致来说,流量可以从用户使用的的相关性角度分为:一类是用户的操作直接导致的流量消耗;另一类是后台,即在用户没有直接使用情况下的流量消耗。
流量的测试方法:
1、基于系统自带功能.
eg android proc/uid_stat/{uid} /tcp_send
android proc/uid_stat/{uid} /tcp_rcv
2、通过API或者系统埋点来获取数据。
3、通用的流量测试方法:手机抓包,或者wifi代理(Fiddler, Charles)。
常见的流量节省方法:
1、数据压缩。
2、压缩包含接口文本数据的压缩,js文件的压缩及图片的压缩。
3、不同数据格式的采用
例如采用JSON格式作为接口数据返回格式通常比XML格式要小。
4、控制访问的频次
这个主要针对后台数据上报,PUSH消息检查等定时机制的。
5、只获取必要的数据
有时候APP一页的内容非常多,而用户可能只会看一部分,过多的从后台拉去数据就是浪费,所以可以采用分屏加载或者懒加载的方式来减少流量消耗。
6、缓存
可将图片,js等数据暂存起来,但由于手机存储空间有限,也需要控制整个缓存大小,并给用户提供清理缓存的选项。
7、针对不同网络类型设计不同的访问策略
有些APP不同的网络类型返回的内容不一样。
电量测试
在电器电池技术没有取得巨大突破前提下,这方面始终会存在一些瓶颈,如果一些App架构设计的不好,或者代码偶缺陷,就可能导致电量消耗比较高,所以电量测试也是很重要的。
工具 GSam Battery Monitor Pro.
弱网络测试
移动互联网产品相比PC互联网产品,有一个特点是前者使用的网络比较多样,除了Wif之外,很多时候是在移动网络下使用的,移动网络遇到的情况又比较复杂,比如地铁、隧道、体育场等。所以网络不稳定的情况是比较容易发生的,很多情况下App的一些问题是在复杂的网络情况下才会暴露,与其让用户发现和投诉这些问题,不如我们在测试阶段尽量模拟这样的网络情况,及早发现和修复这些问题。
工具:
Windows下的Network Delay Simulator
Mac下的Network Link Conditioner
稳定性测试
在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。
稳定性测试的概念有2种,
**一, 稳定性测试,对应于异常性测试,**即发生异常情况时,系统如何反应的测试。包含:
1 交互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。
2 异常性测试,断网,断电,服务器异常等情况
二,稳定性测试指的是性能测试,压力测试
1 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度
2 大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表
另有其它文章,提到性能测试,为评估APP的时间和空间特性(真是高深啊,时间和空间,再来个4维,5维?),包括:
1 极限测试:在各种边界压力情况下,如电池,存储,网速等,验证app是否能正确响应
–内存满时安装app
–运行app手机断电
–运行app时断掉网络
这几点倒是与第一条的内容重复
2 响应能力测试:测试app中的各类操作是否满足用户响应时间要求
–app安装 ,卸载的响应时间
–app各类功能性操作的影响时间
3 压力测试:反复、长期操作下,系统资源是否占用异常
–app反复进行安装卸载,查看系统资源是否正常(弄个几次就行吧,正常人,谁反复安装卸载啊)
–其它功能反复进行操作,查看系统资源是否正常(这倒是应该的)
4 性能评估:评估典型用户应用场景下,系统资源的使用情况
这里要定义,什么是典型用户应用场景
5 benchmark测试(基线测试),应该不是基准性能测试:与竞争产品的benchmarking,产品演变对比测试等(没有多大意义)。
安全测试
1、包括安装包的安全测试(能否反编译代码、安装包是否签名,完整性校验,权限设置检查等)。
2、敏感信息测试(数据库,日志,配置文件)。
3、软键盘劫持(金融类APP登录页面的用户名密码输入框)、
账户安全(密码是否明文,密码传输是否加密,账户输入错误次数过多锁定,同时会话提醒, 注销机制)
数据通信安全(关键数据是否散列或加密,关键连接是否使用安全通信,是否对数字证书合法性进行验证,是否校验数据合法性。
4、组件安全测试。
5、服务器端接口测试(SQL注入测试、XSS跨站脚本攻击, CSRF跨站请求伪造,越权访问等)。
环境相关测试
在实际项目中,有一些缺陷我发现是和App所处的运行环境相关的,所以设计测试的时候,要多考虑这些场景,比如:
1、干扰测试
收到电话、收到短信、收到通知栏消息、无电提示框弹出、第三方安全软件告警弹出。
2、权限测试
一些用户在实际使用App的时候回有意识阻止某些功能。例如有的用户感觉让某个App访问电话本或者相册可能泄漏隐私,就在手机中设置了禁止了该App访问相册的权限。
3、边界测试
手机环境本身也有其边界情况需要在测试中覆盖。常见的场景有:
可用存储空间过少、没有SD卡/双SD卡、飞行模式、系统时间有误(晚于和早于标准时间)、第三方依赖(比如我们的App依赖第三方App,但是现在第三方App没有安装或者版本过低的测试情况)。
4、Android定位测试
用白盒方式模拟
apk性能测试
普遍的apk性能测试,主要是以下七类
1、响应
2、内存
3、cpu
4、FPS (app使用的流畅度)
5、GPU过度渲染
6、耗电
7、耗流
移动端APP测试总结(二)相关推荐
- 移动端APP测试总结--转
来自:https://www.cnblogs.com/linxiu-0925/p/7636570.html 移动APP测试,除了基础功能测试测试方法外,需要额外关注以下方面: 兼容性测试 流量测试 电 ...
- 移动端APP测试总结
移动APP测试,除了基础功能测试测试方法外,需要额外关注以下方面: 兼容性测试 流量测试 电量测试 弱网络测试 稳定性测试 安全测试 环境相关测试 apk性能测试 兼容性测试 针对App通常会考虑这些 ...
- 移动端APP测试总结(一)
1.首先是测试资源确认及准备 (1) 产品需求文档.产品原型图.接口说明文档以及设计说明文档等应齐全: (2) 测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关测试工具的准 ...
- 传统APP与微信端APP十大优劣对比
随着微信公众平台的开放,经过二次开发的微信端APP涌现市场,老蔡的团队最近为很多传统企业开发了微信端的APP应用.在很多场合,都有人咨询老蔡:微信端APP是否会替代传统的APP应用?两者的优劣如何? ...
- 抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)
安装好Charles之后,还只能捕获电脑的接口请求 想要抓取移动设备的APP还需要设置代理.安装证书. 文章目录 一.抓包原理 二.手机设置网络代理 1. 查看电脑的IP地址(local IP add ...
- 小飞鱼通达二开 2017移动端app开发公告审批功能(图文)
通达2017及之前的版本是没有公告审批功能的,为了能够使用上公告审批功能,这里进行了一次app的二次开发尝试. 首先电脑端发送功能审批时,移动端可以收到消息提醒. 桌面的图标能够显示当前未处理的新消息 ...
- 回顾2017系列篇(二):移动端APP设计趋势
2019独角兽企业重金招聘Python工程师标准>>> 移动端APP在2017年经历了诸多的变化, 人工智能.聊天式的界面.响应式设计.虚拟现实(VR)和增强现实(AR)让设计师不断 ...
- android 程序 读logo,Android端APP更换logo和名称后都需要些测试哪些内容呢?
原标题:Android端APP更换logo和名称后都需要些测试哪些内容呢? 之前有人在搜狗测试粉丝群中问过APP更换logo和名称后需要怎么测试呢?小编正好经历过这样的需求,下面来系统整理一下APP更 ...
- 前端代码(移动端app, vue 源代码)打包方法
一,移动端APP代码打包 H5写的app,开发工具HBuilder X 打包方式 帮助文档:http://ask.dcloud.net.cn/docs/ 安卓apkd 打包方式: 1,将项目代码导入h ...
最新文章
- Python计算训练数据集(测试集)中某个分类变量阴性(阳性)标签样本的不同水平(level)或者分类值的统计个数以及比例
- mysql的odbc连接字符串_MySQL :: linux ODBC连接mysql
- 如何解决开发人员的工作无法量化的问题
- 成功解决gensim\utils.py:1209: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warn
- SAGA-GIS软件下载
- invalid use of incomplete type struct 或者是class的解决办法
- 修改软件许可证使用时间_阮一峰:为什么开源数据库改变许可证?
- 正则表达式替换和不包含指定字符串
- html中注释有几种_历史尝试:小白HTML学习笔记(2)
- QT--3.创建一个简单的图形界面
- 计算机仿真类的论文,最新计算机仿真参考文献 计算机仿真专著类参考文献有哪些...
- 电源 PFC(功率因数校正)电路拓扑,共计100多份,内含A PFC,连续断续,交错,维也纳,各功率段的PFC电路
- 2345流氓软件权限卸载
- 干货丨DolphinDB即时编译(JIT)详解
- Java项目:基于jsp+ssm乐轩公司订餐系统(计算机毕业设计)
- 4.widows对象
- science最新研究动态周报(2021年5月26期)
- 和程序员约会的十个理由
- 如何挑选品质好的服装
- uart_ops结构体分析之amba_pl011_pops
热门文章
- python选择题库和答案_python根据题库答案自动答题
- java分词主谓宾_英语五种结构的句子(主谓 主谓宾 主谓宾宾补 主系表 主谓双宾)谁给我讲一下…...
- 微信小程序 微信小程序地图搜索、地图搜索点点击出callout气泡标题说明
- Pytorch 多线程 运行卡死
- Swiper.js实现无缝滚动
- 在python里调用c++的DLL出现Windows Error -529697949
- 在wps里面怎么设置触发器_wps如何制作触发器
- BeanUtils.populate的作用
- input框不允许输入负数
- 【Unreal4】gitignore目录减小项目大小