移动 App 测试

移动APP测试讲义

本篇讲义主要阐述APP的手工测试要点,并概括介绍主流的APP测试框架。

1. APP测试的准备

在进行APP测试之前,需要准备下列步骤。通过以下网站可以查找。

移动观象台:http://mi.talkingdata.com/terminals.html

Snap1.jpg
Snap2.jpg

Snap3.jpg

Snap4.jpg

1.1 确定APP的设备

选定被测试的设备终端。

  • 记录设备的品牌
  • 记录设备的型号
  • 记录设备的屏幕分辨率
  • 记录设备的屏幕大小

1.2 确定APP的版本

确定被测试的APP的版本号和操作系统类型

  • XXX 1.3.2 for ios
  • XXX 1.3.0 for Android

1.3 确定操作系统

确定运行被测试设备的操作系统

  • 主流的有iOS和Android
  • 还有WP(Windows Phone)
  • BlackBerry
  • Symbian
  • Ubuntu

1.4 准备表格记录APP的设备和版本

测试工作开始前,需要确定App需要测试的操作系统版本和设备列表

编号 OS OS Version 分类 Model 制造商 屏幕尺寸 分辨率
001 iOS 7.1 iPhone 5s Apple 4
002 iOS 8.1 iPhone 6s Apple 4.7
003 iOS 8.0.2 iPhone 6 Apple 4.7
004 iOS 8.1.2 iPhone 6 Plus Apple 5.5
005 iOS 8.0.2 iPad Air 2 Apple 9.7
006 iOS 8.1.2 iTouch 5 Apple 4
007 Android 5.1 Phone One XL HTC 4.7 1280*720
008 Android 4.5 Phone PRO 5 Meizu 5.7 1920*1080
009 Android 4.2 Phone Galaxy S6 Samsung
010 Android 4.4.2 Phone Galaxy S5 Samsung
011 Android 4.4.2 Phone MX 4 Meizu
012 Android 4.4.4 Phone Nexus 5 Google
013 Android 4.4.4 Phone Mi 4 Xiaomi
014 Android 4.2.2 Tablet Galaxy Tab3 Samsung

2. APP的基本测试

2.1 “移动”测试App

由于现在3G和4G网络都已经非常普及,需要优先测试App在这两种网络环境下的表现。同时需要测试4G信号无法覆盖的时候,App切换到3G、2G的环境下进行测试甚至到无网络的环境下测试。当网络恢复的时候,App是否会自动切换回来,并且执行网络断开前用户的操作。

一般可以选择在地铁、公交、电梯、隧道灯代表性的场所进行测试。

  • 网络切换
  • 网络恢复

一般可以选择在地铁、公交、电梯、隧道灯代表性的场所进行测试。

测试APP在网络异常的情况下,是否发生 ANRCrash

2.2 App的多任务和意外情况处理

  • 多任务切换和多任务管理界面是否与App保持一致。

  • 多任务管理界面直接退出App程序测试。

  • 测试App的同时接听电话,是否还能够继续使用App。

    步骤:

    1. 正常打开被测APP
    2. 运行APP的功能
    3. 突然被其他应用打断(意外,短信、电话、通知)
    4. 切换到该应用、或者、忽略该应用
    5. 被测APP能够继续之前的操作,不发生ANR或者Crash

2.3 测试App的手势操作

  • 长按屏幕呼出菜单
  • 单手指从右向左滑动,弹出附加功能项
  • 双手指捏合,放大放小操作等

2.4 测试App的用户体验

  • 横屏功能测试
  • 遵循iOS和Android的设计规范
  • 字体大小设置以及美观

2.5 测试App的消息显示和通知显示*

通知显示的方式:

  • 锁屏的通知:内容
  • 下拉通知栏的通知:内容
  • 应用程序消息栏:内容
  • 图标的右上角角标:条数

测试要点

  • 在安装App的时候是否申请相应的权限
  • 验证收到App新的消息的时候,如何通过通知向用户进行消息展示

2.6 测试App能否及时显示和同步数据

Web端 + PC端 + APP端

  • 测试在多台设备登录App,是否同步消息、设置、内容、数据等
  • 测试App的消息是否同步在PC端(无论Web版本或者PC版本)

2.7 测试App能否响应不同的设备用户界面

