前言:这个系列分享的内容大部分都是出自于《google是如何测试的》的书,不是我YY的,我只是大自然的搬用工,希望对大家有那么一点点的用处,当然后面也会有个人的一些想法。
上一次分享了google测试分享-GTA,大概说了下google是如何使用GTA来管理整个测试阶段,特别是测试计划的安排,那这次会聊一聊google测试经理是如何进行团队管理的。
为了让这些blog分享更有逻辑性,我打算分几个专题来分享google测试相关的测试理念。
google测试分享-测试经理
google测试分享-问题和挑战
google测试分享-未来测试
首先大家可以思考下,google的测试经理角色必须具备什么样的能力。据不完全统计,google的测试经理,超过一半之前都做过TE的角色(大家可以想想为啥);对于与被测产品相关的任何使用问题,测试经理都应该是专家。所以google对测试经理的期望:相关项目中最强的产品专家。这个时候,大家是否感觉奇怪了,测试人员对业务的了解大家都是认可的,为啥测试经理也是要对业务非常了解呢,测试经理不是安排下测试任务就OK了吗。
google认为优秀的测试经理能做到如下几点:
(1)了解产品
(2)知人善用
(3)解决资源紧缺问题
(4)问题不能简单的通过增加人手来解决,就需要使用工具使其流水线化
(5)有责任优化整个测试过程,任务安排更合理
(6)不能过于依赖于某些成员,必须沉淀可用的工具或总结成一套方法,帮助其他人成为明星
那么在google测试经理是如何来安排测试任务呢,首先开发团队组织一个会议邀请一位可以信赖的测试经理,向他介绍自己的项目,希望他能够为这个项目组建一支测试团队。而那些不重视质量的开发团队,只能自己完成测试工作,因为他找不到测试人员帮助他们提高质量;同样的那些不愿意编写小型测试用例、不进行良好单元测试覆盖的开发团队将会不被理睬,自生自灭。也就是说,如果开发团队的质量意识未改变,那这个开发团队开发的产品肯定不会有专门的测试人员参与。
在google,每个工程师的目标都应该是建立影响力。测试经理没有要求测试团队来保证产品的质量,没有要求保证产品的按时发布。测试经理应该保证每项工作都具有一定的影响力。也就是说测试团队的团队目标是:一个测试团队中每位工程师都有能力完成极具影响力的工作,测试过程中的每个单元都有明确的目的和明显的效果。开发团队也非常理解测试工作并一起参与进来,直到最终完成目标,测试经理需要多思考为什么,为什么做这些事情:第一 因为它能提高产品的质量;第二,因为它能提高工程师开发产品的效率。
在某些特殊紧急情况下,测试经理在设计阶段会积极地参与,持续地跟进项目并且自己编写测试。在正常项目情况下,测试经理需要制定好项目测试策略:
(1)使用20%的测试人员进行探索式测试。任何关注用户体验的产品都需要探索式测试
(2)30%的测试工程师关注于产品的整体性测试,他们和SET一起保证测试的效果
(3)另外50%的工作是SET开发相关的自动化测试和工具,以保持代码库的健壮和提高开发人员的工作效率
相比较其他公司而言,google更强调速度,确保他们的产品足够快,测试人员进行性能分析以便于可以证明给所有人看。google的DNA就是创新精神。测试团队也应该被看做创新者。发现重要的问题并能创造性地提出解决方案。在google大部分测试TC都是自动化测试,怎么进行产品的自动化测试呢,这个比喻就像开车一样,你必须找到测试的离合点。过早编写测试,有可能由于架构的变化导致全部工作作废;若等待太久,则又可能错失测试良机而导致没有充分测试。测试驱动开发是个不错的选择。
google的测试人员非常强调产品的压力测试,发现性能退化的问题,帮助开发一期定位和解决问题。另外也更加专注于预防bug而不是检测bug,包括CI,code change push CI;由于强调对每个层次的测试范围了如指掌,特别是自动化测试能覆盖的测试范围,这样就给探索式测试的效率也带来了挑战。
测试团队获取开发工程师的支持是很重要的,整个项目团队(开发+测试)共同对组件级别的产品质量负责,而测试可以集中精力来改进流程、框架、工具集和集成测试。
测试管理者就像一个海盗船的船长一样来管理的,他给船员的真正的动力在于劫掠的生活方式和看到下一次收成的兴奋感。测试管理者要靠技术洞察力、令人兴奋的技术冒险、有趣的停靠港口来带领团队,否则船员很容易变动,去找能给他带来未来的新船长。
相比较于国内的测试经理来说,对业务和产品细节的理解就会差很多,很少TL去参加自己负责的产品的PRD评审或技术方案评审,所以给团队成员在测试策略和创新上提供的价值就会少很多,如何最优化项目的测试范围和计划,如何利用更多有效率的方法和工具上,TL的价值就会差异非常的大。那本书里面就举例了chrome测试经理是如何对于chrome的产品需求细节和技术实现细节的了解到位的,总体上还是让人很诧异的。
最后我谈谈个人对测试经理或TL的职责的理解,我觉得TL要给所有测试人员找到目标感和成就感是首要的任务,包括找到那种创新和变革的氛围。想办法减少或解决重复单调的测试执行工作,将测试人员的工作重点放在测试设计上,尤其是异常测试设计上,其中包括系统设计方案的理解,甚至是code review等,同样的,这些工作任务上,测试经理应该有很丰富的经验能指导团队成员高效的完成。
另外还希望测试经理还能给团队成员带来不一样的思考角度,包括测试技术和项目测试管理上,这就要求测试经理不仅仅非常全面的了解国内一些成熟的测试技术和正在实践的新的实践方式,还需要了解国外的一些测试理念,抽选出合适的,小而美的创新方式在项目中进行小范围的实践,这些都需要有测试技术sense和想象力才能完美的实现。
包括google在内,测试团队还是会有很多各种各样的问题和调整,测试环境问题、自动化测试问题、覆盖率问题、效率提升问题、单元测试问题、测试职业前途发展问题等等,测试团队每年的改变和目标都是在解决这些问题,一步步的解决,从未放弃,这也是互联网测试团队不同于传统测试团队最大的区别,下期准备分享google测试遇到的问题和挑战,google测试分享-问题和挑战。
转载自:http://blog.sina.com.cn/s/blog_6cf812be0102vode.html
作者:JerryGao