Android与iOS测试注意点

App测试中Android和IOS测试区别

  1. 分辨率测试:

  Android端种类多常见的手机分辨率:

  (4:3   VGA 640480 (Video Graphics Array)   QVGA 320240 (Quarter VGA)   HVGA 480320 (Half-size VGA)   SVGA 800600 (Super VGA)

  5:3   WVGA 800*480 (Wide VGA)

  16:9   FWVGA 854480 (Full Wide VGA)   HD 19201080 High Definition   QHD 960540   720p 1280720 标清   1080p 1920*1080 高清)再加上不同的手机品牌;

  ios就比较少了;

  1. 手机操作系统:

  ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);

  Android较多;

  1. 操作习惯:

  Android,Back(返回)键是否被重写,测试点击Back(返回)键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;

  1. push(信息推送)测试:

  Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;

  ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);

  1. 安装卸载测试:

  Android的下载和安装的平台、工具和渠道比较多;

  ios主要有app store,iTunes和testflight下载;

  1. 升级测试:

  可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文  件是否匹配(如内置的输入法)

测试注意点:

  1. 并发(中断)测试:另一个应用的启动、视频音频的播放,来电、用户正在输入等,语音、录音等的播放时强制其他正在播放的要暂停;
  2. 数据来源的测试:输入、选择、复制、语音输入,安装不同输入法输入等;
  3. push(推送)测试:在开关机、待机状态下执行推送,消息先死及其推送跳转的正确性;应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转否正确;推送消息阅读前后数字的变化是否正确;多条推送的合集的显示和跳转是否正确;
  4. 分享跳转:分享后的文案是否正确;分享后跳转是否正确,显示的消息来源是否正确;
  5. 触屏测试:同时触摸不同的位置或者同时进行不同操作,查看客户端的处理情况,是否会crash等 我:  归纳和总结了Android APP在测试过程中经常出现Bug的关键节点,希望对大家有所帮助!

  启动:

  1. 启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动

  2. 其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)

  3. 退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动

  以上需要交叉组合测试。

  4. 异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)

  功能介绍,引导图,流量提示等:

  1 全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。

  

权限:

  1 当某些权限被安全软件或者系统禁止时,是否可以正常使用,需要注意的权限:麦克风/摄像头/定位/短信息等权限 —_luguo

  2 在做兼容性测试时,需要特别注意权限管理较严的Rom,比如魅族在摄像头等权限为默认关闭

  3 第三方安全软件弹框请求禁止权限时,选择后,是否会影响到被测应用的正常流程

文件错误

  1 使用错误的文件类型(但是有正确的后缀名),替代被测应用使用的文件

  2 adb push 从pc上传到设备的文件如果有中文名,会生成一个错误的文件,被测应用需要适应这种错误情况

屏幕旋转:

  1 确认哪些界面是需要允许横屏或者禁止横屏的

  2 将屏幕锁定为竖屏或者横屏,在几个界面跳转,界面是否正常

  3 当适应横屏时,是否对横屏进行了适配

流量:

  1 首次启动应用的流量是否符合预期

  2 在主界面有很多图片时,是否已经达到图片文件大小与显示效果的平衡

  3 当需要使用较大的网络流量时(加载大图片,视频播放缓冲,下载更新包),显示出当前网速或者进度,对用户来说更友善

缓存(/sdcard/data/com.your.package/cache/):

  1. 卸载后将删除缓存,其中是否存在不应该删除的文件(下载文件,用户资料)

  2. 缓存易被360手机卫士,猎豹清理大师等清理,需检查该文件夹是否放了适合的文件

正常中断:

  1. 在所有界面执行锁屏操作,解锁后观察是否正常运行

  2. 在所有界面执行长时间锁屏操作,解锁后观察是否正常运行

  3. 在所有界面,和所有过程,按home键切后台,再切回时观察是否正常

  4. 在所有的loading过程中,按back键

  5. 在所有的loading过程中,按home键

  6. 界面切换动画时尝试多次按back键

  7. 正常的点击动作,尝试快速按两次

  8. 后摄像头和前摄像头无法同时启动,后摄像头启动还包括打开闪光灯(与手电筒类应用的兼容性)

  9. 检查键盘展开和收起的时机,与home、back、锁屏组合测试

  10. 从第三方启动后,home键回到桌面,再从桌面打开被测应用,显示是否正确(应确定是显示第三方启动界面,还是显示程序正常启动界面,前者如微信,后者如QQ)

异常中断:

  1. 断电后重启

  2. 当界面被意外崩溃,是否可以重启界面,并且恢复到崩溃之前的状态

  3. 来电结束后,返回被测应用界面

  4. 在某些特殊情况下,来电后,移动网络会被切断

