参照:https://blog.csdn.net/weizhi3320/article/details/106028145
安卓标准的菜单/Home/返回键
安卓手机系统支持降级
安卓手机连接电脑,然后在电脑上安装历史版本,恢复到低版本,即完成降级,降级有风险,降级前先做好数据备份
实例参照:https://zhuanlan.zhihu.com/p/71260151
IOS的资源库
1、App资源库也叫做App Library,系统也会自动帮你分门别类,整理组成文件夹,也会将常用软件放置在一起,方便用户快速找到
2、首先需要将iPhone手机升级至iOS14以上才有这项功能
3、接着打开iPhone手机后,将屏幕向左滑动,滑到最后一页
4、滑动之后就可以看到APP资源库页面
5、在APP资源库页面,可以根据归纳的文件夹选择应用进入。同时,在APP资源库向下滑动。
6、如果是向下滑动,则可以看到全部的应用程序按A-Z进行排列
7、另外也可以在顶部的搜索框输入自己要查找的APP名字来找到对应的程序
8、如果需要退出APP资源库,向右侧滑动页面,即可返回到手机桌面。
IOS的下载渠道
除了APP store,还有iTunes(通过苹果电脑安装app,再更新到对应apple id的手机上) 和 testflight(比如内测版本,未上架到APP store的苹果应用(可能是新版本的内测版本),可以通过testflight进行分发、扩散)
苹果和安卓APP 可以被升级的必要条件
新旧版本具有相同的签名、包名,有一个标示符区分新旧版本(如版本号)。
- 常见的区别
- 单条item的操作
iOS:单条item的操作有两种,点击和滑动,点击一般进入一个新的页面,滑动会出现对这条item的一些常用操作,如微信里滑动一条对话,会出现标记未读和删除。
Android:,单条item的操作也有两种,点击和长按,点击一般进入一个新的页面。长按进入一个编辑模式,可以在里面进行批量和其他一个操作,比如删除,顶置等等。比如小米的短信页面
例外的是,Android里面也可以有单条item的滑动,如新版QQ,这种比较少见。安卓的短信,可以滑动进行归档。大Android啥都可以有。
- 关于排版
iOS:喜欢居中排布
Android:喜欢左对齐,感觉左对齐更安卓。
- 实体键
iOS只有一个实体键home键(音量,电源不算哈);这个键有这么几个功能:
- 按一次,回到桌面。
- 双击,出现多任务界面
- iOS8里面,轻触两下Home键,调出单手模式(未尝试过,有i8的小伙伴尝试之后可否截图告诉我?)
- 指纹解锁
iPhoneX,iPhoneXS ,iPhoneXmax等都没有home键了,而是使用向上滑动的操作实现下列的一些功能:
- 锁屏滑动,脸部解锁
- 小幅度滑动,出现多个任务界面
- 大幅度滑动,回到桌面
Android有四个实体键(现在很多被屏幕上的虚拟键代替,但功效是一样的)
- Android4.4以下:分别是back键,home键,menu键,和搜索键。
- Android4.4及以上:back键,home键,多任务键。安卓原生是这样,经过优化的Android就不一定了,比如魅族的smart bar,根据当前页面情景变化,不过蛮好用。
- Android的back键,在大部分情况下,和页面上的返回功效一样。不过,Android的back键可以在应用件切换,还可以返回主屏幕。这个iOS里面的键不能在应用间直接切换。
- 动效
两者的动效似乎差别不大,iOS有的,安卓都有。iOS实现的通常更加流畅,卡顿较少。
两者都强调模拟现实世界的动画效果,比如物体运动有一定的加速度,动画的结束和开始速度小,中间速度
-
push测试
Android推送可以应用绕过系统限制;IOS只能根据系统配置来推送。
为什么安卓上软件得在运行时(包括后台存在)才会推送通知,而ios却不需要软件在后台就会推送通知?
安卓系统本身是并没有通过推送机制了,说白了就是没有系统给应用留下后门,所以只能是安卓自己启动Services来实现度推送,当应用杀死后Services如果被杀死就无法收到推送。
iOS系统他给用用留了回推送机制,所以就算应用未在后台运行他也答能收到通知,但是iOS是不允许应用像安卓一样后台启动Services服务的。
-
权限和内存管理
Android和IOS的安全性,众所周知的情况是,Android的个人信息泄露比较严重,很多app在安装时会要求很多权限,或者即使不给,他也有各自手段偷偷的获取这些手段。而ios一般情况下权限管理的很严格,没有意义的权限,一般情况下不会给。而且苹果官方的审核机制也是比较严格,经常会出现审核不通过的情况。所以ios的权限一般情况下,感觉会要的很少。
Android采用的虚拟机机制,而ios采用的是沙盒机制。沙盒机制的特点是:每个应用只能访问自己应用的数据和文件,不能随意去访问其他的沙盒内容。而虚拟机机制的特点是:每个应用程序都在独立的虚拟机中,这些独立的虚拟机实例都是一个独立的进程空间。而Android这样做的好处就是跟linux内存管理很相似,是真正的多进程管理,虽然可用内存最后看着少,但是实际上很多程序已经分配了一定的内存了,如果需要,在唤起时,不会再次分配一次,而且已经有了缓存,启动和响应会比较快。
IOS沙盒机制
1. 应用程序在自己的沙盒中运作,但是不能访问任何其他应用程序的沙盒;
2. 应用之间不能共享数据,沙盒里的文件不能被复制到其他应用程序的文件夹中,也不能把其他应用文件夹复制到沙盒中;
3. 苹果禁止任何读写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中;
虚拟机和沙盒的主要区别
1. 当沙盒中的应用程序退出后,其所做的更改会被丢弃;而当虚拟机退出后,其所做的更改会被保存下来;
2. 沙盒中的application和其他application共享机器的硬件资源;而虚拟机在安装时需要为其指定内存memory和cpu核且虚拟机不和其他application共享硬件资源。因此虚拟机实际上是很耗系统资源的。
Android的内存管理方式和ios不一样
Android在手机app切换到后台时,内存空间会保留给这个app,当下次再切换到前台时,app会快速的响应。而ios是app被切换到后台后,很短的时间内就会被清理内存,杀死进程。这样做的好处也是为了给当前切换到前台的应用腾出空间来。这样做的好处就是省电,因为只有前台一个应用在跑。当然还有一些特殊的应用可以一直在后台运行,比如:音乐、gps等。其他的应用在10分钟后都是被系统挂起的,从技术上来说,被挂起的意思等同于不执行,只是数据驻留在内存而已。
Android的出发点是为了让app切换时应用响应速度快,但是造成的后果就是内存可能会被历史应用占用的内存过多,而继续创建新的应用时不够用,才会回收内存。导致想用的app打开时变慢。
另外一点就是响应优先级不同
ios是对于屏幕反应的优先级最高,也就是UI指令最高。而Android是数据优先级最高。这2者的对比,可以用一个简单的例子来对比,ios在打开一个app时,它对屏幕的响应优先级是最高的,之后才运行app代码。Android系统打开app的顺序是先运行app的代码,之后再显示在用户的手机屏幕上。直观来看,对用户来说,就是我在ios上点了一下,接着就有反应了,而Android慢了半拍。
再一点,两者的安装应用方式不一样,Android通过各种应用商店,比如豌豆荚,91助手等等,ios只能通过应用商店,而测试版本的软件,Android可以通过把apk包导入到手机sdcard中,直接安装或者通过adb install命令安装包,ios可以通过iTunes方式安装或者爱思助手之类的软件进行安装ipa。当然现在比较流行的是通过第三方来管理测试包,比如说:蒲公英,这个平台可以把你的测试包上传后,然后开发者可以把需要下载测试包的同学手机UUID加到白名单后,就可以使用ios的测试包了。当然这个平台也可以上传Android软件测试包。
另外一点,就是Android因为自身代码的开源性,很多的app开发者如果不注意保护自己的代码,很容易被破解后,被其他人打包为别人的,所以Android的app一般都需要做代码的混淆。也就是把正常的代码,混淆完之后,就不容易理解了,比如很常见的方式就是代码的类名改为:a、b、c等等没有意义的名字。而ios因为本身不开源的特点,就不需要做代码混淆。
===================================================================================
参照:http://blog.itpub.net/31407649/viewspace-2285796/
APP测试的关键点
( 1)功能测试
App测试中功能测试是一个重要方面。在进行App测试,测试人员应该进行手动测试。同时对照设计图检查功能是否正确并正常运行。在软件测试中,关注测试点:
1、软件是否可以正常运行、安装、卸载;
2、登录、注册、注销(在软件测试基础(一)有介绍,这里不详细介绍)
3、数据更新、App更新
( 2)客户端测试
现在很多软件不仅有手机版也有 PC版,客户端PC机上运行的软件要求兼容不同版本的浏览器,在中高低端的pc机上都可以运行。
( 3)App兼容性测试
1、在不同品牌的机型上的安装、点击和卸载是否正常;
2、在不同品牌的机型上的各个属性是否兼容;
我们在实际测试中,常常会遇到下列问题:
1、在某个品牌的机型上,App安装不上;
2、在某个品牌的机型上,App点击后无响应或拉起后黑屏、闪退;
3、在某个品牌的机型上,App无法顺利卸载;
( 4)安全测试(权限)
1、其中包括发送信息,拨打电话,链接网络,访问手机信息,联系人信息和设置权限等
2、执行某些操作时导致的输入有效性验证、授权、数据加密等方面
3、其中还有关于网络协议的测试,防止恶意的协议发送到服务器
( 5)弱网络测试(流量测试)
我们在使用 App过程中,有时会遇到弱网络环境,比如在公车上、在地铁里、郊区或一些学校。在这种情况下,常常会出现网络不稳定、运行超时,下载失败。作为一个测试人员,我们要对App在上线前做一定场景的弱网络环境模型,并查看App在弱网络环境下是否存在某些问题。现在都是通过第三方平台模拟弱网络环境进行测试。
=====================================================
参照:https://wenku.baidu.com/view/382dd80af4335a8102d276a20029bd64783e623e.html#
- IOS系统的这些小功能会影响到你的APP哦,你测了没?
1、iPhone6以上机型的放大模式 功能入口:设置→显示与亮度→显示模式→标准/放大
说到这不得不提国民老公思聪在我们尚未拿到iPhone6真机时,给iOS手机输入法提的bug。搜狗输入法在标准模式下显示异常,无法正常使用,另外一个输入法在放大模式下存在相同问题。所以经验之谈,同行兄弟姐妹在测试APP时,要注意iPhone6以上机型有两个显示模式哦~在日常测试时可选择在一个模式下主测,在另一个模式下进行基本测试便可。
2、后台运行机制
IOS系统有独特的任务管理机制。
当应用程序不在前台运行时,除了GPS服务、音频播放服务和VOIP服务以外,其他的应用在10分钟后都是被系统挂起的,从技术上来说,被挂起的意思等同于不执行,只是数据驻留在内存而已。 2)内存管理机制。简单而言,在执行任意应用时,应用向系统申请内存空间,如果应用在使用的过程中不断申请内存,超过了系统限定的内存区间,系统会发出内存警报,严重时会直接将应用杀死。
同样,如果应用向系统申请内存,系统内存空间不足,系统会结束后台应用的进行,以释放空间资源。
伪多任务。
例如微信,看起来貌似是在后台运行,其实不是。你能收到消息提示只是系统推送服务,无论你的应用程序是否在运行,IOS都会在后台维护这个服务以实现假的多任务,并且所有的应用程序都会共用这一服务通道。 所以在测试时不妨在用例里面增加几条后台交互的用例,检验应用的数据是否能正常保存,验证应用被系统强制挂起后,再唤起是否能够正常启用,监测内存占用情况等等。
3、iOS系统时间不正确可能导致的问题
由于在测试时会有调节系统时间的操作,在网络正常的情况下,反复频繁的调节系统时间后,发现经常会遇到以下情况,将时间日期改为“自动设置”就会恢复正常了。
1)iMessage登录失败,提示网络错误,重新登录
2)软件更新失败,在更新过程中报错
3)App Store登录失败或App Store加载出错
4、 后台自动更新应用功能 功能入口
设置→App Store与iTunes Store→更新 当系统检测到当前设备登录的账号下载的应用存在更新,会自动更新。很多用户误认为应用有强盗行为,会主动在后台静默更新,其实这是iOS系统本身的功能,且默认开启。 在测试验证升级时,可事先将该功能关闭,以免测试环境未部署好,应用便自动更新了~