测试App是否适应用户界面,必须使用真实设备进行测试。比如测试HTC Sense用户界面底部的黑色导航栏,测试小米MIUI系统桌面的角标提醒功能,测试iOS的角标提醒,测试魅族Flyme的SmartBar操作等。

  • 非常规的控制:SmartBar
  • 非常规的分辨率:魅族 MX4 MX3 MX2……

2.8 测试App中高内存使用的功能

  • 测试App对于读取大量图片、视频等进行高内存占用操作的处理能力

  • 查看App是否有对应的异步加载功能等

    主要测试场景:

    • 检查APP是否读入全部图片到内存中
    • 美图秀秀打开图片
    • 读取一屏的图片到内存
    • 滚动屏幕,加载新的图片到内存
    • 测试APP是否设定了图片加载的阀值:比如300MB
    • 图片在内存中加载到阀值(300MB),会自动把最开始加载的指定图片占的内存空间释放

2.9 测试App的流量和电量消耗

  • 测试App的安装文件大小
  • 测试App占用的存储空间
  • 测试App使用的流量和电量
  • 流量靠软件测试
  • 电量测试靠功耗仪

2.10 测试App的增量升级

  • 需要测试App在自动升级或者手动增量升级后,用户数据是否保存延续等
  • 测试App在升级失败以后,是否可以继续使用升级之前的版本。
  • 重点测试升级后数据是否可用

2.11 测试App支持的文件格式

  • 测试App支持Office文件操作
  • 测试App支持图片文件展示
  • 测试App支持PDF文件打开
  • 测试App支持视频和音频文件播放

2.12 安装卸载测试

  • 不联网的情况下,会不会崩溃
  • 在线下载数据不完整,能否再次启动
  • 是否支持断点续传
  • 下载安装后再次启动
  • 安装成功后检查版本号和相关数据

2.13 应用召唤

  • 不同应用之间的应用召唤

    测试步骤:

    【支付宝支付】

    1. 打开被测试的应用程序APP
    2. 使用APP指定的功能
    3. APP支付选择“支付宝”
    4. 测试是否提示“允许打开支付宝”(iOS测试)
    5. 测试支付宝没有安装的情况下,APP是否有正确提示(未安装支付宝)
    6. 测试支付宝正确安装的情况下,未登录支付宝,是否提示登录页面
    7. 测试支付宝正确安装的情况下,已登录支付宝,是否提示支付页面

3. 易测EasyTest

易测是一款基于无线客户端研发场景的通用测试工具, 它通过在研发人员的自持机上提供各种辅助能力&标准化的专项测试服务来提升研发质量&效率。

易测:http://mqc.aliyun.com/download.htm?spm=0.0.0.0.LKnIoR

  • 实时性能数据
  • 弱网环境模拟
  • 手机抓包
  • Monkey测试
  • 截图断网等
Snap6.jpg

4. ADB命令与Monkey工具

4.1 ADB 命令

adb:

adb 的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse或Android Studio时adb进程就会自动运行。

借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作

adb 在sdk的platform-tools目录中

Android SDK 下载网站 http://www.androiddevtools.cn/(非官方)

ADB 是连接 Windows 命令行(也可以是Linux或者Mac)到 Andriod手机(模拟器)的Android操作系统的 桥梁(调试桥)

ADB示意图.png

ADB的测试环境搭建:

  • 安装 JDK
  • 安装 Android SDK Tool
  • 安装 Android SDK 相关手机驱动
Snap7.jpg

然后打开 Windows 命令窗口

cd C:\Users\Linty\AppData\Local\Android\android-sdk\platform-tools

ADB连接夜神模拟器示例:

ADB环境的搭建步骤(连接夜神模拟器):

  1. 打开Android模拟器(夜神模拟器)
    也可以打开Android手机(已经ROOT),在勾选“允许USB调试”的选项后,连接手机

  2. 解压缩 platform-tools_r22-windows.zip 到 C:\

  3. 打开 cmd

  4. 进入解压后的文件夹

    cd C:\platform-tools_r22-windows\platform-tools
    
  5. 连接夜神模拟器

    adb connect 127.0.0.1:62001
    

    连接成功后,提示 connected to 127.0.0.1:62001

  6. 进入 ADB Shell 模式

    adb shell
    

    成功后,进入ADB 的SHELL模式

    root@android:/ #
    

