移动 App 测试

作者: 厲铆兄 | 来源:发表于2016-01-07 21:59 被阅读2743次

    移动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语言开发的,无需安装,配置相关环境即可使用。

    相关文章

      网友评论

      本文标题:移动 App 测试

      本文链接:https://www.haomeiwen.com/subject/kmmfkttx.html