潘在亮:给业务开发提供黑科技装备的“测试Q博士”(图灵访谈)

原创 2017年05月27日 09:43:24

嘉宾简介:

潘在亮, 现任腾讯 社交网络质量部测试开发中心组长。加入腾讯之前,先后任职甲骨文、微软公司测试开发工程师,参与企业级搜索和Visual Studio产品的测试开发工作。于2009年加入腾讯,参与了企点、PCQQ、手机QQ、QQ空间、QQ音乐、腾讯云等产品的测试技术改进工作。在测试开发领域拥有超过10年的丰富项目经验,擅长测试自动化、测试工具开发、研发工具开发和静态代码扫描等领域。

enter image description here


访谈内容:

相对于开发人员(也要写测试代码),测试开发人员在测试方面有哪些更高的要求?

各个公司甚至公司内部各小组对“测试开发”这个角色的定义各有不同,对测试开发人员的要求也各有不同。从我个人来说,测试开发角色主要负责测试效率乃至研发效率的提升,而效率的提升一般是通过自动化和流程的方式来实现的,所以从这个角度来说测试开发人员跟开发人员没有太大的差别。不过,测试效率主要由测试开发人员负责,需要对被测业务的技术方案和测试方法都有比较深刻的理解。

一个合格的测试人员,理解被测试产品的技术特点和功能特性是必须的,否则就不能有效地测试产品。但测试人员对技术的理解跟开发人员的角度又是不一样的,开发人员需要了解技术从而能够高效地开发出性能良好的代码,测试人员理解产品的技术是为了更高效地进行测试。除了理解产品的技术外,测试人员还需要掌握测试的方法,比如等价类、边界值、敏捷测试、探索性测试方法等,这些都可以通过相关图书的学习进而掌握。

如果用类比方式描述测试开发人员的日常工作,您会怎样描述?

如果业务开发人员是特工007詹姆斯邦德,测试开发人员就是里面的Q博士,专门给业务提供黑科技装备。我们的一款产品曾时不时地跟后台的传输协议产生严重的问题,造成crash,但仅仅通过界面的黑盒测试很难将相关的场景构造出来。对此,测试开发人员开发出该产品的协议抓取工具,来修改协议内容,相关的测试场景才得以顺利进行。

测试开发人员是不是要有一些“找茬”“搞坏”的心态?

腾讯的测试开发人员一般不会直接负责查找产品的bug,所以不会存在其他测试人员的“找茬”心态。我个人并不鼓励测试人员的“找茬”“搞坏”心态。团队作为整体都是对研发的产品负责、对客户负责,应该站在客户的角度思考问题而不是一味追求团队中个别的成绩。测试工作中,测试人员应该遵守相关的业务规范,即使这些规范有时候会对个别人产生一些困扰。

在设计测试计划、测试用例、操作步骤、重现步骤等工作中,您有哪些特别的经验和教训要和大家分享?

腾讯的测试开发人员一般不会直接参与测试计划、测试用例等工作,这里没有什么特别的分享。

我们的测试开发人员负责测试工具、自动化框架、持续集成方面的开发建设工作。我个人在这方面的经验也想分享下,希望能对行业内人士有些帮助。首先,测试开发人员的工作需要得到团队和公司领导的认可并给予足够的耐心,因为任何的开发建设性工作,都需要在初期投入成本。这些建设都是很基础的、很必要的,部门内最好能有统一的规划和实施。缺少必要的沟通的话,你搞你的,我做我的,重复的轮子到最后只能变成浪费。

另外,业界一些人认为测试自动化不就是写写简单的用例,这样简单的事情随便派个人搞搞就好了。如果存在这样的想法,测试自动化基本上是搞不起来的。测试工具和框架的开发跟其他的产品开发一样,都需要比较好的开发技术和工程化实施。

自动化测试更适合哪些测试场景?

