随着对测试这个职业的了解越来越深,对微软测试技术的掌握越来越多,慢慢地,人就开始对那些测试“大牛”在做什么感兴趣了。他们就是那些在公司内部挂着“测试架构师”头衔的一小撮人。

AD: WOT2014:用户标签系统与用户数据化运营培训专场

 

在公司呆了有几个年头了。在测试技术方面的技能长进了不少,又能享受写代码的乐趣,同事们经常交流对软件测试技术的见解,也在项目中实现一些创新的测试技术和基于自己的想法设计好的测试框架,每天过的很开心。随着对测试这个职业的了解越来越深,对微软测试技术的掌握越来越多,慢慢地,人就开始对那些测试“大牛”在做什么感兴趣了。他们就是那些在公司内部挂着“测试架构师”头衔的一小撮人。They are Test Architects。

什么?你的公司还有测试架构师这么一说?呵呵,好像很多人都会这么问吧。大家听架构师听多了。比如我们头比尔的头衔就是“微软首席软件架构师”。一般来说,说到架构师,人们想到的都是“软件设计架构师”,那些设计整个产品架构,决定各模块如何协调工作,决定采用何开发平台的大师(对不起,可能每个人对大师的定义不同,如果你心目里只有Lippman, Stroustrup, Anders这样的人才能称为大师,那么原谅我的定义,我的大师就是那些杰迪武士里的Master,他们中有些人是Yoda/Anakin这样实力超人的,但也有一些普通的我们每天都可以从他们身上学到不少东西的人,我愿意把后者也叫大师。)。那么“测试架构师”,他们是些什么人?他们凭什么拿着和设计架构师一样的薪水?我们怎样成长为测试架构师呢?我也是带着这样的一个个问题,在雷德蒙总部有幸遇到一个测试架构师艾德。那天,大晴,有利西方。

测试架构师,这里我更多的是讨论这个角色的职责,而不是这个头衔本身。所以也许你已经扮演了这个角色,但没有这个头衔。但这不妨碍我们讨论测试架构师在做什么。

如果你是一名测试架构师,那意味着你有很多事情可以做,虽然你不一定都做:开发和设计测试框架测试库;纵横全局的考虑产品的功能,设计复杂的测试系统;负责研发某一项特定的测试技术;为你的公司考虑如何提高测试效率;但总的来说,我们可以这样描述:测试架构师领导公司测试技术的发展和测试策略上的方向。区别一个测试架构师和普通测试工程师的特质是:他关注的是一个功能模块,一条产品线,还是整个公司的测试部门的问题。甚至对于一些更加资深的测试架构师,他们已经不再局限于产品当前版本的测试,他们可以前瞻性的考虑未来的版本的测试策略和技术。

测试架构师的角色可以和设计架构师的角色互相比较着看,设计架构师,计划/设计一个产品,关注着产品的研发过程。同样的,测试架构师他们计划/设计测试平台,关注着产品的测试过程。(废话而且拗口是吗?)但他们倒是有一个让我们IT民工羡慕的共同特点,他们更多的是提供咨询服务,并不亲身去帮你写完每一行代码。他们的工资不由他们敲多少字决定。

测试架构师具备测试技术测试方法学上雄厚的知识,不仅仅是公司内部的知识,也包括公司外部的知识。所以他们具备实力给那些测试经理们提供“咨询”服务,告诉他们,什么样的测试技术什么样的测试平台会符合公司要测得产品,什么样的软件流程可以更好的保证软件质量。那有人会自然想到,这不是测试经理的事情吗?不然,测试经理,我们都是知道,人一到了“经理”这个位置,杂事就多了,员工加薪,员工福利,办公室装修,测试实验室购买新机器。什么事情都可能找到测试经理头上。测试经理的主要责任,应该是领导和培养一个优秀的测试团队。所以领导和培养是他的重点。对于剩下得测试技术测试策略上的任务,这时候他身边的测试架构师就起到了辅佐的作用。我觉得,这样的一个解释可以让很多测试经理如释重负,把技术和管理的重担全部依赖在测试经理的身上,有点不近人情了。

测试架构师不仅仅是需要影响到公司内的测试机构测试社区,还需要影响开发机构甚至市场部门,好的测试架构师,可以从保证质量的角度,对产品的研发销售各个方面施加深远而正确的影响,也吸收来自各个部门的建议,最终提高整体软件质量。所以说一个优秀的测试架构师,也可以是一个不错的设计架构师,不错的用户需求分析师。因为软件质量保证是一个贯穿需求分析、设计、测试整个软件项目的过程。做好测试架构师,就要求你能够驾驭软件项目各个阶段。所以对开发和其他部门的熟悉是必不可少的。

前面说了这么多软件测试架构师“做”什么,最后我们谈谈哪些是他们“不做”的:

1.他们不是项目经理,虽然前面说了很多软件测试架构师对项目的各个方面施加影响,但是他们不是项目经理。一个纯粹的项目经理要考虑的事情还有很多很多,如果一个测试架构师最后扮演了项目经理的角色,那么对项目还是对测试架构师,都是不益的。

2.测试架构师不是一个水到渠成的头衔,不是你做了很多年测试,对产品很了解,就自然成为了测试架构师。你需要有足够的技术前瞻能力和对公司内的影响力以达到对产品测试策略和技术方向提供咨询。

3.不只是一个纯粹的软件测试技术编程高手,一个测试架构师的存在是为了解决实际项目产品中的测试问题,并不是一个纯粹的测试技术编程爱好者。一个热衷于单元测试开发框架的人,可以是一个编程好手,但未必是公司需要的测试架构师。一个架构师,对技术和测试策略测试方法学都能在解决实际问题上运用娴熟。