ADB的两种模式:

  • 前提:必须连接上 Android, adb connect
  • 模式一:进入 ADB SHELL 模式 adb shell
    • 类似于 Linux系统的操作
    • ls
    • cp
    • cd
    • mv
    • rm
    • cp
  • 模式二:直接 adb + 命令 来执行 ADB命令
    • 如果已经进入 ADB SHELL模式,需要先 exit
    • adb install + apk 文件在windows上的路径
    • adb unistall + apk 的包名
    • adb pull 拉,把文件从Android下载到windows中
    • adb push 推,把windows文件放到Android中
  1. adb连接前

显示当前运行的全部连接到当前电脑的设备,包括手机和模拟器等:

adb devices

连接指定的模拟器或设备

adb connect 127.0.0.1:62001 

断开指定的模拟器或设备

adb disconnect

启动ADB

adb start-server

关闭ADB

adb kill-server
  1. 进入 adb的shell环境

进入adb的shell环境

adb shell

查看包名

adb shell
root@android:/ # ls data/data

记录无线通讯日志

adb shell 
root@android:/ # logcat -b radio

删除系统应用

adb shell
root@android:/ # cd system/app
root@android:/ # rm xxxx.apk

退出adb的shell环境

root@android:/ # exit
  1. adb命令模式

安装应用程序

adb install -r C:\xxxxx.apk

获取设备中的文件

adb pull <remote> <local>
adb pull /addroid/lib/libwebcore.so c:\tmp

向设备中写入文件

adb push <local> <remote>
adb push C:\test.txt /tmp/test.txt 

卸载应用程序

adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名

获取管理员权限

adb root

获取设备的序列号

adb get-serialno

进入SQLite环境

adb shell
sqlite3

SQLite的基本操作,SQLite没有用户的概 念 。

Snap1.jpg

示例:安装TPshop的Android客户端

步骤如下:

  1. 用ADB连接上设备

    adb connect 127.0.0.1:62001
    
  2. 用ADB的方式安装APP

    adb install -r C:\tmp\soubaoShopMobile-debug.apk
    
  3. 安装成功,在ADB SHELL环境中 执行 Monkey(压力测试工具)

    # 进入 ADB SHELL 环境
    adb shell
    # 获取 TPSHOP 的APP的包名
    root@android:/ # ls data/data | gerp soubao
    com.soubao.tpshop
    # 执行 Monkey
    root@android:/ #                                                 monkey -p com.soubao.tpshop -v -v -v 5000 -throttle 5000 --pct-motion 80% > sdcard/monkey_tpshop.log
    

  4. 用ADB 获取日志到本地C盘的tmp目录中

    # 退出 ADB SHELL 环境
    root@android:/ # exit
    # 用 ADB PULL 获取文件
    adb pull sdcard/monkey_tpshop.log
    [100%] sdcard/monkey_tpshop.log
    

  5. 用ADB的方式卸载

    adb shell
    root@android:/ # ls data/data | grep soubao
    # 获取到 app的包名
    com.soubao.tpshop
    # 退出 adb shell
    root@android:/ # exit
    adb uninstall com.soubao.tpshop
    

4.2 Monkey 工具

Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.

  1. Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar
  2. Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey

可以在命令行中输入

这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

0.00255359997618565.png

查看Monkey命令帮助

adb shell monkey –help
类别 选项 说明
常规 --help 列出简单的用法。
-v 命令行的每一个 -v 将增加反馈信息的级别。 Level 0( 缺省值 ) 除启动提示、测试完成和最终结果之外,提供较少信息。 Level 1 提供较为详细的测试信息,如逐个发送到 ActivITy 的事件。 Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity 。
事件 -s <seed> 伪随机数生成器的seed 值。如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。
--throttle <milliseconds> 在事件之间插入固定延迟。通过这个选项可以减缓 Monkey 的执行速度。如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成。
--pct-touch <percent> 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)。
--pct-motion <percent> 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。
--pct-trackball <percent> 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)。
--pct-nav <percent> 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。
--pct-majornav <percent> 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
--pct-syskeys <percent> 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)。
--pct-appswitch <percent> 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
--pct-anyevent <percent> 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
约束限制 -p <allowed-package-name> 如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个 -p选项,每个-p选项只能用于一个包。
-c <main-category> 如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Activity:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选 项只能用于一个类别。
调试 --dbg-no-events 设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
--hprof 设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(~5Mb),所以要小心使用它。
--ignore-crashes 通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-timeouts 通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-security-exceptions 通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
--kill-process-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。
--monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。如果设置了--kill-process-after-error,系统将停止运行。
--wait-dbg 停止执行中的Monkey,直到有调试器和它相连接。

