目前市面上主流的移动操作系统就是 Android 和 iOS 两种,移动端测试本身就跟 Web 应用测试有自己的专项测试,比如安装、卸载、升级、消息推送、网络类型测试、弱网测试、中断测试、兼容性测试等都是区别于 Web 应用需要关注的测试领域。那么,对于 Android 和 iOS 两个系统来说,测试同一款 APP,又有哪些区别呢?

首先,关于功能实现以及界面测试等方面,两个系统基本是一致的;只是由于系统的某些实现方式的区别,导致了个别测试领域的区别。所以,我们接下来分析一下这两种系统之间的测试区别到底有哪些?

1、安装测试

测试版本安装

Android 非常简单,提供一个 apk 包,就可以在任何设备上安装这个 APP 并进行测试了;

iOS 比较复杂一些,没有经过苹果审核是不允许安装的;所以需要安装测试版本,就需要采取一些额外的手段,比如手动添加 UDID 到开发者账号,或者使用 testflight 工具,具体操作,可以见之前的一篇文章【附上之前文章的链接】

线上版本安装

Android 可以上传的应用商店比较多,比如谷歌商店,360 商店,安智市场等,还有各大应用管家都可以上传并提供给广大 Android 用户下载使用;所以,测试人员对 Android 应用的线上测试需要覆盖所有支付的渠道;

iOS 众所周知,只有一个苹果官方的 App Store 可以下载安装应用,其他的渠道都是不允许的。因为需要上传到线上发布,是需要苹果进行审核和授权的,而且一般审核周期要等到 3 天-2 周不等。所以,iOS 测试人员,需要等到苹果审核通过之后,从 App Store 上下载应用,验证线上版本的可用性。

2、兼容性测试

Android

因为系统被开源,很多不同厂商在这个基础上二次进行开发,所以导致出现的操作系统类型以及版本都非常多,比较常见主流的有:华为、小米、OPPO,Vivo 等,还有很多比较小众非主流的操作系统;而且每个系统都有很多的版本,包括大版本和小版本;以及每个厂商的手机屏幕大小也差异比较大,所以 Android APP 的兼容性测试就会比较复杂一些;

iOS

就只有单一的苹果系统,虽然也经常更新版本,但是随着苹果官方系统版本的升级,一般我们只需要维护最新的几个主流版本的兼容性测试即可;选取的主流系统版本,再覆盖 iOS 的几款主流的屏幕大小的机型,兼容性测试会相对来说简单很多。

2、升级测试

升级测试 iOS 限制也比 Android 多一些。

iOS 有严格的降级限制,最开始只能单向升级,不能降级;虽然松懈了一点可以做降级操作,但是也限制了特定机型的最低降级版本,比如 iPhone X 最多只能降到 iOS 11.2,iPhone 5 最多可以降到 iOS 6.1.3,之所以有这个限制其实是因为通常新的 iOS 系统版本中的资源库不能完全兼容低版本中的应用,低版本 iOS 系统中的应用如果调用了新系统中的资源库,有时会直接导致闪退(Crash)出现;所以,我们做 iOS 的升级测试的时候,基本只需要关注对应的版本之间的升级即可。

Android 系统的降级限制没有那么严格,通过一定的工具都可以降级成功。

3、权限测试

Android 众所周知的就是 Android 的个人信息泄露比较严重的,比如很多 app 在安装时会要求很多权限,Android 系统会提示是否允许获取手机的某个权限,但是即使用户不给,Android 也有各自手段偷偷的获取这些权限,所以 Android APP 的这种权限测试不是很严苛;

iOS 一般情况下权限管理的很严格,用户没有同意的权限,APP 是一定没有办法绕过并获取的,所以应用不会去获取一些没有意义的权限;而且应用要上线苹果商店时,苹果官方的审核机制也是比较严格,经常会出现审核不通过的情况。所以 iOS 的权限一般情况下会要的很少。因此,iOS 测试的权限场景较少,但是会很严格。

4、应用实现的机制

Android 采用的虚拟机机制,而 iOS 采用的是沙盒机制。

虚拟机机制的特点是:

  1. 每个应用程序都在独立的虚拟机中,这些独立的虚拟机实例都是一个独立的进程空间。
  2. 跟 Linux 内存管理很相似,是真正的多进程管理,虽然可用内存最后看着少,但是实际上很多程序已经分配了一定的内存了,在唤起时不会再次分配一次,而且已经有了缓存,启动和响应会比较快。

沙盒机制的特点是:

  1. 应用程序在自己的沙盒中运作,但是不能访问任何其他应用程序的沙盒;
  2. 应用之间不能共享数据,沙盒里的文件不能被复制到其他应用程序的文件夹中,也不能把其他应用文件夹复制到沙盒中;
    3)苹果禁止任何读写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中;

5、安全机制

iOS 安全机制主要通过一下两个方面来实现:

  1. 通过刚刚上面讲到的**“安全沙箱**” 机制来实现安全机制。应用之间数据和文件不能共享;
  2. 通过对代码签名,Apple 需要所有开发人员对自己的 iPhone 应用程序使用数字签名技术。这个签名用来标识应用程序的开发者以及保证应用程序在签名之后不被更改和损坏。开发者证书由 Apple 提供(这是与 Android 最大的区别,Android 是自签名),有以下两类证书:

Developer Certificate :用于本机测试

Distribution Certificate :用于 100 台设备以内的测试和共享;App Store 用于发布应用程序所有的可执行文件、库文件都需要 Apple 签名后才可以运行在 iOS 中。

