怎样搭建与培养自动化测试团队
引:毫无疑问,从企业的立场来看,它期望自动化测试能为企业带来生产效率的提升和测试成本的缩减,说通俗点,就是能用尽可能少的人干尽可能多的事。因此对于那些能够在自动化测试领域做出突出成绩的测试人员,企业从来都是一贯地不遗余力地进行奖赏和激励。因此,在自动化测试领域里,一方面如我们前章所说布满了风险和陷阱,同时另一方面,我们更应该看到充满了很多的机会,对测试人员的职业生涯发展有着至关重要的影响。
好,聪明的你上场了,你正在接管一个正在做手工测试的团队,或者你目前就处于这样的一个团队里,而老板对自动化测试概念又知之不多,不能给予你完全信任的强有力支持,你如何在重重困难中,推行自动化测试实施,而最终取得团队和个人的最大成功?这是我们本章要讨论的重点。
一个好的目标,首先它能够赢得老板的眼球,并有可能逐步转化为老板对你自动化测试实施的支持。
自动化测试项目的实施离不开上级领导的支持,这是一个组织上很关键的因素。因为自动化测试前期的准备要投入人,时间,金钱等资源,比如自动化测试需要买工具,工具则需要培训,而开发工具脚本又需要投入人和时间,如果领导不能在这些方面给予支持,测试人员就真的就成了“巧妇难为无米之炊”,自动化测试的成功更无从谈起了。
所以,在自动化测试的启动阶段,一定要先有一个好的而且可行的自动化测试的目标或想法,它会吸引老板的注意力,并可能获得支持。尤其在自动化测试实施已经比较成熟的企业里,在众多自动化测试解决方案里,一个让人耳目一新甚至拍案叫绝的方案会给老板留下深刻的印象。
但是对于自动化测试刚起步的企业来说,有一些需要特别注意和警惕的地方。这是因为,在知识和经验都不丰富到足以洞察自动化测试本质和规律的时候,很多老板表面上对自动化测试是热情的支持,但实际真实的态度却是底气不足,半信半疑。
我曾遇到过两个极端的例子,一个是某通讯企业的研发总监,在软件开发和测试领域都有深厚的经验,但对自动化测试却有着深刻的怀疑,他认为QTP等测试工具并不能真正地从根本上解决测试效率的问题,因此他一直下意识地回避和推迟团队中自动化测试的实施;而另外一个例子是某大型外企的测试经理则是一个技术专家,他对软件自动化测试十分地钟情,几近狂热,认为任何工作都可以交付给程序来做,因此他把自动化测试推到了极致,他的团队开发了大量的脚本和程序,有的只为demo,有的只为验证bug。
这两个极端的例子其实是当前软件业界自动化测试实施的缩影,实际上,这两个人的表现更像是同一个人的两面性格,自动化测试上马时盲目乐观,失败后“恨屋及乌”。一番折腾下来,他们对自动化测试是敏感和谨慎的,对于你提出的任何自动化测试目标,他们表面上会支持,实际上更多采用的是观望态度。换句话说,在这种情形下,老板对自动化测试项目的支持是犹豫的和脆弱的。因此,老板是否能够保持对你强有力和持续的支持,不光你要有一个好的自动化测试目标,而是更取决于后续的自动化测试实施能带来实实在在的效益。
【案例】:
测试主管小王打算在自己的测试部门实施系统测试自动化,在经过工具评估后(有关评估详见第三章Evaluation一节),他和他的团队决定使用java开源的selenium做为测试工具。这个想法获得了小王上级张总的认可和支持。
挑战:小王在着手实施的时候,有如下疑惑和困扰:
1)小王和他的团队没有丰富的自动化测试实施经验,因此,虽然经过了前期的测试自动化效益估算,但对于selenium的解决方案到底能否在项目中实施成功,要开发投入多少人力,维护量有多大,小王依然心里没有十足的把握。
2)小王的上级张总是一个雷厉风行的人,他对这次自动化测试的实施也抱有很高的希望,小王如何能够说服张总认识到自动化测试实施的风险,并能给予理解和持续的支持,这是一个要考虑的问题。
对策:小王决定采取以下的措施来最大程度地减小风险,并获得张总的理解和支持。
1)对于第一个问题,由于对测试脚本程序的规模和功能都无法准确预测,小王决定采用快速原型法来开发自动化测试程序,首先在部分核心功能模块中做试点,一边实施一边总结经验,然后再将成功经验进一步推广到整个产品模块。
2) 关于和张总的沟通交流问题,小王决定先准备一个自动化测试的演示程序,邀请张总参加演示会。在演示会上,小王准备了三个演示点,一个是有关自动化测试能替我们做那些工作,一个是自动化测试不能替我们做的工作,另外一个是自动化测试运行中的各种风险和干扰因素。
结果:最后实施的结果是:
(a)小张通过快速原型开发方法,以时间为代价换来了自动化测试实施的稳定和高质量,这为自动化测试的成功实施提供了技术保障。
(b)张总对演示会的内容十分感兴趣,并且和小王约定每隔一个月就进行一次演示会,以便了解自动化测试的状态和进展,并及时解决中间出现的问题。这为自动化测试的成功实施提供了组织保障。