成为一个专业QA的另一个关键技能,不是测试的技能,而是其他的技能。想象一下你希望加入一家规模较小的公司或初创的公司,只有测试技能,可能无法确保你能应聘上这份工作。但是,如果你能够做些其他工作,如自动化编译版本,搭建Web服务器,创建部署脚本。你将有更大的机会被录用(因为你可能不是全部时间都在做测试,所以,如果你能在同一时间做很多不同的事情,那你将是一个非常不错的候选人)。
为什么我们应该立志做一个专业的QA,而为什么不干脆永远做一个软件测试员?
做一个优秀的软件测试员,是同时需要编码技能和测试技能。然而,我们需要在未来选择一个领域来深入,要么编码要么测试。这真的取决于你是否对软件测试有激情,和是否把它作为一种事业。如果你喜欢测试本身,成为一个专业的QA是一条很适合的职业发展道路。此外,同时拥有编码技能和测试技能将是你去应聘其他公司的QA职位时的亮点之一。另一方面,我也看到很多软件测试员对今天的工作并不满意,而且我认为根本原因是,他们有着工程师的根(engineering root),并不喜欢测试。如果你真的喜欢编码,转行到开发或做更多的测试自动化,测试类库的开发可能是你的方向。在过去,我们曾经有两个独立的角色:SDET,STE(软件测试工程师),一个专注于自动化,另一个专注于测试,和许多公司一样,他们也有类似的角色,如亚马逊,谷歌。我认为这有一定道理。
我们可能会从上面的定义中注意到的一件事,质量保证是许多行业都有的职位,不仅仅在计算机软件行业。例如,在汽车行业,QA是负责审查我们的汽车是否符合质量要求(meets the quality bar)。不幸的是,在软件行业的QA还不够成熟。今天,几乎没有哪个学院设立软件测试专业或者设置一个软件质量保证的学位。我们中的许多人选择软件测试员作为我们的职业,因为我们被雇用来担任测试员,并不是我们喜欢做测试。我们看到了很多关于测试员(SDET)在公司内外职业发展的博文和文章,我们还将在不久的将来持续看到这种情况。只是因为测试作为一个专业的职业还不够成熟,我可以预言,这里面很快就会发生很大的变化(例如,在必应(Bing)团队中,我们做了一种改革,没有单独的测试员,所有人都是软件开发工程师,每个人都负责自己的程序的质量时,我们采用在生产环境测试(Testing in Production),把测试员的角色调整到更广的服务监测和运营领域中)。
1.2 成为测试架构师
在本节中,我想讨论我们如何能够成长成一个测试架构师。在这里,测试架构师不是一个头衔(title),而是一个角色(role)。例如,如果你在很多测试工具/框架上都做出了突出的贡献,你可能有一个测试架构师的头衔,你也可能不是一个测试架构师。同样,一些软件测试员在他们的公司中扮演测试架构师的角色,但他们没有一个测试架构师的头衔。
测试架构师的角色意味着什么呢?在这里,我列出了测试架构师应该着眼的几个重要领域:
-
定义一个功能的整体测试策略,比如,如何测试一个浏览器,如何测试一个云数据库等;
-
某个测试领域的专家,如安全性测试,性能测试,云测试;
-
在团队中引入或发明新的测试方法,如探索性测试,众包测试(crowd sourcing testing);
-
根据具体情况指导和培养团队;
-
思考测试的未来和测试员的职业发展的未来,并为未来做好准备;
-
参与测试相关的活动,如测试访谈,会议,博客;
怎样才能成为一个测试架构师呢?首先,它不是一个简单的事情,你需要先成为一个专业的软件测试员。作为专业的软件测试员,你会在你的日常工作,提高上述的能力,再成长为一个测试架构师。另外,许多架构师都在不同的公司、团队中接触过了不同的项目,所以都是非常有经验。参与到不同类型的项目之中,你总是能得到一些新的想法。最后,你必须有一种能力,即在任何项目中能迅速地适应变化(adopting change),并做出贡献。这个技能对测试架构师来说非常重要。
今天有一些测试架构师为其他公司提供咨询服务。他们通常有广泛的知识,敏捷开发,项目管理,沟通技巧和风险管理,并帮助拯救许多几乎失败的项目(help to survive many nearly failed projects)。他们是最好的专业软件测试员,并在相关领域中获得了尊重。(未完待续)