移动APP测试 【4】-- 专项测试

如下问题:

  Crash

  设备兼容

  流量使用过多

  APP 导致用户手机电量消耗过快

  在不同网络情况下不稳定,比如 卡死 和 白屏的问题

  针对某个特殊方面或者问题的,称之为 专项测试

    如 兼容性测试,流量测试, 电量测试, 弱网络测试, 稳定性测试, 安全性测试 和 环境相关的测试

一  兼容性测试

    也是功能性测试,只不过侧重在不同的软硬件环境

  1  环境准备

    针对APP通常会考虑:

      OS version , 屏幕分辨率 , 不同厂家的ROM,网络类型

  2  基于 UI 自动化脚本的云测试方案

      如 Testin

二  流量测试

   流量的消耗: 用户的操作, 后台【即 用户没有直接使用情况下的流量消耗】

  1  Android App 特有的流量测试方法

    a) 基于 系统自带的 统计功能

      proc/uid_stat/[UID] /tcp_snd

      proc/uid_stat/[UID]/tcp_rcv

  2  IOS APP 特有的流量测试方法

    a) 通过 Instruments 自带的 Network 来查看网络流量

    

  3  通用的流量测试方法

    手机上抓包

      windows 【 Wireshark】 , Linux 【 tcpdump 】 , Android 【tcpdump 】

      tcpdump -s 0 -w t1.pcap -v

    基于 WiFi 代理的方式,获取流量数据

    自动化流量统计方案:

      通常会使用 Fidder 工具 进行HTTP 抓包,并进行手动分析

  4  常见的流量节省的办法

    数据的压缩, 不同数据格式的采用, 控制访问的频次, 只获取必要的数据

    缓存 【需要,控制缓存的有效期和更新策略】,针对不同的网络类型设计不同的访问策略

  

三  电量测试

  1  Android 电量测试方法

    1)  基于 硬件的测试方案, 可以较为 精确的测试手机的电量消耗情况

      GSam Battery Monitor Pro 查看 电量消耗

    2)  借助一个第3方APP 来 评估手机上 各个APP的电量消耗

  2  IOS 电量测试方法

    

四  弱网络测试

  当 网络环境复杂的时候,App 才暴露的一些 问题

  1  借助手机自带的网络状况模拟工具

    主要针对 ios , 对 android 的 支持不好

  2  基于代理的弱网络的模拟

    Windows 下的 Network Delay Simulator

    Mac 下的 Network Link Conditioner

   

五   稳定性测试

  1  基于 Monkey 的稳定性测试

      Monkey  是 Android 系统自带的 , 由 Java 编写的,在 Android 中的 路径 /system/framework.monkey.har

      shell 程序的位置 /system/bin/monkey

      monkey -p APP_NAME -v  显示 执行时的信息 COUNT 发送的 事件数目

      monkey 可以 模拟: APP click , 滑动,key-input, 还模拟了各种手机系统的操作, 调整音量,打开通知栏,改变网络状态,锁屏

      monkey 测试停止条件,主要有

        1)  执行次数到了

        2)  如果限定了 Monkey 运动在一个 或者几个 特定的包上,当监测到试图转到 其他的包的操作, 会对其进行终止

        3)  Application 崩溃或者接收到任何失控的异常, Monkey 将 停止并且报错

        4)  Application 发生了 ANR 【 应用程序不响应】的错误, Monkey 将停止 并且报错

        【NOTE】 MonkeyRunner 和 Monkey 并无任何关联

            MonkeyRunner 是一个 工具包,提供了 一些API,可以在 Android 代码之外,控制 Android 设备和模拟器,相比 Monkey 不可控的模拟事件, MonkeyRunner 可以通过自己的代码,来启动APP,控制发送模拟的击键操作

        Android  ANR 是一个比较容易 遇到的 稳定性问题, 当 APP 遇到以下两种情况之一时,会发生 Application Not Responding

          a)  输入事件 5 秒内未响应完成, 如 点击屏幕,按键等操作

          b)  BroadcastReceiver 10 秒内 未 执行完毕

          常见的造成 ANR 的原因之一,就是 在 主线程执行了 耗时过长的操作

          Android ANR 的日志 存放在 /data/anr/traces.txt

              包括了 App 每个线程的 堆栈信息, developers 可以通过 这个文件,进行排查

     3  基于 模糊测试 思路的 稳定性测试方法的探索

         借鉴了 模糊测试 Fuzzing Test 的 思想,模糊测试 常常用户 做 安全性测试,发掘安全漏洞