Android 安全机制通过以下两个方面来实现:

  1. 虚拟机机制,每一个 Android 应用程序(apk 文件)会在安装时分配一个独有的 Linux 用户 ID(即一个用户 id 识别一个应用程序),使其不能与其他应用程序进行接触。这个用户 ID 在安装时分配,并在该设备上一直保持同一个数值。所有存储在应用程序中的数据都会赋予该应用程序的用户 ID,使其他应用程序无法访问这些数据。
  2. 代码签名,但是跟 iOS 不一样的是,Android 采用自签名机制,不需要权威机构签名和审核,完全由用户自行判断是否信任该程序。

总结

综上所述我们可以发现,由于近些年这两个系统之前不断的相互借鉴的原因,在设计上来说越来越通用,两个平台的使用体验也越老越比较统一,所以网上很多文章说的关于一些界面设计风格、用户使用习惯的区别,我觉得也没有特别大的参考价值。作为测试,我们可有多关注一些底层实现的原理,能够帮助我们更加深刻的理解他们在细节实现上,从而就可以帮助我们测试更加充分!

  • 本文由柠檬班  tricy 老师原创,转载需注明出处!
  • 想了解更多咨询的同学,可以加辅导员领取相关学习资料:qd20150815  备注:CSDN   领取哦

Android 和 iOS APP 测试的区别相关推荐

  1. 《大话移动APP测试:Android与iOS应用测试指南》

    <大话移动app测试:android与ios应用测试指南> 基本信息 作者: 陈晔 出版社:清华大学出版社 ISBN:9787302368793 上架时间:2014-7-7 出版日期:20 ...

  2. java与ios的区别_好奇?Android与iOS究竟有什么区别?终于知道了!

    智能手机系统的发展从如今的百花齐放在到三足立鼎,而发展到了现在则是安卓与ios两家平分天下.谁的系统好用?到底是IOS好呢,还是安卓系统好呢?至今没有一个结果.那么Android与iOS到底有什么区别 ...

  3. 小程序测试与app测试的区别

    小程序测试与app测试的区别 小程序测试与app测试基本上都一样 小程序和app区别 1. 用户获取渠道区别 小程序: 二维码.用户分享推荐.搜索小程序 APP: 需要去应用市场(或其他)下载 2. ...

  4. 小程序测试和APP测试的区别

    小程序测试和APP测试的区别 小程序测试和APP测试在功能测试上逻辑一样,主要是理解项目的需求设计等,查看功能模块.业务流程.同一功能不同入口时有效性检查.页面交互性检查.输入输出等逻辑进行测试. 以 ...

  5. 手游与App测试如何快速转型? —— 过来人科普手游与App测试四大区别

    随着智能设备的普及和移动互联网的兴起,各家互联网巨头纷纷在往移动端布局和转型,同时初创的移动互联网公司也都盯着这个市场希望分一杯羹.在这个大环境下,互联网的重心已经慢慢从Web端转向了移动端,而移动端 ...

  6. Android 基础知识+app测试权限问题

    Android 基础知识(权限篇)** 前言 ​ Android是一个开源的,基于Linux的移动设备操作系统,主要用于移动设备,如智能手机和平板电脑.Android是由谷歌及其他公司带领的开放手机联 ...

  7. Cordova开发流程-H5 JS转Android 和Ios App

    前言:cordova是使用前端技术来开发app,可以节省成本和快速发布.不需要了解原生app开发 加载web的方式,可以兼容生成Android.ios以及浏览器等各种平台的项目 cordova封装了相 ...

  8. web、pc客户端、app测试的区别

    一.系统架构 - web为b/s结构,只有一个版本,服务端和web端更新了之后,刷新一下页面也就同步更新了 - pc.app为c/s结构,服务端更新了,需要对各个主流版本进行兼容测试及回归测试,客户端 ...

  9. 小程序和APP测试的区别

    从功能和界面来说没有太大的区别. 主要的区别有以下几点: 1.下载渠道和安装卸载: 小程序主要是通过扫二维码,用户分享推荐以及搜索小程序来获取,是不需要下载安装的,清除的时候直接删除就可以了. app ...

最新文章

  1. 一个同步github上fork过来的项目的批处理脚本
  2. python OrderedDict 详解
  3. [html] 使用canvas制作一个印章
  4. 华为机试——字符串分隔
  5. 模拟轮盘抽奖游戏 python_“吃鸡”4位美女在现实中,穿上游戏的“新军需”,这身材绝了...
  6. 对还剩20天的FPGA大赛规划
  7. 推荐:总能找到一个你觉得最好的免费电子书下载网站
  8. 轻松办公信息化 六大OA产品优劣点评
  9. 运放输入偏置电流方向_运算放大器的输入偏置电流
  10. arima 公式_R时间序列分析(8)ARIMA(上)
  11. MC9S中断函数编写
  12. ARM汇编中^、!、cxsf符号和movs等指令使用
  13. 松翰单片机之M2ASM创建新工程
  14. 以太坊nonce详解
  15. 内存 显存,cpu,GPU,显卡
  16. 对“巴洛克式“(巴罗克式)的理解
  17. vue3实现电子实时时钟(动态时钟)
  18. 什么是MyBatis
  19. 关于Switch的参数
  20. mysql _数据库表的创建

热门文章

  1. 2016流行这2种色彩!附优秀网页设计案例
  2. 【加密与解密】C#如何读取pem的KEY文件
  3. 实施ERP系统后需要维护吗?
  4. 一个Office 365中有两个产品激活授权,怎么去除不需要的授权信息
  5. char类型数据说明
  6. Oracle的 wm_concat 的排序问题,Oracle的 listagg 函数[转]
  7. 计算机网络涉及的数学知识点,计算机考研:计算机网络六大重要知识点
  8. Windows上查看CUDA是否安装成功
  9. ffmpeg库编译加文字_我自己的FFMpeg编译之路
  10. 高光谱解混与变化检测专题