BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

雅虎的测试框架与敏捷
录制于:

| 受访者 潘敏 关注 0 他的粉丝 作者 杨赛 关注 0 他的粉丝 发布于 2015年4月1日 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!
19:12

个人简介 潘敏现担任雅虎北京全球研发中心品质工程部总监,该部门负责雅虎产品的测试自动化、持续交付,并监督雅虎的产品质量并确保高效的交付。潘敏不但为雅虎北京全球研发中心建立了世界级的品质工程部门做出了卓越的贡献,而且还致力于雅虎公司与国内业界伙伴开展广泛的专业合作。 潘敏在品质工程领域拥有10年以上的专业经验,领域涉及后端、前端、移动和云端测试等品质工程领域。2007年,潘敏加入雅虎美国,负责雅虎开放性策略、用户生成内容和雅虎云存储系统的测试工作。在加入雅虎之前,她在加拿大温哥华SAP工作,领导水晶报表引擎测试小组。 潘敏于加拿大不列颠哥伦比亚大学获得计算机科学硕士学位。

   

1. 各位InfoQ的读者们大家好,今天我们在雅虎北研,很高兴邀请到雅虎北研的质量工程部总监潘敏来接受我们的采访,潘敏你好,首先请您先做一下自我介绍。

潘敏:我在雅虎已经工作17年了,我来到雅虎北京也5年多的时间了,基本上我是跟张晨张总一起来到北京这边来的,帮助他在北京建立Quality Engineering团队。

   

2. 我看到您从入行开始一直在做测试这个工作,与开发相比这个会让你觉得更有成就感吗?

潘敏:其实对很多没接触过测试这边quality engineering的一些朋友来说,可能比较陌生,但是我在这个领域已经很多年了,真的很特别,很有趣。开发会非常深入到某个feature里面,而测试我们会更广地看到整个产品,找到很难找到的问题时,很有成就感。

   

3. 介绍一下你们团队的情况吧,大家是什么背景?

潘敏:我们这边的工程师都是有开发的背景,他们特别重要的就是不只是懂得开发,还要对测试或质量非常热情,知道怎么样把这个事情做好。我给一个例子,有很多人在回家的路上都觉得每天都是一模一样,没有什么特别,但是如果对质量比较敏感的人,可能会知道今天少了一棵树或者多了几个垃圾筒,或者在街道上有什么不一样的东西。

   

4. 就是要特别全面和细心的那种,怎么能看出来一个人适不适合做这个呢?

潘敏:我们会有一些特别的,在面试的时候我们会有一些特别的问题来问这个工程师,其实很容易能知道的。如果你只做开发的话,有很多方面可能没有想到,不会去考虑,但是如果你在质量这方面做过的话,基本上能知道得非常清楚,我们需要去看他过去接触的是什么内容。

   

5. 现在你们负责测试的产品是北研这块所有的产品吗?包括搜索产品吗?

潘敏:对,北研这边所有的领域我们都参与,包括搜索、广告、云计算、个性化等等这些方面,我们都参与。

   

6. 过去这一些年,首先是敏捷开发比较流行,开发的交付频率大大提高,对交付的频率也造成一些压力,对测试也是有蛮大的冲击,您从业这么多年,您看到最近这几年测试领域的变化能够说一下吗?

潘敏:这个是很好的问题,因为在这两年里面,雅虎也在经过这样的一个转变。我知道在其他一些公司里面,有些公司相信现在开发者可以做所有的东西,我们不需要有一个独立的团队去做测试,但也有一些公司把测试的团队转型,更好的去适应这个开发模式。所以在北研这边,我们选择的是第二个。我们的转变是什么呢?传统上很多时候,开发者只做开发,写代码,做完了以后就给测试的团队,你们去测试吧,测完告诉我们这个产品是不是准备好了,这个是传统的一个做法。现在测试团队跟开发团队工作联系得更加紧密,基本上感觉是一个团队,是这样一个工作方式。测试团队去定义应该做什么,做什么样的产品,然后去做设计的时候,会介入这个设计是不是很容易测试,开发在写代码的时候,我们在做测试的自动化框架,把feature去自动化。代码好了以后,就直接可以运行automation。经过一年多的尝试,我们觉得这个是更好的一个方式。还有的就是现在测试的团队一直在做的持续集成和持续发布,这两方面也是给整个团队带来更快的发布,加上更好的质量。

   

