app测试内容_苹果发布app说app中包含测试内容怎么办 - CSDN
  • APP测试内容

    2020-04-16 10:34:54
    1. APP测试的准备 在进行APP测试之前,需要准备下列步骤。通过以下网站可以查找。 移动观象台:http://mi.talkingdata.com/terminals.html 1 确定APP的设备 选定被测试的设备终端。 记录设备的品牌 记录设备的...

    1. APP测试的准备

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

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

    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在网络异常的情况下,是否发生 ANR 和 Crash

    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测试
    • 截图断网等

     

    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的测试环境搭建:

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

     

    然后打开 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
    

    查看包名

     
    1. adb shell

    2. root@android:/ # ls data/data

    记录无线通讯日志

     
    1. adb shell

    2. root@android:/ # logcat -b radio

    删除系统应用

     
    1. adb shell

    2. root@android:/ # cd system/app

    3. root@android:/ # rm xxxx.apk

    退出adb的shell环境

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

    安装应用程序

    adb install -r C:\xxxxx.apk
    

    获取设备中的文件

     
    1. adb pull <remote> <local>

    2. adb pull /addroid/lib/libwebcore.so c:\tmp

    向设备中写入文件

     
    1. adb push <local> <remote>

    2. adb push C:\test.txt /tmp/test.txt

    卸载应用程序

     
    1. adb shell

    2. cd data/app

    3. rm apk包

    4. exit

    5. adb uninstall apk包的主包名

    获取管理员权限

    adb root
    

    获取设备的序列号

    adb get-serialno
    

    进入SQLite环境

     
    1. adb shell

    2. 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(压力测试工具)

       
      1. # 进入 ADB SHELL 环境

      2. adb shell

      3. # 获取 TPSHOP 的APP的包名

      4. root@android:/ # ls data/data | gerp soubao

      5. com.soubao.tpshop

      6. # 执行 Monkey

      7. root@android:/ # monkey -p com.soubao.tpshop -v -v -v 5000 -throttle 5000 --pct-motion 80% > sdcard/monkey_tpshop.log

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

       
      1. # 退出 ADB SHELL 环境

      2. root@android:/ # exit

      3. # 用 ADB PULL 获取文件

      4. adb pull sdcard/monkey_tpshop.log

      5. [100%] sdcard/monkey_tpshop.log

    5. 用ADB的方式卸载

       
      1. adb shell

      2. root@android:/ # ls data/data | grep soubao

      3. # 获取到 app的包名

      4. com.soubao.tpshop

      5. # 退出 adb shell

      6. root@android:/ # exit

      7. 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 使用比较多

    • 下面一个实例
     
    1. adb shell

    2. ls data/data

    3. 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测试内容大全

    2020-07-14 11:31:28
    参考《移动App测试的22条军规》、《测试工程师全栈技术进阶与实践》以及其他资料总结了在移动App测试中需要测试的内容。 文章目录引言功能测试单元测试集成测试/API测试系统测试/E2E测试探索性测试发布测试专项测试...

    引言

    参考《移动App测试的22条军规》、《测试工程师全栈技术进阶与实践》以及其他资料总结了在移动App测试中需要测试的内容。

    功能测试

    和网页端应用一样,首先需要保证功能正确性,通常有以下几个层次的测试。

    单元测试

    根据开发语言选择合适的单元测试框架,可以是Junit、Qunit、Robolectric。

    集成测试/API测试

    可以选择常用的api测试工具postman、rest-assured,postman可以用于辅助手工测试,rest-assured可以自动化api测试,和版本控制、持续集成完美结合。

    系统测试/E2E测试

    自动化测试工具很多,比如Appium、Monkey、Robotium、Monkey talk等,但通常选择Appium,它既适用于Android系统也适用于IOS系统,生态也完整。网上有很多自动化测试工具的比较,此处不再赘述。

    探索性测试

    敏捷测试中的一大主要测试方法,可以提前设计测试用例,也可以根据测试用例结果不断拓展,重要的是要站在用户角度,验证完整的用户旅程。

    发布测试

    发布测试是指测试要发布的新版本以验证其是否可以发布,策四内容可能是app的部分功能,也可能是全部功能。可以理解成是回归测试,它是一种测试类型,不是一个测试阶段,你可以在任何阶段进行全功能的回归/发布测试,如果你的自动化测试体系够完善的话。

    专项测试

    顾名思义,是移动app测试才会涉及的一些测试类型。

    安装卸载测试

    1. iOS原生应用,测试从appStore下载之后是否能成功安装、运行、退出。
    2. Android原生应用,测试从应用商店或第三方网站下载,是否能正常安装、运行、退出。
    3. 测试应用是否可以正常卸载,卸载后是否有残留文件。
    4. 在安装卸载过程中,也需要考虑内存不足、断网、断电等一场情况。

    流量测试

    测试app耗流量的情况,测试场景可以有但不限于:

    1. 执行业务操作是耗费的流量;
    2. 应用在后台运行时消耗的流量;
    3. 安装完成后首次启动时耗费的流量;
    4. 应用安装包本身的大小;
    5. 购买或升级应用需要的流量。

    耗电量测试

    测试app的耗电量,测试场景有但不限于:

    1. 应用运行但没有执行业务操作时的耗电量;
    2. 应用运行且执行密集业务操作时的耗电量;
    3. 应用运行且执行密集业务操作时的耗电量。

    弱网测试

    弱网测试是指app在不同网络情况下的测试,可以从一下几种情况入手测试:

    1. 网络正常情况下,功能是否正常;
    2. 无网络情况下,功能是否可用,是否有友好提示,数据是否丢失;
    3. 弱网情况下,是否有请求超时处理,数据是否丢失,是否出现请求堆积的情况;
    4. 网络状况切换,比如断开网络,切换网络类型,弱网恢复后是否发送重复请求等。

    特殊操作测试

    特殊操作测试是指对一些特殊手势的测试,比如滑动、拖拽、长按等。在设计app的手势操作功能时,也需要注意尽量使用与操作系统本身一致的手势操作,避免冲突。Android系统和iOS的手势操作也存在差异,所以多了解一些常用的手势操作对测试十分有用。

    交互测试

    交互测试是指测试app和其他app打交道时的情况。比如使用app时访问相机、相册、通讯录,app需要使用输入法,在app中间打开第三方网站链接,app使用社交账号登陆等。

    通知测试

    测试app推送的消息是否可以正确展示,不同的设备展示通知的地方和形式不同。

    交叉事件测试

    交叉事件是指在app使用过程中被其他应用打断的情况。比如被闹钟、电话呼入打断,这里列举一些常见情况:

    1. 多个应用同时运行&相互切换没问题;
    2. 应用运行时有电话呼入;
    3. 应用运行时接收短信;
    4. 应用运行时提示系统升级;
    5. 应用运行时闹钟响了;
    6. 应用运行时进入低电量模式;
    7. 应用运行时第三方软件弹出警告;
    8. 硬件的影响:耳机、home键、锁屏键、存储卡被拔掉。

    升级测试

    现在app基本都会做版本更新,版本升级一般是增量升级,即升级只增加新功能,不影响原有使用。所以需要测试app升级后原有数据是否存在,是否需要用户再次重新登陆等等。

    性能测试

    响应时间

    用户能明确感知到的业务操作的流畅度,比如页面渲染速度、请求速度等。

    CPU

    基本的性能测试监控指标。

    内存

    基本的性能测试监控指标,不同操作系统对app的内存使用空间有不同的限制。

    启动时间

    包大小

    安装包的大小直接影响安装过程是否流畅,以及消耗的流量、电量等。

    兼容性测试

    移动设别类型很多,所以移动app的兼容性测试显得及其重要,也远比web应用的兼容性测试复杂。

    芯片兼容

    考虑不同芯片对app的影响,比如高通、三星、intel等不同厂商的芯片。

    系统兼容

    通常是Android和iOS这两种系统,网站https://www.netmarketshare.com/可以查询各种系统的市场占有率,可以做为参考。

    品牌兼容

    各个品牌的移动设备在硬件和系统上(特别是Android)都有较多的差别,可以参考网站https://www.phonearena.com/查询各个品牌的移动设备的参数差别。

    屏幕大小、分辨率兼容

    屏幕大小、分辨率的差别直接影响用户使用习惯和app的内容显示,所以最好选择不同屏幕大小、不同分辨率的设备进行测试。

    安全测试

    权限

    测试app是否有访问用户各种信息的权限,如果有,是否征得用户同意。

    传输内容

    传输的内容是否加密,是否携带了敏感的用户信息等。

    广告

    一些app为了盈利会插入广告,这时就需要验证广告跳转是否安全。也需要查杀一些恶意广告软件。

    防护

    用户体验测试

    屏幕横竖测试

    关注用户使用习惯,app是否支持横竖屏,如果支持,需要测试。

    遵循规范与习惯

    App设计是否遵循一些基本的操作系统习惯,降低用户学习成本。

    关注特殊人群

    比如字体放大功能、语音阅读功能等。

    展开全文
  • App测试实战:测试内容、测试工具、测试效果

    万次阅读 多人点赞 2018-09-23 23:41:21
     0.1App测试内容:  1、常规的功能和性能:功能遍历、业务响应速度、界面测试等  2、专项测试:主要是 系统指标包括耗电、内存占用、流量消耗、CPU(计算量)、启动速度、流畅度、安装包大小  3、特殊测试:...

    零、概述

      0.1App测试内容:

           1、常规的功能和性能:功能遍历、业务响应速度、界面测试等

           2、专项测试:主要是 系统指标包括耗电、内存占用、流量消耗、CPU(计算量)、启动速度、流畅度、安装包大小

           3、特殊测试:弱网络测试、用户体验测试(流畅度、易用性)、终端兼容性测试

           4、信息安全测试

        0.2 App测试工具:

            

       0.3  测试效果评价

     

    一、APP测试

    1、常规测试

    这部分和一般的软件测试时比较相似的。重点还是:

    功能覆盖测试。  

    界面的易用性测试。 这个基本上要靠人来看。

    目前常规功能测试这块,业界比较推崇的工具是:Appium。

    其实对服务端也要关注:

       重点就是业务响应速度。专项测试特别流畅度是关心终端性能,业务响应速度是从服务端来说的。当然这些和普通的Web测试没有太大区别。

    2、专项测试(专项性能测试,也是终端特有的)

    2.1 启动

    启动一般分为:

    冷启动:首次启动   时间一般为ms,通常要求1000ms以下,600ms为较好指标

    冷启动命令:adb shell am start -W -n 包名/activity

    冷启动停止:adb shell am force-stop 包名

    热启动:应用切换到后台再次被唤起

    热启动命令:adb shell am start -W -n 包名/activity

    2.2电量

    GT可以直接看到

    命令(5.0以上系统才可以):

    1.下载historian.py脚本,下载地址:https://github.com/google/battery-historian,后面用

    2.执行步骤

    1)初始化batterystats数据

    adb shell dumpsys batterystats--reset

    2)拔掉手机,操作app,操作完成后,重新连接手机,执行下面的命令,收集系统整体的Battery数据:

    adb shell dumpsys batterystats > batterystats.txt

    3)得到这些数据后,这个时候使用我们的battery-historian来生成我们可见HTML报告:

    python historian.py batterystats.txt > batterystats.html

    4)用google浏览器打开此文件即可

    备注:阅读腾讯TMQ的《移动APP性能评测和优化》,基本思路也是分析batterystats日志,找到异常,再回头来看是代码问题还是系统设置或用户环境原因。

    2.3  内存

    Android用AS中的MemoryMonitor大概看看,比如内存始终在增长、内存抖动等。然后dump内存hprof文件出来用MAT分析一下,一般的Heap的内存问题基本就可以发现了。

    摘抄腾讯TMQ的《移动APP性能评测和优化》中的一些方法和经验:

    1)最常规也最重要的当然是MAT,分析hprof文件,获得内存消耗的排行分析,据此有针对性地来改良代码。一般地图片和大数组消耗没有释放等,可以很快发现。

    2)代码中存在的内存泄漏,一般可以用代码白盒分析工具,找到疑点。常见的如Klocwork。

    3)dumpsys  meminfo来观察应用的内存消耗情况。了解APP运行过程中,内存组成各部分的变化情况。

       内存中存在大量的Dalvik Pss,一般就是出现碎片问题。可能原因如大循环中的临时变量等。

      dex文件优化:中载入类文件,由于次序问题(按照类名字母顺序)载入,但释放时不是这个顺序,合理命名有助于次序一致,减少载入类文件带来的碎片的出现。(这个一般对大应用比较明显)

    2.4 流畅度

    现在一般的方法是测试FPS。用TraceView来看。但其实这种方法有它不合理的地方,比如画面静止的时候,FPS为0,但不卡。因此,腾讯TMQ的《移动APP性能评测和优化》中,采用平滑度(SM)来评估,就是评估CPU能不能处理得过来,60次每秒的处理率,能够满足说明处理得过来,不卡。

    2.5  CPU使用率

             这个指标其实是很有误导性的,多核和单核;多线程和单线程处理;为省电降频;等等;例如,多核移动CPU为了省电,平时只用低频的4核工作,不搞清楚原理,只是全速运行然后得到一个数值,其实是不太合适。腾讯TMQ的《移动APP性能评测和优化》中,提出Jiffies来考核,就是处理事务所用的CPU周期数。

    2.6  流量统计

           App的流量消耗是必须要测试的。但这个测试其实是一个伪命题,简单来说,应该是两种业务需求的测试:一个是测试网络环境优良情况下,APP业务工作时候的流量情况;一个是日常没有业务操作的守候情况下的流量消耗情况;至于弱网络情况下的,这个应该放到特殊专项测试里面去处理。其他的应该根据业务场景来分别设计。

          流量测试的基本方法就是抓包,例如tcpdump;不过常用方法应该还是设置PC为代理服务器,通过安卓终端连接PC,在PC上抓包。抓包前准备工作:把其他APP能卸载的卸载掉,能关闭连接的都关闭掉后台服务,减少干扰。抓包一般转化成txt或者xml文件,然后用python等编制好的自动化处理脚本提取出来,方便分析。

    2.7安装包大小

           这个一般不需要单独测试了,打包后看下大小就知道了。关键的在于如何去优化,减小安装包。方法当然很多,着手的方向主要是两个,一个是代码,一个是资源。(腾讯TMQ的《移动APP性能评测和优化》第6章)

           代码:1、去除废代码、冗余代码  用Lint一般可以发现;2、去掉不必要功能;3、调整代码,去掉一些method;4、使用代码混淆(文件命名等处理);

            资源:1、去除冗余资源 用Lint扫描;2、资源混淆;3、压缩图片大小,不必要的可以降低图片精度,调整图片格式等;4、减少一些资源,非常偶尔用的可以用到时再去服务器下载;

            最后,还可以 优化压缩算法,也许可以进一步减少安装压缩包。

    3、特殊测试

             3.1  兼容性测试 

              这个一般测试都不会有那么多真机或者平台。可以考虑使用云测平台,比如tetsin;或者自建单位内部众包平台,拉单位人员和外部一些友好用户进来,和用灰度测试的方式,预发布,在一段时间内收集问题。

            3.2 弱网络测试

            一般的方法都是使用模拟软件,控制丢包率来进行模拟,搭好平台实测一下即可。其实众包平台往往更合适。另外,腾讯GT诞生时就是所谓的随身调平台,带上这个工具,去实际路测一下,也可以算是一种简化版的测试方式。

             3.3 用户体验测试

             这个其实很难说,因为流畅度、易用度、界面设计等等这些真的是要人来体验了。一些可靠性的问题,例如,适时保存数据;提示存盘;防止外部通知、外部访问、网络中断或网络延迟较大等导致crash这一类APP必然会遇到的实际应该算功能问题,应该考虑作为功能问题来覆盖,而不是放到用户体验里面来笼统地应付。可以根据策略简化测试,但是要独立出来,不要混。

    4、信息安全测试

            非常非常重要。现在没有也没有特别好办法,一般还是用Burpsuite或Drozer一类软件扫描来做。

    二、APP测试工具

           工具太多,其实用好Android自带的各个工具基本就可以了:Lint、MAT、DDMS、Systrace、Traceview。抓包的Fiddler设呢么的酬和着用用。其他的建议关注Appium和GT。

    1、Appium  

    2、GT   使用比较方便

    三、测试效果评价

    1、测试前评审、测试执行中和测试后总结-----覆盖完整度:(新应用,要求花一定时间来设计和讨论(相当于评审);每日测试完成,要讨论和评估一下测试效果)

      a)测试设计首先要覆盖完整,比如不要漏了服务端,不要漏了信息安全测试,不要缺了一些重要的专项测试,考虑了,但是根据实际情况可以不测试,这个是另外一回事;测试范围和测试策略选择始终是测试方案设计的重点;

     b)常规功能首先覆盖完整;各种应用场景要考虑清楚,不要美其名曰探索性测试,然后随意点来点去,发现一堆问题,最后发现弱网络没测试,网络切换场景没做,跳转支付没考虑等等。

    c)测试手段覆盖完整:可以在APP开发的时候就先做一下设计评审,评估需求是否合适、合理;测试前可以先上Lint一类的白盒工具,或者并行

    2、测试中和测试后及时总结

    a)测试覆盖度,必要时要补充设计,重新测试

    b)发现问题的情况:问题的类别和趋势还是要适时分析评估,顺便可以要求开发者改进

    c)测试工作本身是否可以模板化甚至工具化

    d)其实团队负责人要借这个总结评估一下团队成员情况。

    展开全文
  • 最近要测试手机端APP,所以查找了一下有关APP测试需要注意的事项,做了一下总结。如有补充,欢迎评论! 手机APP测试与WEB测试其实相似,但是也有特别需要注意的一些不同点,此处只列出部分注意事项,相同之处暂不...

    最近要测试手机端APP,所以查找了一下有关APP测试需要注意的事项,做了一下总结。如有补充,欢迎评论!

    手机APP测试与WEB测试其实相似,但是也有特别需要注意的一些不同点,此处只列出部分注意事项,相同之处暂不列举(可查看文章下方所附链接有相关补充)。

    一、功能测试

    1、安装;

    2、卸载;

    3、登录;

    4、注册;

    5、注销;

    6、数据更新;

    7、APP更新;

    8、软件是否正常运行;

    9、前后台切换;

    10、免登录;

    11、离线浏览;

    12、PUSH测试;

    二、客户端测试

    是否APP软件有PC版,有的话需要查看软件在不同版本浏览器、中高低端PC上是否正常运行;

    三、兼容性测试

    软件测试_APP测试_兼容性测试

    要求对市场上占有率较高的手机进行测试;

    四、安全性测试

    涉及到支付、获取通讯录、定位等安全信息的模块都要进行安全测试;

    五、中断测试

    1、使用APP时有电话打入;

    2、使用APP时有短信收入;

    3、使用APP时有其他软件提醒,如微信信息;

    六、弱网测试

    1、使用APP过程中网络信号变差;

    2、使用APP过程中WIFI和4G相互切换;

    3、使用APP过程中断网之后再次连接;

     

     

    APP测试用例相关链接:

    1、APP功能测试7大注意点

    2、部分异常测试

    3、APP测试基本步骤

    4、APP测试流程梳理

     

     基本涉及到原创都已附上链接,如有不妥删。欢迎大神指点,欢迎小菜鸟一起来玩耍,我们一起成长呀!

     

    转载于:https://www.cnblogs.com/liu-Test/p/10021103.html

    展开全文
  • APP测试内容(一)

    2019-02-01 09:47:04
    APP测试内容(一) 单机版,网络版 一、 兼容性测试(品牌,android内核的版本) a) android版本 b) android自带的模拟器 c) 各品牌手机 d) 版本向上兼容,向下兼容测试 二、 安装与卸载...
  • Android APP功能测试内容(完整版),全部个人总结,非常详细,绝对值得学习
  • 一、 测试流程图 二、每日工作 1、发现BUG时,要准确、详实的描述bug产生的过程、BUG的现象,协助开发工程师定位并跟踪问题,直到BUG解决 2、每天跟踪开发人员新需求的开发进度,作好记录,了解项目进度 3...
  • APP 测试内容主要包括哪些,如何开展? 功能测试: 1.业务逻辑正确性测试:依据:产品文档-&amp;gt;测试用例编写 兼容性测试: 1.系统版本:Android:官方版本,定制版本;IOS:官方提供版本 2.分辨率:720 * ...
  • 手机APP测试用例大纲

    2020-07-30 23:31:53
    手机APP测试用例大纲,从安装卸载、功能、用户体验、交叉事件、性能负载等APP相关测试内容的大纲
  • 我只是测试一下VIP文章和APP阅读按钮冲突我只是测试一下VIP文章和APP阅读按钮冲突我只是测试一下VIP文章和APP阅读按钮冲突我只是测试一下VIP文章和APP阅读按钮冲突我只是测试一下VIP文章和APP阅读按钮冲突我只是测试...
  • 大话移动APP测试

    2020-07-29 14:18:29
    《大话移动APP测试:Android与 iOS应用测试指南》内容包含:移动互联网测试人员的面试,用户体验测试,功能测试,常用测试工具,常用框架,APP测试案例,以及更多的从业相关思维、手段等非技术内容
  • 本片内容主要从四个方面来讲解,分别是用户获取渠道、下载安装、开发周期、发布审核 一、用户获取渠道 小程序:通过用户分享、二维码、搜索小程序来获得 APP:通过应用市场来获得 二、下载安装 小程序:无需下载...
  • 手机APP测试报告模板

    2020-07-29 14:20:10
    手机APP测试报告模板,综合市面上产品开发后,需要测试的内容
  • 移动APP测试--手工测试要点总结

    千次阅读 2017-05-23 23:40:48
    移动APP测试 本篇主要阐述APP的手工测试要点,并概括介绍主流的APP测试框架。 1. APP测试的准备 在进行APP测试之前,需要准备下列步骤。通过以下网站可以查找。 移动观象台:...
  • 手机app测试方法(一)基本流程

    千次阅读 2017-02-15 16:42:36
    先简单介绍下APP测试流程,下一篇主要给大家介绍介绍一下APP测试
  • app测试和web测试有什么区别?

    千次阅读 2018-11-12 13:10:12
    假设你做过web测试,也做过app测试,那app测试相比web测试,有什么区别呢? 这个几乎都会被问到的问题,好好准备下。
  • App测试流程思维导图

    2020-06-21 17:18:02
  • APP测试基本流程,测试周期,测试资源,日报及产品上线报告。 app测试点:安全测试,安装卸载测试,UI测试,前后台切换测试,性能测试,兼容测试等
  • APP渗透测试之代理篇

    2019-10-17 10:19:14
    本课程就APP渗透测试中的服务端测试进行讲解,课程中讲解如何使用夜神模拟器,如何抓取app中的http协议流量及HTTPS协议流量。结合web服务端测试,通过抓取的流量进行修改来完成服务端渗透测试
  • APP接口测试和功能测试

    千次阅读 2018-08-01 10:02:34
1 2 3 4 5 ... 20
收藏数 623,010
精华内容 249,204
关键字:

app测试内容