六  安全测试

  1  安装包测试

    1)   能否反编译代码 ,

          使用 dex2jar 工具 结合 jd-gui 工具查看 源代码

    2)  安装包是否签名

          ios 无需考虑

          Android  没有此类检查, 需要在发布前 校验一下 签名使用的 key 是否正确, 以防被恶意的第三方应用覆盖安装等问题

            check : jarsigner -verify -verbose -certs apk包路径

    3)  完整性校验

        check 安装包的 md5 值,可以自动化

    4)  权限设置检查

        Android 平台上,我们可以 直接检查manifest 文件来 读取 应用所需的全部权限

        IOS 则是在 APP 使用到其他权限的时候,才会提示

  2  敏感信息测试

    1)  数据库是否存储 敏感信息

        比如 cookie 保存到 数据库中, 别人 捡到手机,信息将会丢失

        一般, 敏感信息 需要在 用户注销操作后 删除,如 , cookie 类数据,建议设置合理的 过期时间

    2)  日志中是否存在 敏感信息

    3)  配置文件是否存在敏感信息

  3  软键盘劫持

    比如金融 APP, 不能使用 第三方软键盘, 而应该使用,应用中 自带的 软键盘

  4  账户安全

    对于账户的安全性,我们一般需要 关注一下几点

    1) password

    2) policy

    3) session

    4) logout

  5  数据通信安全

  6  组件安全测试

      Android 平台的各个组件 是否能被 外部应用 恶意 调用,从而带来一些安全问题 , 包括  Activity , Service , ContentProvider , Broadcase 等等,  采用的测试方法,是通过 使用 drozer 工具 + code

    1)  服务端接口测试

        SQL, XSS , CSRF , 越权

  7  环境相关的测试

    比如 有些APP 会用到 摄像头,加速感应等硬件

    1)  干扰测试

        收到 电话,短信,通知栏信息,无电提示框弹出,第三方软件告警框弹出

    2)  权限测试

        用户禁止了某些 权限,会导致 UI不友好 ,程序 崩溃

    3)  边界情况

        手机 本身的环境

          可用 存储空间减少, 没有SD卡/双 SD卡,飞行模式,系统时间有误,第三方依赖

    4)  Android 定位测试

        白盒方式  由于定位代码 最终获取的是一个位置对象,我们只需要在 获取到位置对象后,手动设置 经度纬度进行测试

        模拟器 模拟

  

            

        

  

      

时间: 2024-11-05 20:38:02

移动APP测试 【4】-- 专项测试的相关文章

Android APP性能及专项测试(个人整理)

移动测试. Android测试 .APP测试   Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如:1.资源消耗2.内存泄露3.电量功耗4.耗时5.网络流量消耗6.移动终端相关资源利用率7.帧率8.渲染等等.... 工具:(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)GT等 测试方法:1.设计场景 :手工或自动化场景2.获取数据:可

app电量相对专项测试

手机的耗电量主要是由手机的一些部件产生的,如cpu.wifi.gps等.所以耗电量主要集中在app上传.下载数据,检查位置.唤醒锁屏等. 现在稍微详细来了解下这些是怎么耗电的:1.WIFI(蜂窝式无线):开启wifi的时候,为了让硬件投入使用,(1)会出现一个唤醒耗电高峰,(2)接下来就是发送数据包消耗的电量,(3)然后接收数据包也需要很多电量,(4)完成执行工作后,硬件会保持一段时间内的开启,防止一小段时间内还有数据包需要接收.如下图所示: 2.锁屏唤醒:当解锁点亮屏幕的时候,会看到耗电有个很

