iOS测试指南
  • 推荐0
  • 收藏0
  • 浏览389

iOS测试指南

芈峮 (作者) 

  • 书  号:978-7-121-22758-5
  • 出版日期:2014-04-25
  • 页  数:224
  • 开  本:16(170*230)
  • 出版状态:上市销售
  • 维护人:张春雨
《iOS测试指南》是一本专注于iOS测试领域的书。其中重点讲述了各个测试阶段的具体实践方法,并且通过持续集成串联了各个测试阶段的活动。本书中所有的测试实践并非纸上谈兵,而是出自于笔者实际工作中的探索和实践。在测试实例上有一定的简化,是为了脱离复杂的业务。本书的重点在于对方法的介绍上。


国内第一本较为全面的介绍iOS测试方面的书籍,内容涵盖入门级和中级进阶,全面透彻,理论实践相结合,从业者案头必备。
推荐序一 你的iOS App还在裸奔么?
2014年3月的TIOBE编程语言排行榜,Objective-C排行第三位,紧随C语言和Java之后,甚至在C++前面。其他这三种语言,都是有着非常广泛的应用场景和悠久的使用历史的。Objective-C的诞生也并不晚,但是仅在近年才开始流行,而且Objective-C几乎只用于iOS/Mac平台开发。所以,这一排行榜多少能告诉我们iOS开发到底有多热。2013年7月,苹果公司CEO Tim Cook宣布仅在中国就有50万iOS开发者。
然而,这个行业的开发水平和测试水平到底怎么样呢?我在新浪微博简单地做了一个调查,34.5%的人说他们完全没有任何测试;44.8%的团队有独立测试人员;而有单元测试、UI自动化测试、持续集成的团队就屈指可数了。
那么,在这个平台下测试不重要吗?我觉得恰恰相反。
任何App要想在苹果的AppStore上架,都需要经过苹果的审核员的审核,不管你是世界五百强的大公司,还是小作坊,都会一视同仁,绝无例外。如果你的App没有经过良好的测试,被审核员发现有闪退、崩溃或者其他严重质量问题,他们会毫不犹豫地拒绝你的App。而你则需要修改App,重新提交,这往往就意味着再等7~8天的排队才有机会被审核。
如果你的运气好,Bug没有被审核员发现,或者说,在审核员审核的环境下,你的App表现良好,你的App就成功上架了。但是如果它在用户的iPhone/iPad上面发生闪退、崩溃,等等,其实你会更倒霉。因为愤怒的用户会迅速让你收获大量的1星,即使你好不容易做了一年的好评度,也会一下子跌落谷底。如果你熟悉AppStore的话,就知道这往往意味着你的下载量将一落千丈,你的App也有可能从此无人问津。
App这个形式和网站类应用最大的区别就是,如果网站的程序员发现某个页面有一个小Bug,修改后,经过合理的内部审核流程,它的一个部署脚本就可以升级代码,用户在刷这个页面和那个页面之间的空隙,这个升级就完成了。而iOSApp出现了问题以后,不管你修改得多快,都需要被苹果的审核员审核,这往往需要7~14天,然后,你往往需要在用户方便的时候,通过重新下载整个App的方式得到更新(虽然iOS 7.0后,更新普遍可以自动在后台完成,但是时间周期仍旧是这么长)。
所以,对iOS开发者强调测试的重要性,我觉得说100遍、1万遍都不嫌多,都有其现实意义。
但是为什么还有那么多团队和个人开发者没有进行完善的测试呢?
懒、侥幸心理、怕麻烦一定是少不了的。
还有,我觉得就是一般的入门书、教程,甚至包括苹果的官方文档,讲到的测试部分都太简单,缺乏可操作性。
所以,当我得知本书的作者芈峮在写这样一本专注于iOS平台测试工具和方法的书的时候,我很高兴,而他邀请我做序的时候,我感到十分荣幸。
最早知道芈峮时,他还在豆瓣的测试团队工作,他做了一个开源的测试工具ynm3k(要你命3000)。仅仅是这个充满幽默感的名字就征服了我。后来我了解了一下这个工具,由此我才知道原来在iOS下也是可以进行UI自动化测试的。在此之前,我只是经常跟人们在一起人云亦云地说:“嗯,单元测试是好,但是iOS开发主要都是UI逻辑,这可怎么测试呢?”
不经过完善的测试,我们的App其实就是在裸奔,会不会出问题,会出什么样的问题,完全看运气。在以前,我们可以有这样或那样的借口,甚至可以直接说,我就是找不到资料嘛,学不会那还能怎么办呢?
现在,有了这本书,对不起,没有借口了,请把这本书带回家,仔细阅读,按照这本书改善你的开发测试流程,别再让你的App裸奔了……
郝培强
OurCoders.com创始人
2014年3月11日于上海
推荐序二
前几天芈峮告诉我,他完成了一本与iOS测试相关的书,希望我能写个推荐序。芈峮在豆瓣的测试团队时,就一直专注于移动App和移动Web应用的测试。经常能够见到他鼓捣各种工具,用充满创意的方式将小工具连接起来解决实际问题,当然,最让人称道的,是他对移动测试的热情。
读完了芈峮这本不算厚的书,不觉眼前一亮。这本书并没有刻意地为了拔高而选择一些生涩的主题,而是系统性地介绍了移动测试的方方面面:对于移动App的测试,本书介绍了如何搭建移动App测试的环境,如何进行移动App的单元测试,如何选择和使用UI自动化测试方案;对于移动Web应用的测试,本书介绍了如何使用Selenium和Appium轻松地完成这类应用的测试;此外,芈峮还格外体贴地在书中介绍了如何使用持续集成(CI)更好地搭建持续测试的环境——在Web开发中引入持续集成并不少见,但在移动应用开发中发挥持续集成的威力,这可是真有些挑战的!
随着移动互联网渐入佳境,越来越多的组织和个人开始进入移动互联网领域。在测试行业内,越来越多的测试者开始关心移动应用的测试。移动应用明显有不同于Web应用和桌面应用的特点,移动开发平台(iOS、Android,也许还可以算上WP)自身的特性,设备的兼容性(即使是iOS的开发者,现在也不得不考虑兼容性的问题了),移动设备本身的某些特性(网络连接,交互特性等)都给移动应用的测试带来了新的挑战。明显能够看到,移动应用的测试已经成为测试领域的热点,近期在各个渠道也颇能见到一些与移动应用测试相关的介绍文章。然而,大部分我读到的介绍性的文章都是对某工具的介绍,或是某个具体的测试手段,虽然热闹非凡,但对那些希望系统性地一窥移动应用测试门径的测试者来说,实在是不堪大用。从这一点上来说,芈峮的这本《iOS测试指南》算是恰逢其时。本书这些扎扎实实来自一线实践的内容,一定能够让对这方面有兴趣的工程师系统性地了解移动应用测试。
当然,移动应用的测试热才刚刚在测试领域内兴起,这本《iOS测试指南》为这个方向开了个好头。我期望能够有越来越多的测试者(包括开发者)愿意深入到这个方向中,研究如何能够不断提高移动应用开发的效率和质量,帮助组织以最小的成本实现目标。我也更期望有越来越多的人愿意用图书的方式记录和分享自己的心得,为这个值得重视的领域添砖加瓦。
段念
豆瓣工程副总裁
2014年3月9日于北京
致谢
本书的成稿离不开许多人的帮助和支持。首先是家人的支持。对于一个1岁多孩子的父亲,利用业余时间完成一本书的编写是非常困难的。我美丽的妻子不但承担了日常所有的家务,还要独立养育孩子,甚是辛苦。如果没有她的理解和支持,本书与读者见面的时候可能iPhone 9都发布了。同样,我还要感谢我的父母、岳父、岳母和朋友,没有他们的鼓励我同样不会完成本书。
当然,还要感谢侠少和任晓露编辑。侠少负责扮黑脸,认真严格地对初稿进行修改,修改意见一度多于书稿字数。虽然那些改进意见都是正确的,但是由于数量过多,有时无法接受。这时晓露编辑就出现了,并且给了我无限的鼓励。就是在这样的不断重复中,我完成了书稿。在此,真心感谢博文视点的每一位编辑。
对本书中的iOS测试方法,我在豆瓣的工作期间几乎都实践过。在此,我还要感谢豆瓣的每一位移动开发工程师。因为没有你们高质量的代码,我不可能玩出这么多花哨的小技巧。当然,最应该感谢的是解彦博和耿新跃两位老师。如果不是当初两位老师给了我去豆瓣工作的机会,本书的成稿更是无从谈起。
最后,感谢本书的每一位读者,感谢你们对本书的关注和支持。
前言
为什么要写这本书
随着iOS应用开发的持续火热,iOS测试越来越受到重视。但是,由于其生态系统的封闭性,导致iOS测试方面的资料非常少并且难以搜索。在一次技术交流会上认识了博文视点的任晓露老师,她鼓励我应该写一本iOS测试方面的书。这种约稿一般都会在第1次时被拒绝。我同样拒绝了任老师的约稿,不为别的,只是因为自己水平有限。
我在平时的工作中还是不断地搜索着那些零星的资料,并且发现在iOS测试方面没有任何书籍,国内没有,国外貌似也没有。又是一次技术交流会,又见到了任晓露老师,当然,又谈到了出书的事情。这次互换了联系方式,并且在之后认真考虑了出书的事情。
之后在老婆大人的鼓励下,决定写一本iOS测试方面的书。心想只要动作快就是国内的第1本iOS测试书籍,全当是抛砖引玉了,谁让我在豆瓣的ID是厚脸皮呢,就厚着脸皮写了出版吧。
本书的内容
在测试领域内,分歧不断,争论不断。在如何做测试、测试的目的是什么等问题上都会有很大的争议。而测试活动本身受业务需求和团队能力等因素的影响,也会有很大的不同。本书抛开争论和不同,只谈技术相关的问题,通过简单的实践介绍了通过某些工具或者框架来对应某一些测试类型。
第1章
简短地介绍了测试和iOS测试,并且对本书涉及的内容范围进行了介绍。
第2章
介绍了iOS开发和测试使用的基本工具。
第3章
本章首先介绍单元测试的工具,之后通过实践,详细介绍了基于MVC模式的单元测试的使用方法,其中包括针对Model、Controller和View的基本的测试方法。在实践中使用到了一些高级的断言工具和Mock工具。最后再次针对这些工具进行了详细介绍。
第4章
提到UI自动化测试,第一入手点必须是官方工具。本章通过实践详细介绍了iOS官方的自动化测试工具——UI Automation,不但有实践的应对和基本API的讲解,还加入了笔者对UI自动化的总结和第三方工具的简单介绍。希望能做到深入浅出。
第5章
iOS程序不只有Native应用,还有Web应用。本章结合笔者的工作经验和总结,介绍了iOS Web自动化测试的最佳实践,并且从组成结构上剖析了当下最流行的Appium和WebDriver。
第6章
持续集成是现代软件开发的一种体现。没有持续集成的自动化测试都是半自动化测试。本章不但介绍了通用的持续集成工具,还基于之前章节的实践成果,进行了iOS持续集成方面的介绍。
第7章
除了功能测试之外,iOS程序还需要很多的专项测试,例如兼容性测试等。本章主要介绍了几种通用的专项测试类型和方法。
第8章
iOS自动化测试有很多第三方的开源工具。本章从工具本身的技术特点和实现原理上对工具进行了分类,并且对每一类工具选出了佼佼者进行实践介绍。当然,读者可以根据本章的内容写出自己喜欢的自动化工具。
第9章
在2013年的第4季度,Apple公司大爆发似地发布了开发工具Xcode 5、手机操作系统iOS 7和Mac操作系统OS X 10.9。这一系列工具的发布,也带来了测试方面的一些新特性的引入。本章结合之前的内容,针对这些新特性进行了补充介绍。

