iOS和安卓各自优缺点和测试时区别

iOS和安卓各自优缺点:

1.运行机制:安卓是虚拟机运行机制,IOS是沙盒运行机制

安卓系统中应用程序的运行都是在虚拟的环境中运行的,运行方式是数据先传输到虚拟机,再由虚拟机传递到用户界面(简称UI)。而苹果IOS的沙盒运行机制则有一个相对规整的分隔控制,也就是相当于把每个应用程序放在自己的沙盒里进行文件的读取,每个沙盒都是相对独立的。沙盒模式使得每个应用程序都在自己的沙盒里进行,相互之间不能互访和干扰,并且所有的非代码文件都要保存在各自的文件夹里,只是一个很好的模式。而虚拟机运行机制就不那么理想了,程序之间可以互访,这就使得内存占用的很大、消耗很快,这势必然会增加垃圾文件的产生,程序运行越多内存占用越快,如此一来,手机会越用越卡。

2.后台制度:IOS和安卓的后台推送原理后台制度是不同的

IOS的推送依托的是系统常驻进程,苹果的所有消息的推送都会得到这些常驻进程的接管,常驻进程与应用程序之间是相互独立的。这些常驻进程与苹果的服务器进行数据交换,也就是说苹果手机上的应用程序其厂家提供的服务器必须要先与苹果服务器通信,而后中转到手机。因为有了常驻进程的存在便不需要应用程序有自己的进程在后台存在与自己的服务器通信,减少了系统的开销,也减少了内存的消耗。安卓需要每个应用程序都在后台建立自己的进程,每个应用程序与自己的服务器交换数据,不像IOS那样把大部分数据处理交给云端。安卓自有自己的优点,那就是这种运作机制使安卓机的程序运行更加稳定。

3.指令权限:IOS的指令中UI是具有最高权限的,安卓则是数据处理指令具有最高的权限。

:IOS给了用户界面更加自由的操作空间。安卓则是数据处理指令具有最高的权限。由于IOS的最高权限给到了UI用户端,故而使得未越狱的IOS获得了最好安全性。现在的安卓一般本身存在root开关的,由于应用程序的权限过高则导致存在了相比未越狱IOS更高的安全隐患。
越狱和root:越狱就是指破解IOS的限制从而获得最高权限,实现更加自由的控制;root是指系统的所有权限,当然具有最高权限,这既保证了手机安全又具有摧毁手机的隐患存在。

4.其他优缺点

IOS由于比较封闭所以比较安全,安卓的扩展能力更强;IOS开发简单但是调试困难,安卓开发繁琐但是调试容易。

APP测试时区别

Alt
1 . Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
2. 多分辨率测试,Android端20多种,ios较少;
3. 手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
4. 操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
5. push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);
6. 安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
7. 升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)
8.另外:对于测试还需要注意一下几点:
8. 并发(中断)测试:闹铃弹出框提示,另一个应用的启动、视频音频的播放,来电、用户正在输入等,语音、录音等的播放时强制其他正在播放的要暂停;
9. 数据来源的测试:输入,选择、复制、语音输入,安装不同输入法输入等;
10. push(推送)测试:在开关机、待机状态下执行推送,消息先死及其推送跳转的正确性;应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转否正确;推送消息阅读前后数字的变化是否正确;多条推送的合集的显示和跳转是否正确;
11. 分享跳转:分享后的文案是否正确;分享后跳转是否正确,显示的消息来源是否正确;
12. 触屏测试:同时触摸不同的位置或者同时进行不同操作,查看客户端的处理情况,是否会crash等

移动App Bug的影响是用户体验差、App的商店评级下降、用户换用竞争对手的App,声誉和信誉损失、最后销售量减少,如果它是一个付费App的话。
移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:
  环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。
  设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。
  网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。
  可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) 。
  所有这些手机专有的复杂性需要新的针对移动App测试的测试用例设计方案。

最常见的移动App Bug
  根据调查的结果,移动App崩溃是最常见的移动App Bug ,这是预料中的结果,因为很容易发现一个移动App崩溃。Android OS上一个写着“强制关闭错误”的弹出窗口跳上屏幕;当发生崩溃时,iOS中App屏幕突然消失消失。最坏的情况下,App崩溃可能会导致系统故障,操作系统崩溃。