像Google这样的一些国外公司会采用自动化测试应对绝大部分的测试场景。国内的实际情况下,一般不建议在产品初级阶段、产品形态变化较大的情况下进行自动化测试。产品初级阶段和产品形态变化大的时候,虽然也可以使用自动化测试来提升研发效率,但实施的前提是研发团队具有很高的研发水平,能够保证应用接口很好地扩展,保证接口的稳定性,否则每更新一次版本,大部分的自动化测试用例就要推倒从来。

过多地依赖自动化测试工具,而减少人工测试的投入,是否会导致产品的某些缺陷不易被发现?

就目前的自动化测试技术水平来看,它还不能替代人工测试,尤其是在主动发现bug方面,人的灵活性还是非常重要的。自动化测试更多地用于防止bug的回归,以及提升发布的效率。自动化往往也是其他深层测试的基础,像压力测试、性能测试、MTTF测试等,没有自动化框架的支持深层测试就比较难做到。

随着机器学习领域技术的逐步成熟,机器学习算法应用到自动化测试只是时间的问题,到时候很多的手工测试会被人工智能所替代。

PC端、Web、移动端以及后台Server端的测试工作有哪些不同?

几个端的测试从本质上讲没有什么不同,都是测试一个或多个进程的应用。PC端的界面会比较复杂,因为PC的显示器较大,允许产品在界面上有更复杂灵活的设计,对测试的要求也更高。移动端需要注意碎片化的问题。这个碎片化主要是指Android系统的碎片化问题,测试人员需要在Android的不同版本、不同手机厂商间做多次测试。另外还要更加注重性能、电量等问题。Web端的测试需要面对比较多的的技术栈,js,php,HTML,json等。Server的测试则会面对比较复杂的网络拓扑结构、复杂数据存储,以及高可用等挑战。这些对后台应用的测试环境搭建会产生很大的挑战。要解决这个问题需要对后台程序有更高的可测性要求,在刚开始开发的时候后台应用就要将可测试性考虑到后台应用中。

麦思博主办的上海MPD软件工作坊即将在5月中旬开幕,我知道您将在会上讲授“跨多端测试自动化体系”。可以先给我们透露一下,腾讯内部是怎样打造跨越多端的全栈自动化测试体系的吗?

腾讯的很多产品都涉及多端,产品的自动化测试自然需要跨越多端的自动化体系。不过,腾讯内部并没有一个全公司统一的多端自动化体系。就我所在的社交网络质量部而言,多端自动化体系的搭建主要从两个方面入手。一个是统一的多端驱动来驱动被测试的应用,另一个是统一的用例编写、管理方式和系统。这两个方面涉及的技术点和难点是非常多的,但这两个方面是不可或缺的,是一个完整的多端自动化体系最重要的两个组成部分。

我们在社交网络事业群打造的QTA自动化测试平台主要也是从上面的两方面入手。Android、iOS端的驱动类库QT4A、QT4i都是我们自己研发的,这保证了驱动接口的一致性。在UI控件的定位和管理方面,我们也都采用了统一的做法。Android端和iOS端的UI控件采用QPath格式进行描述。各个端的用例统一采用python编写,此外用例的编写格式、代码风格也是统一的。

为应对校招的测试开发面试,在校生应该做哪些准备?

我觉得在校生需要做好三方面的准备,一个是需要有比较好的心态,积极的心态。自动化测试会存在失败的情况并且失败的次数不止一次,这需要积极的心态才能迎难而上,最终克服困难。二是需要对测试有一定的了解,例如边界值测试等。这里倒不是要求在校生对测试方法有很深地掌握,毕竟学校里并没有这样的课程。对测试有一定的了解主要是希望在校生能有较好的场景分析能力,设计出测试要素。例如分析一个简单的登录窗口,除了考虑登录密码的正确与否,还要考虑到用户名的不同格式、不同字符的编码,不同的字符串长度。除了功能之外,是否还能考虑到性能因素。三是要有比较好的编程基础,能够掌握基本的数据结构算法。如果不能很好地掌握数据结构算法,测试工作中就很难理解操作系统、数据库、网络等方面的技术要点,这对掌握团队的技术方案更是困难。


