序
廖叔突然来找我,说要出版一本书,这本书已经整理完成,想让我给作序一下,一看书名《移动App性能评测与优化》,好家伙!真有毅力把他们这几年的实践竟然总结出书了。对我来说,这肯定是盛情难却也乐意之极的事情!看着这书的内容时,让我也很感慨,因为整本书的结晶都来自我们腾讯内部一个很“特殊”、很“奇怪”的测试岗位,我们叫“专项技术测试”。初看名称可能不明就里,这个岗位成立于2010年初,当时还是PC/Web一统互联网时代,初衷是能在测试开展中深钻安全、性能、协议等领域的难题,为研发和质量团队及时输送炮弹。我们内部要求这个岗位要能深入底层,系统全面地理解和掌握操作系统、网络、安全等底层的技术原理,要具备足够扎实和丰富的开发背景及技能,同时还要能自主调研和开发各类测试工具以便更加高效地开展测试工作。进入移动互联网时代后,我们看到当初的“先见之明”为今天内部的测试领域积累了一大批优秀的攻坚性人才,极大地丰富了测试能力和支撑范畴,成为了研发团队极其亲密和信任的战友,甚至于研发团队在版本发布前,没有看到这个团队的测试数据和报告输出,内心会非常忐忑不安。
回顾这5、6年的发展历程,特别是近几年移动互联网浪潮席卷之下,专项技术测试已经从当初PC/Web的三个定点测试领域扩展到围绕iOS/Android下的流畅度/卡顿、耗电/CPU、强弱网络、内存泄露(OOM)、稳定性(Crash),数据库(SQLite)、I/O、兼容性等多个维度上,涉及的技术要求更深、知识面也要更广,针对性的测试开展难度同时也更高。在这个不断摸索和研究的过程中,专项测试的同仁也许是第一次有机会和研发一起针对更多未知领域组织学习和彼此探讨,掌握产品技术架构,理解各种问题的根因,逼着自己不断加深对操作系统、网络等底层实现的理解和学习,逼着自己熟练使用各种调试工具分析定位原因。这个过程是痛苦且非常快乐的,而团队也是得以在这样的经历中摸索总结出了各方面的测试经验。我们众多脍炙人口的产品,都是内部有严格的前后版本评测,以及和竞品的评测,指标更优后才允许发布,这其中的成果应该当之无愧的有专项测试的功劳。
针对专项测试的组织开展,我们内部在谈论一个专项战略地图建设,概要来说,专项测试的组织开展和未来方向目标,应该从四个层面来梳理和规划:1)第一层(最底层),涉及移动操作系统iOS/Android、网络协议、安全、数据库,以及相关的开发技术。专项测试的同仁必须得在一个或多个领域具备丰富的理解和掌握,看到一个表象的问题,可以很容易联想到底层实施上可能的困难或问题点,这才能为具体问题定位带来价值和高效。2)第二层,涉及稳定性(Crash)、内存泄露(OOM)、流畅度/卡顿、耗电/CPU、强弱网络、兼容性等多个领域的原理理解,清楚不同领域的起因/导因,知道技术实现时的接口调用各种潜在问题,并能借助调试定位工具轻松地排查和问题定位。3)第三层,涉及不同领域的工具开发或改造封装,能针对专项维度的各类问题,设计出自动化工具,更加容易地发现和跟踪到问题。把第二层的理解体系的封装在这些开发出的各种工具里,让工具可以灵活地替代人的眼睛和大脑自动测试和发现各类问题。4)第四层,进一步封装,把各类测试工具能纳入持续集成和自动化测试平台中,实现时刻在自动执行、自动统计分析和问题定位的能力。从纷杂的可能没有任何头绪的问题表象中,借助这个分层的Map设计和执行,我相信专项的攻坚将变得非常有针对性和目的性,同时我们也更容易衡量自己当前的进展。
上面谈论了很多专项的建设,这些不同维度的测试开展和性能提升,归根结底还是要落地到实践以及具体的经验总结提炼。这本书我想应该是一本研发和测试都特别需要认真研读的宝贵教材,我用了接近2天时间快速通读了一遍,虽然对很多的技术原理和问题定位步骤都是比较熟悉了解的,对很多工具的介绍也看着很亲切,但能结合各种问题/案例,抽丝剥茧,不仅清楚透彻地讲出原理,告知跟因,同时还把不同类型的问题提炼出了实施执行的步骤,一步步清晰展示在我们面前,为这个思路和行动必须要唱一曲! 这本书从内存、电量、流畅度、网络、安装包瘦身以及相关领域的一些工具给予了仔细讲解,思路清晰,有足够的技术深度和实践案例讲解,是测试领域里难得的一本基于优秀实践总结出来的好书!
作为腾讯内部同样从事测试领域的一员,为我们给同行贡献出来的本书鼓掌和致敬!提升自己最好的途径就是积极学习,善于总结,让自己少走弯路,我想同样作为同仁的你们,应该来阅读这本书,也要认真地来学习这本书!