1. iOS应用和Android应用测试有什么侧重点?
正确回答通过率:39.0%
[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难
一、系统区别
1、系统和框架的区别
(1)Android系统的底层建立在Linux系统之上;而ios基于UNIX系统
Android完全开放,iOS完全封源开发
(2)编程语言:Android的编程语言是Java和KotLin;而ios的则为ObjectC和Swift
Android的Java,面向对象,性能比C语言和OC低;ios的OC,基于对象,完全兼容C语言的语法,可以直接操作内存。
Android生成class文件,需要虚拟机来进行解释;ios直接执行程序的二进制代码。
这也在根本上造成了iOS与Android性能不同:Android和Window一样,目的是打造一款通用性非常好的系统,在任何机器上面都可以运行;ios目的是让软件和硬件完美的结合到一块,该操作系统只能在极少数机器上面才能运行。
(3) 运行机制:ios采用的是沙盒运行机制;安卓采用的是虚拟机运行机制。
Android:虚拟运行机制
1、所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件
2、所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡了
IOS:沙盒运行机制
1、每个程序都有自己的虚拟地址空间。所以,程序之间是都不能进行访问
2、默认只会将应用的最后运行数据,记录在RAM里面
程序后台运行机制
Android:任何程序都可以在系统后台运行
iOS:第三方程序不能在系统后台运行
二、渲染机制
1、iOS最先响应屏幕
iOS的UI渲染采用实时优先级,Android的UI渲染遵循传统电脑模式的主线程普通优先级
2、iOS系统优先处理Touch层级
3、iOS图形特效基于GPU加速渲染
测试注意点:
1、分辨率测试:Android 20多种,ios较少
2、手机操作系统,Android较多,ios较少且不能降级,只能单向升级;
3、Push测试
4、安装卸载测试
5、升级测试
三、ios和android日志抓取
iOS:
1、通过 iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的 crash 日志
2、通过 Xcode 从你的设备上获得崩溃日志
3、自己在程序中添加崩溃捕捉代码,如果应用集成第三方 SDK,如百度统计
Android:
1、通过集成第三方 SDK,如百度统计、友盟统计等
2、发版时使用加固工具,他们也会收集错误日志,如 360 加固
3、在程序中添加程序异常崩溃的捕捉代码,保存到本地文件中
2. 简述弱网测试是怎么做的?
正确回答通过率:40.0%
[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难
1、如果APP没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。因此,app网络测试,特别是弱网测试尤为重要,低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范畴。
2、如何进行弱网测试
SIM卡的网络切换
手机-设置-移动网络设置-网络类型选择
3G、4G卡都可以设置关闭3G/4G,只走2G网络。
具体弱网场景测试,常见场景包括:地铁/巴士、电梯、楼梯间、停车场使用虚拟机模拟网络速度,如用树莓派搭建的弱网测试仪
使用软件进行网络代理,模拟不同的网络带宽、延时率、丢包率
3、弱网模拟常用工具
方法一:charles弱网模拟
方法二:chrome的webview调试工具弱网模拟
方法三:iOS手机自带Network Link Conditioner 弱网模拟
iPhone手机打开开发者选项:
设置-开发者选项 > Network Link Conditioner 入口。
系统已经内置常见网络配置,也可以增加自定义配置。
3. APP 端兼容性测试方法?
正确回答通过率:41.0%
[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难
APP 端兼容性测试方法:
1、从操作系统上来分,我们分为两大类:Android 和 IOS
2、在覆盖到上面两种不同类型的手机之后,如果公司有一定的资金,来申请其他的一些测试机, 我们可以再细化的进行测试。 在选取机型的时候,我们可以有针对性的选取市面上主流的机型,比如排行 top10
3、当然,有的时候目前流行的手机品牌也是我们测试兼容性的一个考虑点。 比如市面上流行华为,小米,vivo,OPPO 等等
4、我们需要考虑不同的手机屏幕分辨率测试 这块当然我们也可以采取等价类和边界值的方法 选取分辨率较小和最大的,其次再取样中间的一些分辨率
5、以上的方式都是一些通过市面上的流行趋势来有针对性的选取。但是,有的时候,我们也可以 通过其他一些技术手段,来获取到我们被测软件使用手机的精准信息 比如:埋点(有第三方埋点,如:百度统计,腾讯埋点等等,还可以自研埋点系统)
4. 简述APP测试主要涵盖哪些方面?
正确回答通过率:36.0%
[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难
APP测试主要涵盖:
1、功能测试:对具体功能点一一测试,验证确认每个点都实现满足需求的相应功能。
2、APP兼容性测试:根据屏幕尺寸、系统进行适配测试;
对市场上主流的设备安装应用执行测试(如果有特定针对群体,应该根据实际用户数据接入设备进行分析,对靠前的机型进行适配测试),确保都能正常运行。
3、压力测试:用户量大,交互性高的应用需对接口执行压力测试,确应用在海量的用户使用的情况下能正常运行。
4、UI/UE测试:主要是一些适配,用户体验方面,交互方面的测试。
5、用户行为统计测试:确保手头的行为统计分析定义文档为最新版本,且与开发人员手中的文档一致;确保产品经理在文档中所定义的页面在该产品中都是存在的;
尽可能真实地模拟用户行为;
核对统计日志,确保各项操作所对应的页面ID以及操作ID都是正确的。
6、安全测试:软件权限、数据安全性、通讯安全性、人机接口安全性。
7、安装卸载测试:确保应用都能正确安装、卸载,且能正确运行(注意应用的升级测试:升级前后的状态)。
8、交叉测试:对于正在运行的应用,若进入短信、电话等其它软件响应的情况,不会影响被测试应用,且会保证应用能正确运行;
杀掉进程时再重新打开APP;
多个APP切换数据的保存等。
9、协议测试:模拟客户端直接发送协议包给服务器,看服务器是否有一定的校验,认不认客户端发过来的数据。协议测试主要是为了处理用户发送恶意协议到服务器,骗过服务器的校验。
10、异常测试:多次快速点击切换页面的响应情况?横屏竖屏的快速操作:切换菜单,播放,下载等;
服务器宕机或出现404、502等情况下的测试。
11、弱网测试:APP在2G/3G/4G/wifi下的表现情况,网络环境变化时,APP的应对情况:是否有适当提示?从有网环境到无网环境时,APP的反馈如何?从无网络环境回到有网络环境时,是否能自动加载数据,且多久才能开始加载数据?
12、电量测试:设备在不同电量时(低于10%,50%,95%),APP的响应以及操作流畅度;
设备在充电时,APP的响应以及操作流畅度;设备意外断电时,APP数据丢失情况等
5. App测试和Web测试的区别?
正确回答通过率:42.0%
[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难
1.功能方面:
在流程和功能测试上是没有区别的,系统测试和一些细节可能会不一样。那么我们就要先来了解,web和app的区别:
web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。在系统测试的时候就会产生区别了。
首先从系统架构来看的话,web测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是app端是不能够保证完全一致的,除非用户更新客户端。如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
2.性能方面:
web页面可能只会关注响应时间,而app则还需要关心流量、电量、CPU、GPU、Memory这些了。
3.兼容性方面:
web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般还是以浏览器的为主。而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。app的测试则必须依赖phone或者是pad,不仅要看分辨率,屏幕尺寸,还要看设备系统。系统总的来说也就分为Android和iOS,不过国内的Android的定制系统太多,也是比较容易出现问题的。
4.相比较web测试,app更是多了一些专项测试:
一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断,来电,短信,关机,重启等。
而弱网测试是app测试中必须执行的一项测试。包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。需要测试丢包,延时的处理机制。避免用户的流失。这些在前面的弱网测试那篇已经讲过,这里不再讲了。
5.安装、卸载、更新:
web测试是基于浏览器的所以不必考虑这些。而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除app相关的文件等等。这里讲起来的话太多了,如果有疑问的同学可以评论或者给我留言。
6.界面操作:
app产品的用户都是使用的触摸屏手机,所以测试的时候还要注意手势,横竖屏切换,多点触控,事件触发区域等测试。
6. 如何测试App性能?对应有哪些测试方案
正确回答通过率:43.0%
[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难
为什么要做App性能测试?
如果APP总是出现卡顿或网络延迟的情况,降低了用户的好感,用户可能会抛弃该App