iOS 应用测试最佳实践
IOS改变了移动游戏,毫无疑问。它为“移动时代”铺平了道路,通过简单的用户体验提供惊人的功能。然而涉及到测试与监控,使用iPhone/iPad移动应用程序是除了简单之外的任何事情。
随着IOS应用市场持续生产记录增长,围绕着iOS应用测试的挑战与复杂性也继续干扰发展。IOS测试的一个关键挑战就是,不像开源的Android系统,苹果的IOS是一个封闭的操作系统。在开发与测试阶段增加的复杂性也就发生在了这样一个封闭的系统。因为用户无法从低级对象中提取必要的数据,而这对测试自动化来说是必不可少的。所以,获取IOS设备必须的访问级别的最佳方式是什么呢?- 越狱还是编译时源仪器呢?你应该基于本地对象测试还是基于OCR屏幕分析呢?
让我们来深入观察其中一些挑战,为了给开发与测试人员提供必要的覆盖、容量与灵活度以交付更好的iOS应用并有信心地部署它们,为什么基于云的混合方法是重要的。
系统最高权限(越狱) vs. 源仪表(编译时)
在今天的移动测试行业有两种常用的方法来解决这个挑战(即访问低级对象):获取系统最高权限(越狱)与源仪表(即编译时解决方案)。
越狱是指去除由苹果放置于iOS设备上权限的过程,为了获取低级别(根)访问操作系统。这就使得测试者能够识别应用程序内被测的对象。
源仪表是通过用一段提供访问(“后门”)低级操作系统进行目标识别的代码来编译被测应用程序执行的。这个代码运行测试人员执行低级别调用,并取得操作系统的对象IDs(没有必要获取最高权限或越狱设备)。
决定通过采取什么方法强烈依赖于几个因素(下面只是一部分):
1)使用软件开发生命周期流程(SDLC process)
2)公司政策
3)被测应用程序
4)测试频率
Perfecto Mobile应用提供其终端用户自由选择适合他们的应用程序,考虑到每种方法的优缺点。当客户要求快速测试一个iOS应用的新版本或者新的iOS设备时,越狱方法就不太合适。在这种情况下,编译时方法是可取的——即使它通过引入附加代码到被测应用程序使得SDLC流程更加复杂。
另一方面,使用越狱设备让你测试将被发布的精确代码(编译时则在商店提交前管制了这个,你要么移除“后门”,要么就暴露在严重的安全问题下)。这消除了编译与入侵操作的需要,而这些有可能带来潜在的质量风险。使用编译时方法的公司也应该考虑可能的法规(比如HIPPA)在最后一个二进制上执行测试(而不是在调试版本,测试友好版本,等等)。
混合方法让你选择在哪种iOS设备上执行哪种测试,根据应用程序的性质、项目需求与政策。当测试设备被部署和安全管理在一个“私有云”(比如由Perfecto Mobile提供的),这样一种配置就保证越狱方法不会引入任何风险或非测试目的进行的平台的滥用。越狱设备仅仅在一个封闭而安全的测试环境下为测试目的而使用,这与开发时使用iOS设备都需有个“开发者证书”是类似的。同样使用Android设备开发拥有比那些普通ALM周期中所需的更多访问级别也是一样。
对象识别的混合方法需求
测试移动应用需要强大的对象识别能力。可视化分析可能是不够充分的,例如,OCR技术能检测测试设备上的UI问题与故障,但不能保证100%的精准由于其启发式特性。另外,低级别对象可能“错过”可视化分析很容易就检测到的明显资格。这就是为什么可视化分析与本地对象分析的结合势在必行,来覆盖所有移动业务案例。这种方法是被Perfecto Mobile所支持的。
对象级别分析vs.视觉分析
对象级别分析不会检测到文本上按钮的重叠。
Perfecto Mobile方法:云,混合
Perfecto Mobile作为一个市场领头人的经验告诉我们,最好的方式就是向每个客户展示所有可能的方案使之在云端使用。
iOS 应用测试最佳实践的更多相关文章
- iOS应用开发最佳实践
<iOS应用开发最佳实践> 基本信息 作者: 王浩 出版社:电子工业出版社 ISBN:9787121207679 上架时间:2013-7-22 出版日期:2013 年8月 开本:16 ...
- CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践
讲师:潘志刚 声网质量效能部门负责人,超过 14 年服务器.移动终端.音视频编解码以及汽车电子等跨行业从业经历,负责建立测试基础架构和自动化测试方案,主持搭建持续集成测试生态体系.现任声网质量效能部门 ...
- [翻译] API测试最佳实践 - 身份验证(Authentication)
API测试最佳实践 - 身份验证 适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了 ...
- iOS应用开发最佳实践:编写高质量的Objective-C代码
本文转载至 http://www.cocoachina.com/industry/20131129/7445.html 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问 ...
- API测试最佳实践 - 身份验证
适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了,他将被授权访问那些期待访问的资源 ...
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法. 良好的 ...
- [翻译] API测试最佳实践 - 组织你的测试
组织你的测试 适用级别:初学者 在最底层,一个测试步骤(Test Step)用来验证一个单独的操作.组合若干测试步骤到测试用例,允许你验证那些被分隔出来的一个一个的功能,这些功能是应用程序所需要的.接 ...
- 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库Sysbench测试最佳实践
引言 作为一名DBA,时常需要对某些数据库进行一些基准测试,进而掌握数据库的性能情况.本文就针对sysbench展开介绍,帮助大家了解sysbench的一般使用方法. sysbench简介 什么是 ...
- CI Weekly #18 | flow.ci iOS 最佳实践出炉,正式支持 Git@OSC 构建
如大家所期待,flow.ci 现已支持开源中国的代码仓库 - 码云,可以直接构建 Git@OSC 的项目了,点击创建项目-选择代码仓库-选择码云-绑定 OSChina 账户-选择要构建项目,教程看这里 ...
随机推荐
- 批量执行SQL文件
原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...
- WCF常见问题(1) -- WebService/WCF Session Cookie
原文:WCF常见问题(1) -- WebService/WCF Session Cookie 在.net 3.0推出WCF之前使用的WebService,有的应用有使用Session保持一些信息,在不 ...
- Touch Punch在移动设备上面增加jQuery UI的触摸支持|Jquery UI 支持移动端 触摸滑动等
jQuery UI是我们前台开发常用的UI前端类库,但是目前的jQuery UI用户界面类库在互动和widget上并不支持touch事件.这意味着你在桌面上设计的优雅的UI可能在触摸设备,例如,ipa ...
- Java清理临时目录文件Demo(一)
/** * 删除单个文件 * * @param sPath * 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolea ...
- Android KeyStore Stack Buffer Overflow (CVE-2014-3100)
/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰 邮箱: minzhenfei@163.com */ 1. KeyStore Service 在Android中,/system/bi ...
- 使用c#给outlook添加任务、发送邮件
原文:使用c#给outlook添加任务.发送邮件 c#在使用outlook提供的一些API时,需要将outlook相关的com引用到项目中. 具体方法就是用vs打开工程后,在工程上添加引用,在com选 ...
- .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器
.NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实. ...
- Lua 5.2 Reference Manual
Lua 5.2 Reference Manual.pdf
- IOS开发苹果官方Sample Code及下载地址
IOS开发苹果官方Sample Code及下载地址 在线浏览地址:https://developer.apple.com/library/ios/navigation/#section=Resourc ...
- 解决:错误的语法:”XXXX“必须是批处理中仅有的语句
原文:解决:错误的语法:”XXXX“必须是批处理中仅有的语句 SQL Server 数据库提示“错误的语法:”XXXX“必须是批处理中仅有的语句”报错的原因分析 解析:批处理必须以 CREATE ...