邱鹏(英文名Ricky), 《移动 App测试实战》的作者之一,目前在蚂蚁金服做质量技术相关的工作;曾在腾讯电商做过易迅项目的测试负责人,后转入京东负责无线事业部的测试团队。
邱 鹏
日前,CSDN采访了邱鹏,请他分享在测试开发过程中的经验得失,解读移动App测试现状、遇到哪些坑、如何攻克以及测试人员的职场规划。
CSDN:在你的职场生涯中,有没有哪些令你印象深刻的人或事?
邱鹏: 有很多,特别是在腾讯和京东的这几年,比如我们参与了易迅 App的从无到有的过程,产品技术和运营一起增长,有点创业的感觉。到了京东后,整个团队一起逐步把无线测试技术的各个方面开展起来,大家对品质都有很高的要求但每一步都非常的务实。在这过程中,我们经历了腾讯易迅、京东腾讯的团队整合,不容易,但是大家做得很好,学到很多东西。
在这里,我想感谢我之前的两位老板,吴凯华和李俊,还有一起合作过的团队和同事们,腾讯、易迅和京东的各个专业领域太多才华横溢又充满魅力的人,现在很多人都成了朋友,非常高兴能认识这么多优秀的人。
CSDN:在你看来,移动互联网产品常见的研发流程是什么?
邱鹏: 以我经历过的几个公司和团队而言,细节上可能有差异但大致的流程都差不多,一般都是不断并行迭代的过程。互联网业务变化很快,临时的变化进来也是常态。开发接到需求后会进行架构和设计,取决于需求大小,做法不同,个别技术难度大的可能还需要做个快速原型来验证。
一般开发完成后会做好基本的联调和自测,然后交付给测试。 测试会进行系统化的功能、性能和专项等不同维度的测试。这个时候开发在修复缺陷,也可能投入到下一个功能的开发中,所以是互相嵌套的。接下来一般会有内测,发布前也会做灰度(放给部分外部用户),然后密切的关注反馈和问题,及时修复调整。 接着,就是发布上线,上线后也会有持续的监控和问题跟进。大致就是这样的一个流程。
说到流程,特别想指出的一点是,我经历的几家互联网公司,大家其实不怎么提敏捷这个词,我个人的理解,其实任何快速发布的团队(通常一周几十次),流程都是比较敏捷的,大家不需要刻意的去思考这个流程,或者说是业务形态和需求塑造了这样的流程,他们不断摸索和调整,觉得这样的流程可以支持业务发展,让大家做事情比较高效,那就可以了,而不太在乎名词。
CSDN:移动 App测试现状是怎样的?主要有哪些测试方法?
邱鹏: 移动 App测试的现状我觉得有两大特点:一个是不同团队和组织的做法差异非常大,往往和业务所处的阶段,团队的能力相关,投入度也不同。另一个方面是移动测试不像Web互联网测试那么成熟,后者发展了很多年,积累了很多成熟的思路以及工具平台,可参考借鉴的比较多,而移动App方面标准化的东西少很多,也因为App的环境、工具的切入比Web也要稍微复杂一些。
不过这两年看到随着移动App的持续升温,相关的测试技术快速发展,也出现了不少专项的测试工具和服务厂商。
主要的测试方法除了传统的黑盒功能测试,还有配套的不同维度的自动化,以及静态分析的方法, 另外还有几个角度的性能测试,针对App的一些专项测试,包括兼容性、流量和电量等。除此之外,线上的自动化和监控也值得关注。
CSDN:你在测试过程中有没有遇到过哪些坑?又是如何解决的?
邱鹏: 如果说坑, 测试其实就是一个踩坑的过程, 我们希望在发布前尽量多的把坑踩出来。每一个版本我们都能发现大量的缺陷,很遗憾因为环境和用户使用场景的不同等方面的问题,还有一些缺陷到上线后被用户发现,这方面的坑很多,比如 iPhone 6刚出来的时候遇到不少兼容性的问题,我们针对性的做了全面的排查,然后联合设计和开发团队,逐个从设计、代码框架和适配方面做优化。
另外,还遇到过不少内存方面的问题,包括不合理的常驻内存,导致App内存使用一直比较高,还有内存泄漏的问题,引起闪退等。针对这方面,我们测试团队通过MAT,以及Xcode的Leak分析工具做了很多的专项测试,静态扫描也有一些发现,然后针对这些问题我们和开发团队逐个确认,进行修复和优化。通过大家一起的努力,我们短时间内把闪退的比率降低了一个数量级。
类似的问题还有很多,总的来说思路是两个,一方面通过系统化的质量技术手段不断提供质量门槛,另一方面针对当前痛点专人专项来打深入,挖出深层次问题。
CSDN:在进行产品测试时,你经常用的工具有哪些?
邱鹏: 常用的工具基本在书上都提到了,主要是两类:一类是 JMeter,MAT,Xcode自带的工具,以及Fiddler等免费或者开源的工具。 第二类是我们自己编写或者在现有开源工具上做二次开发的,比如书中提到的自动化监控平台,Mock server(基于Fiddler二次开发)等。
总的来说是结合测试工作的需要,一般业务测试团队研发人力都比较有限,所以即便自己开发,我们也非常倾向于在开源工具的基础上来做。因为测试团队的核心价值还是质量保障的深入和高效,比如做自动化监控平台的时候,我们觉得HTTP协议的Request和Response的基本处理是JMeter的强项,成熟稳定,我们如果重复去做这部分技术上肯定可以,但是价值不大,而我们更重要的是做出一套完整的自动化监控技术方案。
CSDN:你怎么看待人工测试和机器测试,两者有有哪些优缺点?开发团队应该如何选择?
邱鹏: 发展的趋势肯定是人越来越贵,而且好的人一直都很难招,所以能让机器做的尽量机器。
自动化对于测试来说是一个永远的命题。自动化也分狭义和广义,狭义的是指常说的单元测试,接口自动化, UI自动化;广义的来说,性能测试,CI的很多手段,包括静态扫描都是自动化,所有可以提供效率的技术手段都算是。借助Testin的云端测试机来开展兼容性测试的实践也是一个很好的例子,通过一套在线下调好的脚本,我们可以将同样的App操作步骤,在几十台,上百台真机上重复并发执行,然后只需要人工去review下结果,也是极大的提高了效率。
CSDN:测试人员的职业发展规划是怎样的?
邱鹏: 这个也是一直以来困扰很多测试人员的问题。就我目前的思考,我觉得有很多条路,不应该太局限自己的思维和发展。笼统来说分两种:一种是在测试领域持续深入,这部分又可以细分,比如测试开发、业务测试专家、测试主管和质量管理等细分路线。另一种是做到一定程度后转型,比如我曾经见过的,转型为项目经理,开发主管,产品经理,业务负责人等自己感兴趣的方向,也拓宽自己的经验。总的来说,只要不给自己设限,做深入并大胆的尝试,路还是比较宽的。
CSDN:最后来谈谈,写《移动 App测试实战》这本书的初衷是什么?你和其他两位作者是如何分工的?
邱鹏: 关于这本书写作的缘起,说来惭愧,最早是 2011年左右的时候确定要写,当时的主题是性能测试,后来因为我的工作内容变动,以及特别忙,就一直拖延了,一直到2014年的下半年再正式启动,并坚持完成了。所以要特别感谢机械工业出版社的吴怡编辑,几年来我们一直保持沟通交流,她一直没有放弃,并不断给我们鼓励和帮助,最终得以完成。
说实话,在大的环境下,写书的物质回报和时间付出是不成比例的,支持我们把这本书完成的动力是希望分享,因为国内这方面的分享太少了,特别是在一线工作很长时间有丰富经验的人,我们有幸在几家对测试和质量特别重视的公司工作,也接触了一些大型的项目,所以觉得有一些责任把真实的实践分享出来,给还在摸索的同行们一些参考。所以这本书的定位是实战,如我在前言里说的,不求完整,但求真实的实践做为参考。
本书的另外两位作者,陈吉和潘晓明是我团队的同事,从腾讯到京东合作了很长时间,他们分别在安卓和iOS的专项测试做得很深入,所以很多相关的内容是他们完成的,写得非常好。我规划了整本书的内容,写了其中7,8个技术章节,以及其他几个前后非技术的几章,总的来说希望给大家展现一个整体的实践内容。技术相关的内容,我们在写作的过程中,为了举例,基本都重新实践了一遍,希望更容易参考。回头来看,我们三个人的分工和互补,是这本书得以顺利完成的重要原因,一个人的知识面和精力很难兼顾。
CSDN:给我们分享下写书的感悟吧。下一步的计划是什么?
邱鹏: 首先,这本书并不只代表我们三位作者的经验和实践,其实是我们一起工作过的团队的集体实践的结果,也包括了很多同行的参考,而我们更多的是思考、实践和整理分享,所以也特别想借这个机会对所有贡献和给予帮助的人说声感谢。 另外,这本书能成书的一个原因是我们平时也比较注意技术的积累,我自己也在 CSDN写blog(博客地址),平时我们也经常做一些内部和外部的分享,这些也为我们积累了很多的材料。
回头来看觉得这是一个好习惯,也建议大家,特别是工作时间不长的人多写多分享,帮助自己整理也帮助他人。另外,这本书也算是抛砖引玉,希望国内的资深同行们也多多分享自己的经验和实践。下一步,我们希望可以继续探索不同的实践和做法,做得更加的深入,也希望和读者朋友们有更多交流。
CSDN现开启【著译者说】栏目,欢迎推荐采访人或自荐,来分享你的成长经历和相关技术,相关信息请发送邮件至:xiamz#csdn.net(#换成@)。更多精彩内容,请点击社区之星或搜索关键字 著译者说查看。