更多精彩,加入图灵访谈微信!

这里写图片描述

CMMI认识和访谈的一些问题

CMMI分为五个等级:CMMI1.初始级   2. 已管理级  3. 已定义级4. 量化管理级 5.优化管理级,公司可以直接评CMMI3级,但要评CMMI4级,要通过CMMI3级才可以实施,CMMI5...
  • kalision
  • kalision
  • 2012年11月15日 11:01
  • 5217

我博士科研经历中的经验和教训——朱亮

原文:科学网—我博士科研经历中的经验和教训——朱亮一个偶然的触动,引发我反思自己博士期间的经验和教训。我想郑重的声明:写此博文,只是希望和朋友一起分享一下我的经验和体会,而不是想吹嘘自己。因为,我觉得...
  • baidu_37173242
  • baidu_37173242
  • 2017年01月12日 19:52
  • 787

JSP开发业务应用

1.使用分页显示数据在方便页面浏览的同时,由于限制数据读取显示的数量,因而减少了 与数据库交换时的资源占用 2.实现数据分页显示,需要经过的步骤如下 (1)确定每页显示的数据数量 (2)确定分...
  • qq_38173841
  • qq_38173841
  • 2017年06月12日 17:17
  • 101

我自己曾经经历的CMMI3认证通过关于软件测试的访谈

因为当初我在公司里是负责软件测试工作的,所以CMMI3和测试相关的访谈,就是由我来负责,主评管是一位德国老外,幸好有翻译。测试访谈的相关内容,下面的十几个问题基本上能包含访谈的全部内容,甚至很多情况下...
  • JCY58
  • JCY58
  • 2016年07月14日 14:20
  • 7292

别问用户想要什么!用户访谈的3个基本问题,致产品经理

用户研究是用户中心的设计流程中的第一步。它是一种理解用户,将他们的目标、需求与您的商业宗旨相匹配的理想方法。但是通常跟用户交流是需要技巧的。如果乔帮主上来直接问用户你要啥并且按照这个需求来做iPhon...
  • asqi1
  • asqi1
  • 2014年07月31日 15:09
  • 1022

那些年Android黑科技③:干大事不择手段

“我在发抖么? 你开什么玩笑。我只是在跳愉快的尬舞。 暗影是不会向邪恶势力低头的。 万岁~(≧▽≦)/~!!” -- 来自暗世界android工程师 本文来自简书,原文地址:h...
  • qq_30513483
  • qq_30513483
  • 2017年07月04日 23:32
  • 671

VS2005编译Cairo1.8

第一篇将流行的开源矢量库串起来乱侃了一番,希望还不了解矢量库的网友已经知道了这些大名鼎鼎的开源Project。了解了之后就要使用他们,但是使用的第一步,应该是先编译过去,然后才能谈使用。编译都没有做到...
  • bearJiang
  • bearJiang
  • 2011年04月17日 20:07
  • 1639

有关设计的黑科技

文章的题目来自于之前参加一个技术大会,听一位大咖的演讲而得来的感受。那天,当其他的大咖将设计,将架构的时候,有一个人上台给我们讲了很多故事,很多利用大数据进行的有意思的设计 从而吸引产品的用户等,突然...
  • u010176014
  • u010176014
  • 2015年12月10日 23:20
  • 1569

各种有用的东西、黑科技、技巧

转自WerKeyTom_FTD的blog 1、整体二分及cdq分治实现时,每个区间不需要单独开队列。可以把操作弄到一个数组了,然后多两个参u、v表示这个区间的操作在u~v,做完后对每个操作打标记表示...
  • alan_cty
  • alan_cty
  • 2016年03月16日 20:25
  • 1059

网易2018校园招聘编程题

[编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)...
  • leechengqian
  • leechengqian
  • 2017年10月28日 21:49
  • 174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:潘在亮:给业务开发提供黑科技装备的“测试Q博士”(图灵访谈)
举报原因:
原因补充:

(最多只允许输入30个字)