移动APP测试,除了基础功能测试测试方法外,需要额外关注以下方面:

  • 兼容性测试

  • 流量测试

  • 电量测试

  • 弱网络测试

  • 稳定性测试

  • 安全测试

  • 环境相关测试

  • apk性能测试

兼容性测试

针对App通常会考虑这些方面:

1、操作系统版本

包括Andoird版本,iOS版本

2、屏幕分辨率

android 800*480, 960*640,1280*720(720p),1920*1080(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测试总结的更多相关文章

  1. 报表开发工具Finereport移动端app js接口列表【全】

    应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...

  2. 移动销售端app的需求分析

    随着网络时代的发展,人们对于网络的依赖越来越大,网上购物便成了一个很大的消费者市场.. 如何分析一个综合的移动销售端app的需求我认为首先要确定用户,从用户的角度一个一个功能过,评估每一个功能的需求, ...

  3. 【Android端 APP GPU过度绘制】GPU过度绘制及优化

    一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...

  4. 【转】移动端App测试实用指南

    转自:互联网那点事 英文原文: http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/ 测试人员常被看 ...

  5. 【转】【CDC翻客】移动端App测试实用指南

     译者注:本文从测试人员的角度出发,提出了100多个在测试移动App过程中需要考虑的问题.不管你是测试人员.开发.产品经理或是交互设计师,在进行移动App开发时,这些问题都很有参考价值.我和Queen ...

  6. 移动端APP页面Webview模式跳转详解

    首先,来看一下关于Android home键和back键区别 back键 Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Dest ...

  7. 回顾2017系列篇(二):移动端APP设计趋势

    移动端APP在2017年经历了诸多的变化, 人工智能.聊天式的界面.响应式设计.虚拟现实(VR)和增强现实(AR)让设计师不断面临新的挑战.研究表明,用户每天耗费在手机和平板上的平均时长为158分钟, ...

  8. 移动端app跳转百度地图

    http://lbsyun.baidu.com/index.php?title=uri/guide/helloworld(百度地图调起URI API)开发者只需按照接口规范构造一条标准的URI,便可在 ...

  9. Odoo作为后端时如何返回数据给webapp、移动端app

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307315.html  使用jinja2渲染的页面,可以直接在调用template.render()时传递参数 ...

随机推荐

  1. socket.gaierror: [Errno 11001] getaddrinfo failed

  2. GBDT算法梳理

    1.GBDT(Gradient Boosting Decision Tree)思想 Boosting : 给定初始训练数据,由此训练出第一个基学习器: 根据基学习器的表现对样本进行调整,在之前学习器做 ...

  3. 二十一.构建memcached服务、LNMP+memcached、PHP的本地Session信息、PHP实现session共享

    proxy client web1 web2   1.构建memcached服务 ]# yum -y install memcached ]# cat /etc/sysconfig/memcached ...

  4. js中 0.1+0.2 !== 0.3

    1. 存储原理: 在计算机中数字无论是定点数还是浮点数都是以多位二进制的方式进行存储的.事实上不仅仅是 Javascript,在很多语言中 0.1 + 0.2 都会得到 0.3000000000000 ...

  5. Our Journey of Dalian Ends && Our Journey of Xian Ends 最小费用最大流

    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛Our Journey of Dalian Ends 题意:要求先从大连到上海,再从上海打西安,中途会经过其他城市,每个城市只能去一次,出一次, ...

  6. Linux中查看某个端口占用情况

    譬如在linux中排查某个端口是否被占用,可以通过如下命令进行排查,排查方法如下: 1: 排查 : 应用是否被人debug.  8787 为端口号 netstat -anp |grep 8787 图中 ...

  7. Java Heap dump文件分析工具jhat简介

    jhat 是Java堆分析工具(Java heap Analyzes Tool). 在JDK6u7之后成为标配. 使用该命令需要有一定的Java开发经验,官方不对此工具提供技术支持和客户服务. 用法: ...

  8. vue 路由传参的三种方法

    API在这里  https://router.vuejs.org/guide/essentials/navigation.html 第一种传参 通过路由属性中的name来确定匹配的路由,通过param ...

  9. 实现一个简单的Tomcat

    实现一个简单的Tomcat 1. Tomcat作用 我们的web应用会运行在Tomcat中,那么显然请求必定是先到达Tomcat的,Tomcat对于请求实际上会进行如下的处理: 提供Socket服务: ...

  10. docker.socks vul

    在容器上获取 RCE 1)列出所有容器 第一步是获取主机上所有容器的列表.为此,你需要执行以下http请求: GET /containers/json HTTP/1.1 Host: <docke ...