实际使用的时候 Monkey的 -p -v -throttle --pct-motion 使用比较多

  • 下面一个实例
adb shell
ls data/data
monkey -p im.tower.android -v -v -v 5000 -throttle 500 --pct-motion 80% > sdcard\monkey.log

使用monkey进行Tower的压力测试,使用级别2,操作5000个随机命令,并且每个命令延迟5秒钟,滑动的命令占80%。

  • 日志分析

正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间;

// Monkey finished 代表执行完成\

异常情况

Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)

  1. 程序无响应的问题: 在日志中搜索 “ANR”
  2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug

Monkey 执行中断, 在log最后也能看到当前执行次数

5. 安全测试

  • APP请求的权限(摄像头、通讯录、通话记录、短信、定位、蓝牙、WiFi、相册)是否有应用场景
  • APP的消息显示(锁屏消息提醒、消息栏、图标的角标、最近通知的消息提醒)的关闭和开启

主要的测试内容:

  1. 易测安全扫描:上传APP到易测平台,由阿里云扫描并发报告。
  2. 权限的测试:
    1. 检查APP申请的权限,列出所有权限
    2. 对所有的权限进行场景描述
  3. 消息的控制:
    1. 显示消息的形式
    2. 显示消息的时机(锁屏是否显示)

6. APP移动测试框架

随着移动互联网的发展,移动测试技术越来越成熟,很多优秀的开源测试框架涌现出来。作为一个移动测试工程师,我们不仅要夯实自己的技术能力,也要学会从开源框架吸取经验。俗话说,站在巨人的肩膀上,我们会看得更远。移动端的测试框架主要分为自动化测试框架,性能测试框架,稳定性测试框架和安全测试框架这几种类型。下面我们分这几个类型介绍10个最常用的移动端测试框架。

6.1 自动化测试框架

官方网站:http://appium.io/
Github下载地址:https://github.com/appium/appium
说到移动端的自动化框架,最有名的当属Appium。Appium是一个开源的跨平台移动端UI自动化测试框架,它支持native,hybrid和web app的测试。目前有超过100个贡献者在github上维护和优化Appium的源代码。关于Appium的中文资料也非常多,比较齐全的是乙醇的博客,总结了11篇博文介绍Appium的用法,可以访问http://www.cnblogs.com/nbkhic/tag/appium/ 来查看。另外在testerhome上也有专门针对Appium的讨论社区,在上面你可以跟各种行业大牛沟通和交流。https://testerhome.com/topics/node23

官方网站:http://baiduqa.github.io/Cafe/
Github下载地址:https://github.com/BaiduQA/Cafe
Cafe,是一款来自百度QA部门的Android平台自动化测试框架,框架覆盖了Android自动化测试的各种需求,致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题,比如业界一直没有解决的跨进程测试问题。主要亮点有:基于hook录制体系,遍历测试,跨app测试,pc agent设计,使用android 漏洞提权。

Github下载地址:https://github.com/taobao-chenxu/athrun-framework
Athrun 无线测试框架是淘宝自动化测试团队开发的UI自动化测试框架,支持Android和iOS移动App的UI自动化测试。Athrun以Mobile自动化为基础,以PC2Mobile为切入点,是淘宝Mobile测试日常工作必备的平台。目前Athrun支持:Android上的自动化测试,包括自动化测试框架,持续集成体系。覆盖率工具和自动录制回放工具,也在试用完善中。iOS上的自动化测试,包括注入式自动化框架AppFramework,和基于录制的非注入式自动化框架Athrun_IOS,还有持续集成体系。目前两个框架在淘宝测试内都有用户群,都还在不断使用和演进过程中。AppFramework将会支持socket通信方式。

6.2 性能测试框架