7. 像您刚才说的去做一些测试的框架,因为一开始肯定是没有人用或者是手动的,转过来之后,你们得去推,让它尽可能覆盖到所有的产品,让所有的研发都用到它,现在是都覆盖了吗?

潘敏:对,基本上我们这边的产品,因为我们聚焦的主要是平台产品,所以测试自动化是一个很大的焦点,所以基本上所有的产品都做测试自动化。先做出来,然后再说服大家去用。其实我们已经到了这个等级,不需要去说服大家来用,因为大家都知道结果,能带给整个团队什么样的好处,所以基本上我们已经很顺利了。有新的产品出来,我们都会坐在一起去谈,应该怎么把这个自动化,自动化的设计也是跟我们这里的架构师和开发者一起来设计和复核,这个就是我们想要的框架,做完出来以后,整个团队我们都会一起来用。

   

8. 大家都用一套统一的框架吗?你们算是一个共享的技术平台吗?

潘敏:对,在这边基本上我们是分了三大块,在这个测试自动化里面,一个是前端的自动化,然后后端的自动化,还有就是移动的自动化。这三方面,无论你有几个项目,前端是可以共享的,后端可以自己去共享,但是没有一个说这三个都可以直接去用的。我们现在的CI、CD的流水线叫BuildFarm,或者CI的一些info structure,可以互相去用的,测试框架这一块我们是分这三大块。

   

9. 那这个测试框架是什么时候去触发测试呢?新的commit进来后,测试会自动的跑吗?

潘敏:现在就框架来说,我们现在做CI、CD是这样来做的。先说一下我们的目标,我们CD的目标是每次一个commit job,到部署这个产品,都需要百分之百的自动化,就是没有人的干预,之前是开发者检查所有的代码,交给RE去打包,打完包以后发给测试部门去测试,我们测试完会交给运维,说这些我们测完了,这些package没问题,你上线吧,经过很多个不同的步骤,这些都是手动的。现在我们的目标是这些都不需要,都会百分之百自动化。我们现在对于每个check in,都先去编译代码,然后运行所有的单元测试,单测是OK的,OK了以后自动打包,打包完了以后,会自动进行自动化测试。测试完了以后,如果有任何失败,我们会停在那,所有都通过的话,就不需要交给SC了。我们有一些标准去评估,所有这些标准都满足了以后,会自动上线。这个工作我们正在进行,还没完成,但是我们在今年或明年初就把这个做完,这个不只是北研的一个目标,是我们整个雅虎的目标。这方面在整个互联网行业里,我们都走在非常前沿的。

   

10. 比如说我一个commit上去,然后测试没跑通,fail了,接下来系统是怎么去反馈给开发者?

潘敏:我们现在有一个pre-commit,你commit了code以后,有一份代码,然后来运行,如果没有通过,基本上你这个代码不可能进入gate,不能merge进去,所以开发者就知道fail在哪了。

   

11. 单元测试都是由开发团队来提供?

潘敏:对,这个单测都是开发自己来做,但是在我们这边,我们会review,跟他们坐在一起去review一下单测这边有没有更好的方式去做。开发者做完了以后,我们会坐在一起,然后去看一下这样的覆盖够不够,有没有更好的方法。单测评估,我们有单测的code coverage,这个KPI我们也会去看。我们现在设的大概是90%,这个是我们的目标,但是很多团队现在都是80%多,但也有一些可能会更低一点点,但是我们会逐渐满足90%这个目标。

   

12. 最后想问一下有关给团队设置KPI的事情,有些测试团队可能说我抓了多少bug算我的KPI,但是这样测试和开发都会打架,现在你们这边是怎么去把测试团队或者质量保证这块的工作成果量化出来?

潘敏:如果说看多少bug,这个已经不是很好的KPI,我们这边是怎么做的呢?我们是分两部分,一个是产品的质量,就是KPI,我们会看上线以后的一些matrix,有没有线上的incident,一个就是影响,某些可以量化的就是影响到多少的收入,或者影响到多少的顾客,等等这些KPI。我们现在不是单独测试团队的KPI,是整个团队,因为是整个团队负责质量,所以整个团队的KPI也是我们的KPI,这个是产品上面的KPI。另外不仅是上线以后,上线之前也有KPI,什么时候准备好去发布这个产品,是不是能很快发现一些质量问题。另外就是发布的流程,刚才也谈到了,CI、CD是不是可以很快的发布,加上有很好的验证,不只是快,我们做完就上线,上线了以后是不是有问题,所以是这两个方面来评估团队的KPI。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT