• 移动端APP测试总结


    移动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、耗流

    (暂时个人总结那么多,后续有内容再更新)

  • 相关阅读:
    打印水仙花数
    ios9基础知识总结(一)
    简单工厂模式自我理解
    例子
    委托
    IO 磁盘总结
    配置文件命令
    三层架构dal 层基本代码 非查询/查询
    三层架构自我总结
    三层架构源代码
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/7636570.html
Copyright © 2020-2023  润新知