目录

目录 阅读
第1章 软件测试与iOS测试
第2章 iOS环境准备
第3章 iOS单元测试
第4章 iOS的UI自动化测试
第5章 iOS Web应用程序的自动化测试
第6章 iOS的持续集成
第7章 iOS测试策略及测试方法
第8章 iOS测试框架实践
第9章 Xcode 5测试的新特性

读者评论

电子书版本

  • PDF

图书类别

相关图书

写给大忙人的现代JavaScript

(德国)HORSTMANN, CAY S. (作者) 浙江阿里巴巴聚橙技术发展有限公司 (译者)

本书是一本简明的现代 JavaScript 教程,不仅涵盖函数式编程、JS 语法、JS 库等基础性内容,还介绍了国际化、异步编程、标准模块系统、元编程等较为复杂...

¥109.00

基于Bert模型的自然语言处理实战

李金洪 (作者)

2018年底谷歌公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且还在11种不...

¥139.00

Flutter企业级应用开发实战

郭歆伊 (作者)

本书是一本可供国内企业参考落地的Flutter技术图书。闲鱼技术团队在实际的技术落地过程中,既享受了Flutter研发效能带来的红利,也经历了无数的技术挑战。本...

¥89.00

JavaScript 二十年

王译锋 (作者)

本书主要讲述了从 1995 年到 2015 年这20年间,JavaScript在创建、设计和演变方面所经历的过程。全书分为4个部分,每个部分都涵盖了 JavaS...

¥79.00

数据分析实用教程

刘政 罗应婷 姚新军 (作者)

本书共 14 章,内容涵盖:统计学的基本概念、推断性统计的相关理论和实例、方差分析、相关分析与回归分析、Logistic 回归、主成分分析与因子分析、聚类分析、...

¥99.00

Flink实战派(双色版)

龙中华 (作者)

本书针对Flink 1.11版本和Alink 1.2版本,采用“知识点+实例”的形式编写,包括47个基于知识点的实例和1个综合项目实例。 第1章对大数据和人工...