用户体验:

  1. 以最挑剔最无理的用户角度来使用应用的主打功能

  2. 是否每个动作都有反馈

  3. 每个按钮都有按下的状态

  4. 当界面有返回按钮时,back将执行同样的操作

  5. 当图片需要网络拉取,或者无图片时,是否有默认图片替代

  6. 开启开发者选项,勾选显示布局边界,检查每一个按钮的可点击范围是否合理

多语言:

  1. 其他语言的语言习惯(如繁体)

  2. 英文注意复数

  3. 多语言下,需要特别检查以图片形式展示的文案(如果功能引导,启动引导图)

  4. 一致性。(一方面是代指的一致性,一方面如果有系列应用共用功能的文案也需要保持一致)

  5. 如果在简体下载了一个文件or创建了一个快捷方式or进行了一笔购买,马上切换语言去做一次同样的动作

  6. 检查英文语言下的切断、断行是否正确

  7. 当文字长度不一致时,UI界面是否能正常适配

升级:

  1. 是否有完整的升级策略(强制升级,灰度发布)

  2. 下载升级包过程中是否可以取消

  3. 升级包下载是否可以续传

  4. 升级过程是否可以中断(取消按钮,back键)

  5. Android系统第一次安装非官方市场应用,需要手动取消限制,此过程是否会影响到apk包安装(正对预装应用的测试)

  6. 在没有更新或者网络时,需要给予用户正确的信息表达

  7. 如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有提示升级

  8. 收到升级提示后,下载了apk并未安装,同名替换该apk,下次再收到升级提示后,是否正常升级

应用外部升级:

  1 应用如果是跳网页下载安装包升级,需要在文件名加版本号或者标识,防止浏览器下载时有缓存,而无法安装最新版本—_luguo

  2 交由系统下载升级安装包,尝试进行两次版本升级

列表:

  1. 列表中的文字长度超过限制

  2. 点击列表项返回后的列表项的状态变化(尤其在有多个进度条存在时,需要注意状态)

  3. 上下滑动时,是否可接受卡顿(帧率)

  双卡双待:

  1. 当手机为双卡双待时,影响到的功能有:需要获取手机号码的功能,如支付;自动读取短信息

网络:

  1. 是否以较好的体验从网络问题导致的数据问题中恢复界面展示数据

  2. 是否每个需要网络请求的操作,都有做超时处理,并且测试出他的超时时间

  3. 检查每一个需要网路请求的动作在网络延迟,服务器发生错误时,界面的响应

monkey测试:

  1. 必跑monkey,不要仅跑一次,不要到测试后期才跑

  2. 更换不同的界面和不同的参数跑monkey

  3. 记得记录所有日志,如果能有日志筛选的工具更好

性能测试:

  1. cpu占用,内存,流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试)

  2 特定操作(一般为主打功能)的压力测试,一般长时间大批量执行某个动作或者组合,尤其为该动作是通过JNI实现,或者使用了其他第三方sdk。一般写脚本或者录制脚本。

  病毒检测:

  1. apk文件在PC杀软上检测

  2. 手机杀毒软件检测