app流量相对专项测试(待续)

一.app流量的消耗主要的产生方式有三种:1.基于用户发起的消耗.2.基于app主动发起的消耗.3.基于服务器主动返回的消耗. 二. 对于如何测试因以上问题而造成app流量消耗的方法,目前采取以下手段: 1.通过手机系统自带的流量计算工具,横向比较与同类应用流量消耗高低,纵向比较手机内所有应用流量消耗的高低  (不要排在前几位): 2.还有就是使用腾讯的GT进行简单的流量测试(用过GT带的抓包,但是分析出来的流量数据和简单的数据差的太多,这个后续跟踪观察:同时也用过网易的Emmeage(比GT低

移动App专项测试

移动App测试实战—专项测试 转自:http://www.51testing.com/html/58/n-3713758.html 我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较完整了.但是当我们的App在大量的用户那里被安装和使用的时候,还是会有很多我们之前没有预料的问题被反馈回来,比如: · Crash的问题 · 设备兼容性的问题 · 流量使用过多的问题 · App导致用户手机电量消耗过快的问题 · 在不同的网络情况下不稳定,比如卡死和白屏

APP测试和WEB测试的区别

APP测试和WEB测试在业务流程和功能测试是没有区别的! 但两者载体不一样,在以下几个方面存在区别: 系统结构方面: WEB项目,B/S架构,基于浏览器的,WEB测试只要更新了服务器端,客户端就会同步更新: APP项目,C/S架构,必须要有客户端,APP修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍. 性能方面: WEB项目,需监测响应时间.CPU.Memory: APP项目,除了监测响应时间.CPU.Memory外,还需监测流量.电量等. 兼容方面: WEB项目, 1.浏览器(火

app测试与web测试的区别

1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端.那么在系统测试测试的时候就会产生区别了. 首先从系统架构来看的话,web测试只要更新了服务器端,客户端就会同步会更新.而且客户端是可以保证每一个用户的客户端完全一致的.但是app端是不能够保证完全一致的,除非用户更新客户端.如果是app下修改了服务端,意味着客户端用户所使用的核

移动无线应用专项测试浅谈

前言 其实去年年底我就说过很多公司功能测试都做的差不多了,接下来就开始折腾什么性能测试啊,安全测试啊,持续集成啊,Hybrid啦等等.果不其然,最近很多测试同学开始问我性能相关的问题.当然我们专业点来讲这个叫做专项测试,那么专项测试其实也是区分什么人去做,工具组的人也在做,业务组的人也在做,只不过大家做的切入点会很不同.也许很多同学也比较好奇我毕竟也去那么多公司撕逼了,到底我平时在做什么,怎么做的.这边那就简单说下吧. 做了什么 嗯,我想想我做了什么.其实我现在就是,公司做到移动无线的应用专项测

【金阳光测试独家播出】-IOS专项测试体系预告-7.20号更新第一集

You are my pretty sunshine,没有你的世界好好坏坏,只是无味空白……(PS: 前段时间电视剧<何以笙箫默>热播,无论是喜欢“高帅冷”何以琛的女生们,还是陪女友看剧的男生们,都已经会唱这首<My sunshine>了吧.)哈哈,小编今天不是来介绍歌曲的,小编想说,金阳光就是我们的sunshine.什么?你还不知道金阳光是什么"鬼"?道上有一句话,“测试技术哪家强,北京百度找阳光”.百度搜索"金阳光测试",你会看到很多金阳

无线专项测试--流量测试(下)

这篇文章主要是想介绍下流量专项测试的另外一种方法tcpdump+Wireshark抓包测试法. 在后台系统的开发和测试中,借助工具抓取网络包来进行网络层的分析是一种非常常用的技术手段,常用的抓包工具有Windows下的Wireshark工具和Linux下的tcpdump.由于android本身也是一个Linux系统,所以也有对应的tcpdump版本.IOS系统也可以使用tcpdump抓包.如果我们需要测试某一个App消耗的流量就需要禁用其他APP的连网权限.限制其他app的联网权限,如果不限制的