一. 测试架构师需要做些什么

  测试架构师听起来确实一个很酷的名字,至少已经跟上开发的步伐了,那么测试架构师需要做些什么呢,他需要哪些技能?

  先请大家浏览下图:


  我把这幅图简单地归结为: 一个中心,一类产出,两种关系

  一个中心 : 保证质量为中心

  一类产出 : 保证自动化回归体系持续集成

  两种关系: 与开发和测试人员的关系

  二. 测试架构师的人员从哪里来

  从上图可以看到做为架构测试人员需要从性能,安全性,可测试性及可持续集成等考虑问题,可能会做哪些工作呢?

  1) 审查系统架构,系统构件及接口关系等设计

  2) 设计软件系统的测试策略和方法,如在性能,安全,稳定性等可测试性的评估,技术路线和质量标准的制定

  3) 对系统(性能,安全性,稳定性,可靠性等)测试作出分析,评估,并提出自己的优化意见

  4) 负责开发某些特定的测试技术和测试工具,考虑如何改进测试技能和提高测试效率

  测试架构师的职责

  测试的职业通道基本是管理线和技术线两条路。

  管理线主要的职责:更多是项目管理和资源管理。

  技术线主要的职责:更多是技术管理和业务知识。

  测试架构师更多是技术线的带头人。管理线的人更多的工作语言是:绩效,考评,时间点,质量等。

  技术线的更多工作语言是:技术规划,技术可行性,技术价值,技术共享性,解决什么问题等。

  软件测试架构师更多是一种角色,而不是一种title,是技术上和测试经验上有影响力的人。什么是有测试影响力的人呢?是你没有任何官位,你不是任何人的行政上级,但是大家在测试技术上和技术方向上愿意跟随你,愿意采纳你的建议。

  其实在很多中小公司中测试组长和测试主管也兼职软件测试架构师的角色和职责。在大公司中,测试人员数百人时,管理工作所需要的精力会非常大,因此技术线和管理线会分的比较开了。

  更多软件测试架构师做什么,可以看我的博客。在我们公司软件测试架构师的职责定义细则也不是非常统一的,也不是很在意是否有这个title,但有一点是一样的,都是测试技术线,对产品的项目管理和做人的工作相应减少很多。

   测试架构师的价值

  其实这些类型的工作早已有人在做的了,以前叫高级测试工程师,叫系统测试工程师,现在叫测试架构师,其实变的只是title,工作内容还是没有变。

  关于测试架构师的重要性和价值,从公司角度出发,测试架构师是在帮助公司从提高运营效率的角度来提升公司的竞争力。通过引入,实践,推广新测试技术,可从单点上提高某些技术效率和提高测试质量,也可从全局提高某些技术效率和提高测试质量,同时帮助员工培养。测试架构师这个角色也是一个团队贡献者,是一个,而不是孤胆英雄和独立贡献者。从影响力的角度来看,做好测试架构师比做好测试经理还要难,因为你是在没有考评权的情况下要去改变测试人员,去推广你的专家价值。据我观察我们公司中没有很好沟通能力的人很难在测试技术路线上有很大的影响力。

  可以说测试架构师是一个公司所有测试技术经验的洼地,他了解内部大部分的技术佳实践,也在积极了解公司外的佳实践,通过个人的实践评估出适合自己公司现状,能解决公司现在问题的测试技术,有利于公司做好测试技术知识资产的管理,减少公司内测试知识资产的重复浪费。对于测试架构师没有支撑的项目组在测试质量和测试效率上的提升相比其它组要慢一些,项目组内对更佳的测试经验和测试技术了解较少,员工成长较其它组也要慢些,视野要窄些。

  国内可能有些误区,如把测试架构师定位为测试工具开发工程师或自动化测试开发工程师,其实这些工作不需要测试出身也能做好。测试技术领域除了工具和自动化,其实还有很多的领域:如何提高测试设计的质量,如何提高有效场景的测试覆盖率,如何把握好测试成本和测试目标的平衡,如何帮助开发提高产品的可测试性,如何做好产品的可测试性设计,如何做好产品的专项测试(可靠性、安全性、性能、压力等),如何做好测试执行的保障,如何做好黑盒以外的测试(需求和设计的测试),如何做好编码前的测试,编码阶段的测试等等。

  测试人员的核心竞争力不是编写自动化,也不是做测试工具,而是测试质量,测试设计的质量。

  测试架构师和产品架构师大的竞争力区别体现在如何提高测试质量的经验和能力上,这才是测试人员不可被替代的独特核心竞争力。

  工具开发和自动化测试开发的积累无法打造不被开发人员替代的测试核心竞争力。如果一个测试架构师50%的时间都去写代码做测试工具开发了,那么是在浪费测试架构师好不容易积累起来的测试经验,其实也是在浪费公司的测试知识资产。测试架构师应该做测试领域中无法被他人替代的工作,测试工具和自动化测试框架的实现是可以被开发工程师或其它有一定开发能力的测试人员替代做的。测试架构师可以基于如何提高测试覆盖率,如何提高测试效率和测试质量的角度提出测试工具和自动化测试框架的开发需求,甚至一些实现的指导可以了。在我们公司有几十名测试开发人员帮助我们实现测试工具,让我们聚焦测试技术,而非聚焦开发技术。