移动App崩溃原因【一些崩溃原因(排名不分先后)】:
  为什么移动App经常崩溃?App崩溃有几个原因:从平台或环境到开发问题。
  设备碎片化:由于设备极具多样性,App在不同的设备上可能有表现不同。
  带宽限制:带宽不佳的网络对App所需的快速响应时间可能不够。
  网络的变化:不同网络间的切换可能会影响App的稳定性。
  内存管理:可用内存过低,或非授权的内存位置的使用可能会导致App失败。
  用户过多:连接数量过多可能会导致App崩溃。
  代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败。
  第三方服务:广告或弹出屏幕可能会导致App崩溃。

移动App崩溃的测试用例设计
  测试用例是移动测试最重要部分之一。
  准备和执行预先定义的针对移动App崩溃的测试用例将简化和加速移动App崩溃的测试。

一些通用的触发移动App崩溃的测试场景,如下:
  1 验证在有不同的屏幕分辨率,操作系统和运营商的多个设备上的App行为。
  2 用新发布的操作系统版本验证App的行为。
  3 验证在如隧道,电梯等网络质量突然改变的环境中的App行为。
  4 通过手动网络从蜂窝更改到Wi-Fi ,或反过来,验证App行为。
  5 验证在没有网络的环境中的App行为。
  6 验证来电/短信和设备特定的警报(如警报和通知)时的App行为。
  7 通过改变设备的方向,以不同的视图模式,验证App行为。
  8 验证设备内存不足时的App行为。
  9 通过用测试工具施加载荷验证App行为。
  10 用不同的支持语言验证App行为。
  显然,还会有更多的导致App崩溃的App特定场景。
结论
  在这项研究中,展示了针对移动App崩溃的通用测试案例。
  如果移动测试团队在他们的测试场景中准备并执行这些测试用例,那么早在开发周期就可以找到崩溃相关的Bug。然后,开发团队将阐明崩溃原因,并找出一个解决所有Bug的通用方法。最后,App质量和用户满意度就会增加。

OS系统的这些小功能会影响到你的APP哦,你测了没?
一、iPhone6以上机型的放大模式
功能入口:设置→显示与亮度→显示模式→标准/放大
说到这不得不提国民老公思聪在我们尚未拿到iPhone6真机时,给iOS手机输入法提的bug。搜狗输入法在标准模式下显示异常,无法正常使用,另外一个输入法在放大模式下存在相同问题。所以经验之谈,同行兄弟姐妹在测试APP时,要注意iPhone6以上机型有两个显示模式哦~在日常测试时可选择在一个模式下主测,在另一个模式下进行基本测试便可。

二、后台运行机制

  1. IOS系统有独特的任务管理机制。当应用程序不在前台运行时,除了GPS服务、音频播放服务和VOIP服务以外,其他的应用在10分钟后都是被系统挂起的,从技术上来说,被挂起的意思等同于不执行,只是数据驻留在内存而已。

  2. 内存管理机制。简单而言,在执行任意应用时,应用向系统申请内存空间,如果应用在使用的过程中不断申请内存,超过了系统限定的内存区间,系统会发出内存警报,严重时会直接将应用杀死。同样,如果应用向系统申请内存在,系统内存空间不足,系统会结束后台应用的进行,以释放空间资源

  3. 伪多任务。例如微信,看起来貌似是在后台运行,其实不是。你能收到消息提示只是系统推送服务,无论你的应用程序是否在运行,IOS都会在后台维护这个服务以实现假的多任务,并且所有的应用程序都会共用这一服务通道

所以在测试时不妨在用例里面增加几条后台交互的用例,检验应用的数据是否能正常保存,验证应用被系统强制挂起后,再唤起是否能够正常启用,监测内存占用情况等等

三、iOS系统时间不正确可能导致的问题
由于在测试时会有调节系统时间的操作,在网络正常的情况下,反复频繁的调节系统时间后,发现经常会遇到以下情况,将时间日期改为“自动设置”就会恢复正常了。

  1. iMessage登录失败,提示网络错误,重新登录
  2. 软件更新失败,在更新过程中报错
  3. App Store登录失败或App Store加载出错

四、 后台自动更新应用功能
功能入口:设置→App Store与iTunes Store→更新
当系统检测到当前设备登陆的账号下载的应用存在更新,会自动更新。很多用户误认为应用有强盗行为,会主动在后台静默更新,其实这是iOS系统本身的功能,且默认开启。
在测试验证升级时,可事先将该功能关闭,以免测试环境未部署好,应用便自动更新了~

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值