1)网易Emmagee
Github下载地址:https://github.com/NetEase/Emmagee
Wiki: https://github.com/NetEase/Emmagee/wiki
Issues: https://github.com/NetEase/Emmagee/issues
FAQ: https://github.com/NetEase/Emmagee/wiki/FAQ
Emmagee是一个实用的手工Android端性能测试工具,它可以实时监控Android App的CPU,内存,网络流量,电量等。如果手机Root的话,还可以监控top activity及堆信息。此外,它还能根据用户需要设置收集数据的时间间隔。最终以csv文件的方式将报告保存在本地。

2)腾讯APT
Github下载地址:https://github.com/stormzhang/APT
Tencent APT Mirror, APT是一个Android平台高效性能测试组件,提供丰富实用的功能,适用于开发自测、定位性能瓶颈;测试人员完成性能基准测试、竞品对比测试。APT是一个eclipse插件,可以实时监控Android手机上多个应用的CPU、内存数据曲线,并保存数据;另外还支持自动获取内存快照、PMAP文件分析等,方便开发人员自测或者测试人员完成性能测试,快速发现产品问题。

6.3 稳定性测试框架

1)CrashMonkey4IOS
Github下载地址:https://github.com/vigossjjj/CrashMonkey4IOS
CrashMonkey4IOS是一个iOS稳定性测试工具。它主要支持以下功能:

  • 支持真机测试、模拟器测试;
  • 支持收集系统日志(Systemlog)崩溃日志(Crashlog)instrument行为日志
  • 支持测试报告截图,绘制行为轨迹
  • 支持测试设备信息收集
  • 使用最新版的UIAutoMonkey,加入UI Holes与Application Not Repsonding ("ANR")的处理,添加custom.js作为入口脚本.加入tuneup依赖
  • 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
  • 支持测试执行过程中App进入后台,自动恢复

2)CrashMonkey4Android
Github下载地址:https://github.com/DoctorQ/CrashMonkey4Android
CrashMonkey4Android,是一个依靠Cts框架,对原生Monkey进行改造后的产物,拥有以下新增功能:

  • 保存每一步的截图.
  • 保存logcat.
  • 保存每一个Monkey事件的信息.
  • 分析Crash.
  • Html报告.
  • 支持多设备.

3)ui-auto-monkey
Github下载地址:https://github.com/jonathanpenn/ui-auto-monkey
UI AutoMonkey是一个简单的面向iOS应用程序的压力测试插件框架。 你可以通过它向你的应用程序连续发出一系列随机的点击,滑动,旋转屏幕,锁屏,解锁等事件。同时它会通过instrument对你的App的性能状况进行实时监控。当应用程序发生crash,它会收集相关的crash日志并存储在本地。

6.4 安全测试框架

1)Mobile-Security-Framework-MobSF
Github下载地址:https://github.com/penghaibo203/Mobile-Security-Framework-MobSF
Mobile Security Framework (移动安全框架) 是一款智能、一体化的开源移动应用(Android/iOS)自动渗透测试框架,它能进行静态、动态的分析。

  • 静态分析器可以执行自动化的代码审计、检测不安全的权限请求和设置,还可以检测不安全的代码,诸如ssl绕过、弱加密、混淆代码、硬编码的密码、危险API的不当使用、敏感信息/个人验证信息泄露、不安全的文件存储等。
  • 动态分析器可以在虚拟机或者经过配置的设备上运行程序,在运行过程中检测问题。动态分析器可以从抓取到的网络数据包、解密的HTTPS流量、程序dump、程序日志、程序错误和崩溃报告、调试信息、堆栈轨迹和程序的设置文件、数据库等方面进行进一步的分析。

该框架支持二进制文件(APK & IPA)和源码压缩包。该框架的另一个特点是其可扩展性,你可以轻松制定自定义规则。测试结束后程序会生成一份清晰的报告。我们会进一步拓展次框架以支持Tizen、WindowsPhone等平台。

2)AndroBugs_Framework
官方网站:http://www.androbugs.com/
Github下载地址:https://github.com/jackcn2004/AndroBugs_Framework
AndroBugs框架是一款高效的Android漏洞扫描器,可以帮助开发人员或渗透测试人员在Android应用程序查找潜在的安全漏洞。它是基于Python语言开发的,无需安装,配置相关环境即可使用。

推荐阅读更多精彩内容