Android端手机测试体系

  1.冒烟测试

  跟web端的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃。这款原生sdk自带的monkey可以当做我们的测试工具。就跟我之前博客所说的,monkey测试模拟了用户的按键输入,触摸屏输入等等,看设备多久时间出异常。因为它得用到adb命令,那么同学们可能还得去自学一下adb命令。如果抓到crash(比如内存溢出,空指针异常什么的),及时向你家开发及时反馈,你也可以把它看成一个性能测试工具   - Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/sdk/sdk/tools/lib/monkey.jar;

  • Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/sdk/sdk/tools/bin/monkey;

  • Monkey命令

    • adb shell monkey –help

    • 指定一个包: adb shell monkey -p com.example.sellclientapp 100

    • 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100

    • 不指定包:adb shell monkey 100(说明:Monkey随机启动APP并发送100个随机事件)

    • 要查看设备中所有的包,在CMD窗口中执行以下命令:

      >adb shell

      #cd data/data

      #ls(没有root所以不能用这个属性)

    • 参数: -v

    用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

    日志级别 Level 0

    示例 adb shell monkey -p com.htc.Weather –v 100

    说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息 相应源代码如图所示了,这十分有利于调试了。

    • Level 1

    示例 adb shell monkey -p com.htc.Weather –v -v 100

    • Level 2

      示例 adb shell monkey -p com.htc.Weather –v -v –v 100

    • 示例:

       Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100

      Monkey 测试2:adb shell monkey -p com.htc.Weather –s 10 100

  2.安装,卸载测试

  这项对web应用可能测得比较少,这一块很可能归拢到我在后面讲的适配性测试里面。在不同机型测试你们应用的安装,以及卸载,看看会不会出现问题;

  这是个第三方手机助手蔓延的时代,那么发布到手机助手上,检查能不能装卸也是很重要的

  3.在线升级

  一个手机apk得顺应时代的需求,定期时不时的进行更新,在我第一份工作里,很重要的一个内容就是测试在线升级功能。

  开发给你一个新版本,你得去测试安装卸载,以及功能流程

  4.功能测试

  你测试了你们apk的功能测试用例。涵盖三个方面:

  4.1业务逻辑测试,测试你家公司apk的业务逻辑流的

  4.2功能测试:测试你家apk的功能点的。

  4.3与web端的交互测试。很多apk,比如淘宝啊,京东的app,会跟web客户端进行功能的交互,我想大家都用app来购物,那么你买的东西能正常在web端查看到,这就是你的测试点了。大家可以理解这个意思吧。

  5.稳定性及异常性测试

  稳定性及异常性测试主要两点;

  5.1.交互性测试:客户端作为手机特性测试,包含被打扰的情况13种,来电,来短信,低电量测试等,还要注意手机端硬件上,如:待机,插拔数据线、耳机等操作不会影响客户端。

  5.2.异常性测试:主要包含了断网、断电、服务器异常等情况下,客户端能否正常处理,保证数据正确性。

  其实这一块又可以跟monkey牵扯到

  6.性能测试

  测试点跟web应该差不多,比如尖峰性能啊,压力测试啊,基准性能等等

  1.尖峰性能,在一个时间点,你app的用户量出现井喷现象,有名的双11抢猫猫活动嘿嘿

  2.压力测试,逐渐加压

  3.基准,压服务器端接口及客户端在不同网络环境下响应速度。主要为258原则

  在一块,我曾帮别人百度到loadrunner测试手机apk,很幸运,他成功解决了他的问题。我的想法或许,android端或许,注意是或许,将app的什么socket,tcp/IP映射到web端的测试工具上,比如jmeter,来进行测试,这是我的一个猜想。另外的大神或许会给我们好的测试方法意见

  7.UI测试

  界面易用,简介,符合用户者的口味。

  8.适配性测试

  也就是兼容性测试。

  1.手机分辨率:主流的800480、854480、960540、1280720、1920*1080

  2.不同手机版本,2.3,4.2,4.3等等,用户面尽量测的覆盖率高一点

  3.手机系统,很多手机厂商喜欢在android原生系统的基础进行修改,你得测试啦

  4.手机尺寸:3.4,5.0,4.7等等,这里我来插一下话,我在自学android开发的时候有时候会想,如何将自己开发的app调到适合这么多android机型。百分比是个不错的选择

  9.电量及流量测试

  用户除了你app的基础功能,适配,UI美观。还关心耗不耗流量跟电量。一般非唤醒状态,后台状态会比较低耗能。这个测试范围,得看你的公司定下的基准。广播貌似可以监控用电量,大家了解了可以留言告诉我学习学习哈哈

  10.内存泄露

  这个东西你可以用monkey抓到,当然也可以DDMS抓

11.回归测试工具

  这个版块的测试工具为大家介绍monkeyrunner,robotium,appnium。

  11.1monkeyrunner

  该monkeyrunner工具提供了编写控制Android设备或仿真器从Android的代码之外程序的API。随着monkeyrunner,您可以编写安装一个Android应用程序或测试包,运行它,发送击键它,需要它的用户界面截图,并将截图工作站上的Python程序。

  脚本用jython,what is jython?It is A mix of python and Java。因此可以用java api,当然你也可以扩展。

  11.2appnium

  Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

  跨架构,native hybrid webview

  跨设备:android ios

  跨语言:java python ruby

  跨app,多个app直接交互

  native本地应用,如android的信息应用

  hybrid native跟webview的结合

  webview浏览器应用

  11.3robotium

  Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium对Activity,Dialog,Toast,Menu都是支持的。

  robotium底层是android的instrument,通过Solo对象来创建一系列操作。但是只能android端,不像appnium跨设备。

  这里扩展一下大家的知识面,如何定位元素,我总结了三个,还有其他方法,请大家留言。

  针对坐标的:

  1.monkey的recorder,之前的博客有详细讲

  2.hierarchyviewer:sdk自带的工具。很多朋友会问商业机为什么不行,因为谷歌做了安全措施。无版本限制,如果你想测4.2以上版本也可以。注意,开发板或者模拟器可以用。

  效率为获得一个界面的所有节点和图片时间为10s左右

  3.uiautomator,4.2以上android版本的定位利器,可以真机哟。他也是可以做功能测试的

12.网络测试

2G/3G/4G/wifi,移动/电信/联通,保证APP在各种环境下的访问是否正常

转载于:https://juejin.im/post/5cad6487e51d456e5a0728b2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值