一个资深测试员的感悟

原博文地址:blogs.msdn.com/b/qingsongyao/archive/2012/12/14/tester-s-career-series.aspxgit

原做者是Qingsong Yao,来自微软。他的Linkedin在这里 http://www.linkedin.com/in/qingsongyao,里面有着详细的介绍web

 

思想的启发,至少是黑暗中、迷糊中的一丝灯光。你的职业生涯只能是你本身作主、你本身规划,旁人只能是讲讲本身的经验,给出建议,你能学到什么和作些什么改变,只能靠你的水平。十分感谢Qingsong这篇博文(的确让我有了更多的认识和思考),以及对翻译的指点和修订。面试

【正文以下】:数据库

我已经从事测试工做超过7年,从测试员(SDET)成长为高级测试员(SDET II),最近再从高级测试员成长为资深测试员(senior tester)。在我做为专业测试员的职业生涯中,我曾疑虑过我是否应该转行去作开发,我是否能在其余公司找到另外一份测试工做,咱们的软件测试员是否有更好的职业前景,以及咱们(微软)拥有的测试员是否过多。在这系列博文中,我将给你们分享下个人一些想法,讨论如何才能成为资深测试员,并有一个更好的职业发展。这篇文章是写给咱们的测试员和测试经理。我但愿个人文章能帮助你深刻思考测试和测试员的职业生涯,并但愿你有一个更好的职业生涯。本文分为两部分,在第一部分中,我描述了测试员的四条进阶之路;在第二部分中,是我给咱们测试员的一些建议。你能够在 这里 下载这篇文章的Word版本。编程

注:本文是我以前系列博文的总结,并只是我我的的见解。浏览器

 

目录安全

第一部分 - 成为资深软件测试员的四条进阶之路 2服务器

成为一个专业的QA 2网络

成为一个测试架构师 5架构

成为一个领域专家 5

成为一个工具开发人员 8

转行或继续 9

结论 12

第二部分 - 个人一些建议 13

激情和动力 13

开放的思想和普遍的兴趣 14

提高影响力(Making Big Impact) 15

编码,编码,编码 16

花时间去思考 17

了解产品 18

用不一样方式作事 19

给测试经理的建议 19

结论 21

第一部分 - 成为资深软件测试员的四条进阶之路

在这篇文章中,我认为咱们的软件测试员有四条潜在的进阶道路。它们是: 1)成为专业的QA。知道如何使用不一样类型的测试工具开展网络测试,性能测试,负载测试和压力测试;  2)成为领域专家。能够像最终用户同样来使用你正在测试的产品;  3)成为测试架构师。能够领导整个团队和整个公司的测试以及质量保证; 4)成为工具和框架的开发人员。能够开发出世界一流的测试工具; 我还将讨论工程师的其余进价道路,好比转行去开发人员或PM,改变你的工做领域。

 

成为一个专业的QA

在本节中,我想讨论成为资深软件测试员的第一条进阶道路,是成为一个专业的软件测试员。在许多公司里,咱们称软件测试员为QA(质量保证),QA这种角色在微软成立软件测试员(SDET)这种角色以前,便存在了很长的时间。你可能想知道的质量保证和软件测试员(SDET)的区别是什么。咱们的测试员是质量保证吗?

 

让我引用这里的QA定义来开始咱们的讨论:

QA 表明质量保证,它是一个框架,以确保在符合规定要求下进行开发和制造产品,例如药品,农药和医疗器械。

这是一个须要我的成长 ,实现和持续改进的质量体系 ,不,这不只是另外一份工做。事实上,这是一个跟其余工做都不同的工做。

做为一个专业QA意味着你会获得一个真正的机会,去影响工做实践和提升质量的标准。这个职位,可以提供多种我的的、职业的发展选择,在不一样的项目、过程和地方里扮演不一样角色。这是一个真正负责任的职业,同时也要求我的的真正能力。

 

你能够从上面的定义看到,QA是一个专业的职位,如牙医,教师同样,它须要本身的技能。在我担任软件测试员的整个职业生涯中,我关注了许多专业QA的博客。好比James Bach , James Whittaker , Elisabeth Hendrickson , Cem Kaner 和许多微软内部测试架构师。他们教会我什么是软件测试,为何咱们须要测试,以及咱们如何作测试。那么,他们之间有什么共同的地方吗?他们都是世界上的最好QA。他们都有很是深厚的测试知识,如基于模型的测试(Model Based Testing),探索式测试(Exploratory Testing),生产环境测试(Testing in Production),基于情景的测试(Scenario Based Testing)。他们乐于分享,活跃在社交网络之中,经常把他们想法分享给咱们广大的软件测试员。这很是棒,让咱们能够看到如今有许多很好的测试技术和技术突飞猛进的变化。

 

正如你看到的,成为一个专业的QA,重要的因素不是编码的技能,而是测试的技能。另外一方面,软件测试员(SDET)可算是一种专攻的测试用例自动化的软件工程师。换句话说,SDE们(软件开发工程师 - Software Development Engineer)为实现产品而编写代码,而测试员(这里实际指SDET 软件测试开发工程师 - Software Development Engineer in Test)们为自动化测试而编写代码。编码技能,是咱们的测试员应有的最重要的技能之一(若是你的代码能力不够强,我预计,微软将不会聘你为测试员)。

 

然而,做为一个软件测试员并不妨碍你成为一个专业的QA,反而你还有不少成功的机会。在咱们的平常工做​​中,咱们有不少机会去学习新的测试方法并可在咱们的项目中进行实践再掌握它们。可以深入得理解测试方法,并可以在你的测试策略中使用它们,对测试项目成功来讲是很是重要的。

 

那么,如何才能胜任一个专业的QA?你必须作到:

  • 知道并使用不一样的测试方法,好比基于模型的测试,探索式测试,用户界面​​测试(UI Testing);
  • 在一些领域有深刻的测试知识,好比性能测试,网页(web),手机应用测试,安全性测试(或一个安全专家);
  • 熟悉一些测试工具,好比JUnit,NUnit,MSTest,Selenium或商业QA工具,如HP负载测试工具(HP Load Running),或VSTS负载测试工具;

 

让我解释一下,成为一个专业的QA,咱们为何须要第二个和第三个技能。当一个公司想雇用一个QA,他们一般都有一个明确的指望,他们想雇用一个什么样子的QA。因为不一样领域的测试方法可能有着显着不一样,所以QA趋于更专业,一些QA擅长安全测试,而另外一些QA具备网页设计经验。公司想要招聘一些在某些领域内有经验的人,那才可以解决他们的迫切须要。例如,当正在开发一个网站时,咱们可能会想雇用一些熟知性能测试、网站基础设施的人,以帮助测试网站的可扩展性。若是你能熟知流行的网络测试工具,那将是你的一大优点。例如,若是你知道Selenium,最流行的Web UI测试工具之一,它会给你在就业市场上的增长你的竞争力。在大公司里工做,好比微软,它同时会带有优点和劣势。就优点而言,你将有机会作不一样类型的测试,并培养你相应技能。另外一方面,你可能会使用内部测试工具(不公开性质的那些工具)。你也可能只是测试系统里的一小部分(也就是说,你可能对你负责的那块进行了很是深刻功能测试),但不多有机会测试整个系统。若是你在一些领域有深厚的功底,如安全领域,或性能领域,你会在将来有更好的职业生涯。

 

成为一个专业QA的另外一个关键技能,不是测试的技能,而是其余的技能。想象一下你但愿加入一家规模较小的公司或初创的公司,只有测试技能,可能没法确保你能应聘上这份工做。可是,若是你可以作些其余工做,如自动化编译版本,搭建Web服务器,建立部署脚本。你将有更大的机会被录用(由于你可能不是所有时间都在作测试,因此,若是你能在同一时间作不少不一样的事情,那你将是一个很是不错的候选人)。

 

为何咱们应该立志作一个专业的QA,而为何不干脆永远作一个软件测试员?作一个优秀的软件测试员,是同时须要编码技能和测试技能。然而,咱们须要在将来选择一个领域来深刻,要么编码要么测试。这真的取决于你是否对软件测试有激情,和是否把它做为一种事业。若是你喜欢测试自己,成为一个专业的QA是一条很适合的职业发展道路。此外,同时拥有编码技能和测试技能将是你去应聘其余公司的QA职位时的亮点之一。另外一方面,我也看到不少软件测试员对今天的工做并不满意,并且我认为根本缘由是,他们有着工程师的根(engineering root),并不喜欢测试。若是你真的喜欢编码,转行到开发或作更多的测试自动化,测试类库的开发多是你的方向。在过去,咱们曾经有两个独立的角色:SDET,STE(软件测试工程师),一个专一于自动化,另外一个专一于测试,和许多公司同样,他们也有相似的角色,如亚马逊,谷歌。我认为这有必定道理。

 

咱们可能会从上面的定义中注意到的一件事,质量保证是许多行业都有的职位,不只仅在计算机软件行业。例如,在汽车行业,QA是负责审查咱们的汽车是否符合质量要求(meets the quality bar)。不幸的是,在软件行业的QA还不够成熟。今天,几乎没有哪一个学院设立软件测试专业或者设置一个软件质量保证的学位。咱们中的许多人选择软件测试员做为咱们的职业,由于咱们被雇用来担任测试员,并非咱们喜欢作测试。咱们看到了不少关于测试员(SDET)在公司内外职业发展的博文和文章,咱们还将在不久的未来持续看到这种状况。只是由于测试做为一个专业的职业还不够成熟,我能够预言,这里面很快就会发生很大的变化(例如,在必应(Bing)团队中,咱们作了一种改革, 没有单独的测试员, 全部人都是软件开发工程师, 每一个人都负责本身的程序的质量时,咱们采用在生产环境测试(Testing in Production),把测试员的角色调整到更广的服务监测和运营领域中)。

 

成为一个测试架构师

在本节中,我想讨论咱们如何可以成长成一个测试架构师。在这里,测试架构师不是一个头衔(title),而是一个角色(role)。例如,若是你在不少测试工具 / 框架上都作出了突出的贡献,你可能有一个测试架构师的头衔,你也可能不是一个测试架构师。一样,一些软件测试员在他们的公司中扮演测试架构师的角色,但他们没有一个测试架构师的头衔。

 

测试架构师的角色意味着什么呢?在这里,我列出了测试架构师应该着眼的几个重要领域:

  • 定义一个功能的总体测试策略,好比,如何测试一个浏览器,如何测试一个云数据库等;
  • 某个测试领域的专家,如安全性测试,性能测试,云测试;
  • 在团队中引入或发明新的测试方法,如探索性测试,众包测试(crowd sourcing testing);
  • 根据具体状况指导和培养团队;
  • 思考测试的将来和测试员的职业发展的将来,并为将来作好准备;
  • 参与测试相关的活动,如测试访谈,会议,博客;

 

怎样才能成为一个测试架构师呢?首先,它不是一个简单的事情,你须要先成为一个专业的软件测试员。做为专业的软件测试员,你会在你的平常工做​​,提升上述的能力,再成长为一个测试架构师。另外,许多架构师都在不一样的公司、团队中接触过了不一样的项目,因此都是很是有经验。参与到不一样类型的项目之中,你老是能获得一些新的想法。最后,你必须有一种能力,即在任何项目中能迅速地适应变化(adopting change),并作出贡献。这个技能对测试架构师来讲很是重要。

 

今天有一些测试架构师为其余公司提供咨询服务。他们一般有普遍的知识,敏捷开发,项目管理,沟通技巧和风险管理,并帮助拯救许多几乎失败的项目(help to survive many nearly failed projects)。他们是最好的专业软件测试员,并在相关领域中得到了尊重。

 

成为一个领域专家

今天,我想说咱们软件测试员的职业生涯中最重要的一条路,就是成为一个领域的专家。咱们必须认识到,咱们当中许多人最终是不会成为测试工具的开发人员或测试架构师。他们将成为专业的QA,一个领域专家或只是转行到一个新的岗位。就我的而言,我更喜欢你考虑在领域专家这个方向努力。

 

领域专家是谁?

让我来回答这个问题。假设你测试特定的软件测试五年,那你有资格成为一个领域专家吗?答案是不必定,取决于领域专家的定义。

 

举例来讲,我已经测试了SQL Server六年。我很熟悉数据类型,排序规则(collation),并能编写基本的SQL查询语句。“领域专家”在这种状况下,应该可以设计数据库应用程序或者管理数据库。为何我这么来定义领域专家,由于它是搞数据库的人在其余公司找工做时一个基本要求(一个数据库开发人员或一个DBA)。我能胜任领域专家吗?我并不这么认为,由于我只知道SQL Server的一小部分。而我对这些都没有经验,好比,设计一个数据库架构(database schema),开发一个使用的数据库的应用程序或者管理大量的SQL Server实例。因此我很难找到一个数据库开发人员的工做或一个DBA的工做。

 

正如你能够从上面的例子中看到,“领域专家”是的的确确取决于上下文。若是你在Windows团队中工做,“领域专家”就应该知道安装 / 配置 / 管理Windows或者可以编写基于Windows的软件。若是你在Visual Studio团队中,“领域专家”就应该知道如何使用Visual Studio和.NET编程。若是你在Windows Azure和SQL Azure中,你就应该知道如何经过使用全部可用Windows Azure的技术来构建一个可伸缩的应用程序。从这个意义上说,领域专家,须要你有一个全面理解,而不仅是在某一小块里很是深刻而已。他同时还关注于最终用户是如何得使用咱们正在测试的软件或服务。

 

咱们为什么要成为一个领域专家?

有一天,你可能会考虑离开目前的职位,你可能选择加入另外一个团队或另外一个公司。你可能会问本身的一个问题是,从我过去做为一个软件测试员的经验中,学到些什么样的技能,或者我能胜任什么样的职位。不幸的是,今天咱们不少的软件测试员只对他们的所负责部分有着深入的理解,但他们缺少测试产品应有全面的视野。其中一个缘由是,今天咱们的测试员过于注重功能性测试,我相信这是咱们不太注重用户的使用场景或者咱们的最终用户是怎么在使用咱们产品。这也是我即便测试了SQL Server六年,我依然没有资格担任一个数据库开发人员或一个DBA的主要缘由。

 

你可能会问,为何咱们应该考虑成为一个领域专家,或另外一种问法,为何不就永远待在测试角色上。缘由是,它会为你的将来打开一个很是宽广的门,让你有一个更好的职业。领域专家的需求将远高于专业的QA,另外补偿金(compensation)也将更高,尤为是当你成为一个解决方案提供者时。

 

对微软的软件测试员,更是如此。咱们公司有大量的优秀产品,有很是多的客户。对熟悉微软产品,并知道如何打造端到端解决方案的领域专家或专业人士都有着很高的需求。你越了解微软产品,你的职业发展越好。

 

给软件测试员的建议

如今,我想给咱们的软件测试员提供一些建议。首先,问问本身,你三年后想成为何样子的人,要成为一个领域专家,或者想成为一个专业软件测试员。这个问题,我建议你尽早地思考和做出决定。

 

而后,若是你想成为一个领域专家,你须要有一个成长计划。这里有一些能够帮助到你的步骤:

1)选择一个你想专一的领域。咱们在微软实在是太幸运了,咱们有这么多伟大的产品,所以咱们有许多领域能够专一。近年来,IT技术的变化突飞猛进,咱们应该谨慎选择那些IT趋势的领域。在这里,我想有几个你可能有兴趣知道的领域:

  • NoSQL和BigData是数据库管理领域的热点。市场对熟悉NoSQL(例如Hadoop,MongoDB等)的人有着巨大需求。
  • Windows Azure是微软的云计算平台。彻底理解的这个系统和知道怎么构建可扩展的系统,将是你的职业发展中的一大优点。
  • Windows Phone和Windows 8是咱们下一代的操做系统。能为这些平台构建应用程序,能让你轻松地找到一个开发人员工做。
  • 企业客户但愿整合社交网络,office,移动和必应(Bing)搜索以提供更大的生产力。熟悉Office 365,微软其余的产品可以可让你成为一个解决方案的提供者。

2)在你的工做中培养你的技能。一旦你有对你想熟悉什么样的领域有一个想法后,你须要培养的相应技能。若是你目前的工做领域不是你的兴趣所在,考虑转到其余团队。此外,作一些副项目(side project),参与车库项目(Garage projects)中作些基层创新始终是一个不错的方式来提升你的技能。做为一个微软的员工,你有着不少优秀的资源能够利用,我强烈建议你发掘,总结你的知识。我强烈建议你​​设定了一个目标,并持续不断地提升你的技能。这是你的事业,你应该认真地投入时间来对待。请看个人其余博文,你能够从中找到另外一些提升本身的建议。

 

给主管和经理(Lead and Manager)的建议

亲爱的主管和经理,我但愿你能认识到并不是你全部的员工,在最后都能成为一个专业的软件测试员。咱们应该帮助咱们的成员,增加他们的领域知识,并给他们一个更好的职业。有一天,当你的员工决定转行或离开公司时,他们会感谢你提供的机会,以帮助他们学到本身的知识,并感谢微软提供了一个让他们能成长的平台。

 

有时,创建一个健康、快乐的团队,比完成的任务更为重要。微软拥有的优秀员工正是咱们宝贵的财富。做为主管和经理,咱们应致力于让咱们的员工感到开心,并有一个更好的职业发展。鼓励人们学习新东西,让员工能在某些领域里投入本身的时间,始终是一个培养员工的不错的方式。你也将认识到,若是这样作,你的员工也会引入一些新东西到他们的平常工做​​中。拥有领域知识和了解顾客如何使用产品,一直对测试都有很大益处,这将是软件测试的趋势。

 

成为一个工具开发人员

今天,许多咱们的软件测试员编写了测试类库和测试框架,协助测试自动化和测试运行自动化。在整个公司里咱们有不少的测试框架,测试运行系统。编写测试工具是一项重要的技能,它能够帮助咱们的软件测试员增长他们的编码能力。现在,不少软件测试员开发测试框架和测试类库。他们和其余开发人员同样写一些代码。测试工具开发人员和软件测试员之间的一个很大区别是,编码技能是开发人员最重要的技能,而对软件测试员来讲最重要是测试技能。

 

咱们的工具开发人员面临的一个挑战是,你应该与使用你所建立的类库的其余人紧密合做,并确保你的确提升了工做效率。请记住,编写工具不是你的目标,让其余人更敏捷才是你的目标。

 

我能给想要成为工具开发人员的软件测试员一个建议是,你能够大致上看看,编写一个测试工具跟编写的其余软件是同样的,因此若是你有良好的编码能力,你能够在不少团队中有着潜力无穷的成长,因此不要限制本身去寻找一个软件测试员工做或只编写测试类的工具。

 

另外一种观点认为,测试工具开发人员和编译器开发人员,UI开发人员或数据库开发人员同样,他们只是在不一样的领域具备专业知识的开发人员。这是我之因此把本节的标题写成“成为工具开发人员”,而不是“成为测试工具开发人员”。

 

它带来了另外一个有趣的观点,就是咱们的测试员(SDET)角色实际是专业软件测试员和测试工具的开发人员的混合体。咱们但愿你们经过编码(开发的角色)来作更多的测试自动化(测试的角色)。可是,在某些状况下,咱们发如今这两个领域,咱们都不太擅长。它可能潜在地限制咱们的软件测试员长期的职业规划。

 

转行或继续

我曾打算写一些建议,关于你是否​​应该留在你目前的职位或转行到另外一个其余团队、其余公司的职位。在写下个人想法以前,我想我能够给你一些关于这个主题的参考。

 

第一篇文章是一个10年前Interface上发表的一篇文章,标题是“职业生涯?什么职业生涯?”。文章首先说,“你的职业生涯发展是你的责任。”和“你管理着本身的职业生涯。”而后说你,你的经理和微软怎样一块儿合做,帮助你的成长。这篇文章提供了一系列的问题让你进行思考并回答。根据你的答案,并提供些很好的建议,不管如今是否应该作出改变。我最喜欢它的一部分是,它有不少的探索式(probing)、开放式(open-ended)的问题。例如:

回顾……

  • 你最享受的是作什么?是什么驱使你投入时间来干得这么漂亮?(What was it about those times that made them so good)
  • 有时你会特别不喜欢你的工做吗?为何?
  • 去年里你感到最骄傲的成就是什么?
  • 在你开始你的职业生涯后,你的抱负或长期目标有所改变吗?什么时候?为什么?你如今将如何​​描述你的长期目标?
  • 你的价值观是什么(一个主要标准,判断你是如何作事的)?你目前的工做和你的部门(微软)是否符合你的价值观?
  • 你的经理是如何作你的教练?还有谁是你兴趣的好教练?

展望……

  • 你真正擅长什么?从你的职业生涯中,你最想收获是什么?
  • 当你展望你的职业生涯时,是否有些事情你特别想避免吗?为何你想避免它们?
  • 你认为在将来十年中你的职业生涯将会出现什么?
  • 你须要什么样的技能或经验来为你下下个工做准备?对于十年的计划,你须要什么样的技能或经验?
  • 你的经理(或微软)能够作些什么来帮助你实现你的目标?你须要从他们身上获得什么,才能使你得到成功?
  • 当你展望你的职业生涯时,有什么是你特别期待的事情吗?理由是什么?
  • 你认为你的下一个工做将是什么?下一个工做以后,你认为你的再下一个工做又将是什么?

回顾,你会被引导着去思考过去的工做经验。展望,你会被引导着去思考你想成为何样子。思考这些问题,会真正帮助你整理职业生涯的思路。

 

而后,第二篇文章是在讨论这个问题,即“是改变的时候了吗?” 。文章列出了职业发展的八大选择模式:普遍(Enrichment),偏向(Lateral),垂直(Vertical),跨职能(Cross-functional),从新调整(Realignment),探索(Exploratory),执行(Peform),和其余的追求(Other Pursuits)。这篇文章讨论了,你是如何在作决策,好比何时应该做出改变、何时又不是一个合适的改变时间和如何作好你的功课,再作出一个合适的改变。它也列举了不少别人的例子。例如:

 

若是你不满意你的工做,无论是由于你不喜欢你如今工做的类型,仍是由于你共事的人的价值观或者公司文化跟你不对路,作出改变也许能帮你走出这种状态,但你得先作下功课!Lou Nee Gerard如是说:“跳槽换工做不是一个避难所。作出的改变应该是积极的,应该由于你真正想要去作些什么,而不是去摆脱你不喜欢的事情。”,他曾从行政职务转行到PM。

 

当你有一个明确的目标,并你已决定是否投入额外的努力时,这可能须要一个新的挑战(challenge),你应该时刻关注这些潜在机会能不能知足你的目标,并时刻准备采起行动。例如:

跟你的经理聊聊。根据不一样的状况,这多是一个很是宝贵的步骤或一个你不想采起的步骤。你的经理多是你最好的支持者并支持你的改变。若是你开始提你想要作的事情和你如今的工做不同,虽然有些经理可能会感受受到了威胁,一个优秀的经理会认识到对微软来讲,你的成长是一件好事,并尝试与你一块儿向你的目标努力。

 

有时候你和你的经理极可能不是很合拍。这种事不免。若是你不能跟你的经理聊,你可能须要选择另外一位导师,来帮助你作决策。

 

安排非正式的访谈。如今有很多谈论工做的非正式谈话,好比他们作了什么,他们是如何到达这种水平,什么样的技能才是重要的。你不须要你的经理像针对正式的访谈同样进行审核批准,就能组织安排这样非正式的访谈。这样的访谈实际上有利于微软这个总体:你将了解到更多适合你的职业发展方向和更多微软提供的机会。

 

若是你的目标是成长(growth)…… 考虑寻找一个比较成熟的团队而且负责人有着良好的记录。在一个运做良好的团队中工做,你能够学到不少东西,包括什么时候创新以及如何创新,什么时候交付和如何交付,以及优秀的团队过程。

 

若是你的目标是提高(advancement)…… 考虑一个具备部门的战略价值的初创团队。这些团队开始都比较小,成长很是快。他们能够为你提供快速提高、回报明显的机会。初创团队的风险与机会并存,新团队有更大的升迁机会,但也有较高的风险,其中许多团队是历来没有交付出任何东西,而且他们可能须要在人员不足的状况较长的工做时间。

 

看看微软以外。 从咱们公司以外的人获得一些建议。设计师和MSTE易用性培训经理 Scott Berkun 说到“真正的职业发展是远比微软大的。你在这里看到的差别和对比,能够帮助你作出更明智的决策;在某些状况下,咱们更比其余高科技公司,分层和分级得更多,并在另外一些状况下,咱们更加开放和灵活。”若是不从外部的角度来看,你会看不清楚在微软你所拥有的优点。

 

当你到了一个新的职位时,你想要踏出为将来规划的或者丰富你职业生涯的一步。Barbara Wilson,MSTE领导培训经理,提出了三个试金石,来判断你是否是在踏出正确的一步:

最后的这份工做。 若是你有一个以上的选择(待在原来地方多是其中之一),这个试金石才会有效。假设,微软的工做是你最后的这份工做,在你正在考虑的几个选择中,哪些选择将会对你在几年以后想要作的有所帮助?

例如,若是你但愿看到本身进入培训的角色,而后你能够在真正技术相关的和参与到培训他人的两个工做之间作一个选择的话,后者的职位多是一个更合适的选择。

 

我会感到兴奋吗? 问你本身四个问题:我对这个产品或服务会有激情?我能接触到客户吗?我对此职位或团队的问题处理解决感兴趣吗?这个团队的文化和管理理念是否适合个人风格?

合适吗?问问本身的职位,它能会为你提供些什么,而后再问问本身,你能为你的团队带来什么。若是这两个答案彷佛是互补的(complimentary),它多是一个很好适合你的职位。

当你完成全部的自我评估和功课后,Brechner建议再作一个测验来判断此举是否正确:“带着你的勇气。”改变有时是很是困难的,即便你已预想过的相关状况。若是你以为这一个改变,将教会你一些新东西,而且在改变时你感受还行,那么极可能它就是一个很正确的改变。

 

结论

这是第一部分的结尾。除了这四条职业进阶之路,咱们还有其余的道路。例如,咱们能够成长为测试主管(Lead),测试经理,PM和开发,甚至咱们能够找到一个不是计算机领域的职业。做为软件测试员,你对系统有宽广视角,你考虑客户比考虑代码更多,你努力思考为何咱们要开发这个功能,我怎么能确保这个功能就是咱们的客户所须要的。你从测试中学到这些技能,能够在你争取将来的职业时给与一些帮助。在接下来的一部分里,我将讨论,咱们的软件测试员成长为更优秀的工程师的几个方面。

 

第二部分 - 个人一些建议

在这部分的文章中,我将专一于提供建议,以此帮助你的职业生涯发展。的确改变可能须要一段时间,有一天,你将成为一个资深员工。不断学习,不断思考和壮大本身的兴趣是你的职业成功的关键。我但愿本文能够帮助你思考和开始积累你的力量。以我本身为例,我曾只专一于个人项目,只用不多的时间来思考。有一天,我无心中访问了www.infoq.com ,和听到了“被夸大的测试(Testing is Overrated)” 的会谈。阅读后,我把个人想法分享给个人同事们,并认识到,在我工做以外还有这么多出色的信息。我开始阅读这些文章,并借阅测试​​书籍。培养这样的学习和思考的习惯会花费时间,但一旦你有了这样的能力,你会发现,你能够成长得很是迅速。

 

激情和动力

有时,人们天天都作相似的事情就会以为乏味。他们开始失去激情,感受本身的职业生涯发展变得缓慢。咱们应该如何处理这种状况?我能够给你一些建议。

  • 考虑离开本身的温馨区域。

一旦你在一个地方里待了很长一段时间,你就有了一个温馨区域,它让你以为你的工做失去挑战,你的技能不在提升。所以,是时候来改变了。你既能够换到其余公司也能够换到其余不熟悉项目。请你们认真考虑这个问题,由于这对你的职业生涯有重要影响。在将来的博文中,我将详细讨论改变或不改变。在通常状况下,我认为改变是应该的,你应该经常对此进行思考。我看到过不少例子,换到其余团队,并获取到更好的职业生涯。另外,还要考虑到换到其余团队,会给你提供机会,去学习新的、最终将有利于你的技能。

  • 考虑作一些某些副项目(side project)。

个人第二个建议是,考虑作一些副项目。在过去的几年里,我发现,你们在他们的空闲时间里或主要任务责任外打造的项目每每比资助项目有更大的影响(the side projects which people build during their free time or out of main responsibility tend to have much larger impact that the funded project.)。做为一个专业的工程师,咱们应该自我激励,自我组织。若是我所作的事情正是个人兴趣所在,我将会对它充满激情,并会为它作出持续努力。

  • 拓展你的兴趣点。

个人第三个建议是,试试其余领域的兴趣。例如,当我以为平常工做很枯燥时,我常常去公司内部微博,了解今天微软内部发生了些什么事。我喜欢阅读 www.infoq.com 的文章,了解公司外部又发生了些什么事。我喜欢阅读谷歌测试博客了解他们正在作些什么。你能够选择一个你特别有兴趣的领域,而后保持这个卓越的习惯,天天都学习些新东西。

 

最后,我有一些建议给咱们的经理:宏观管理而不是微观管理;给你们一些作其余事情的自由;鼓励你们去尝试不一样的机会。我知道咱们的承诺,咱们的任务必需要完成。然而,让你们愉快和受到激励比交付一个功能更为重要。一个快乐的团队能提供更好的产品,咱们都不但愿老是压力山大。

 

开放的思想和普遍的兴趣

一旦你在一个地方里待了很长一段时间,在你所在领域你得到了很是深厚的领域知识和测试方法。在这种状况下,咱们每每是安于咱们如今所作的,并有时还会避免改变。然而,做为一个专业的软件测试员,咱们应该始终更宽更广地思考,思考有咱们能够采用些什么新技术,思考你所在领域的将来测试技术。在通常状况下,一个优秀的软件测试员应该思考的比咱们目前已有的东西更远,并有一些应对更改的计划。

 

为何呢?究其缘由是技术变化太快,若是咱们不提早考虑,提早作好准备,有一天,当变化发生时,你会发现,你得仓促地面对这么多的挑战。例如,我总在浏览 www.infoq.com  www.dbms2.com ,以此提升个人技能。当咱们的团队决定用列存储来实现数据仓库时,我已经知道咱们为何应该这样作的,这个领域中最热门的技术是什么。

 

为了培养这样的技能,咱们须要的是开放和普遍。咱们须要知道公司内部发生了什么事,社区里又发生了什么事。咱们应该很开放地聆听和学习别人的想法。我强烈的主张,咱们的资深测试员应与其余团队成员保持密切联系,尤为是微软里其余团队,并培养一种学习技术并能迅速吸取的能力。有一天,你会以为学习的投入将为你的工做带来巨大的回报。

 

我能够给你一个例子,我如何作到这一点。就我而言,我订阅了微软内部和外部的大量很是活跃的博客,接收别人的更新。我也参加了会谈和培训,来提升本身。讲座范围能够很是普遍,如云计算中的系统工程方法(service engineering),基于场景的工程方法(scenario focus engineer),即以用户需求为导向的系统开发,等等。经过参加这样的培训,你将收获更广的技术知识。另外,你能知道公司内部发生了什么事。在过去的一年,我就参加了两个$99外训,而后我引入ATDD和我的看板(Personal Kanban)到咱们的团队之中。SQL团队中许多成员所使用的技术和ATDD,其实早已被微软内部的不少团队使用过。你能够看到开放和普遍的价值,它能帮助你成长为一个资深测试员。

 

提高影响力(Making Big Impact)

今天,我想谈的另外一个话题是做为一个资深测试员,需提高影响力。衡量一我的的成就的重要途径之一就是你对团队,对项目,对客户有多大的影响。我有三个方面提高影响力的建议。

  • 帮助他人的成长

咱们须要意识到,不管你是多么聪明,只靠你本身,你是不可能成功的。你帮助他人成长越多,你越可能会成功。做为一名资深测试员,我老是很喜欢看到初级测试员提升他们的技能,发展他们的职业,我也将提供建议和指导他们,帮助他们成长。就个人内心而言,我认为帮助别人是最重要的事情,咱们应该每一天都帮助别人。有不少方法能够帮助他人成长,帮助他们作项目,回答论坛里问题,指导新成员,教他们如何编码和如何测试。对一个团队来讲,创建这样的文化氛围是极其重要的,由于你们会感到其余人的温暖,并鼓励分享和学习。最后,咱们一个团队一块儿都能成长起来。

  • 影响他人

一旦你变得愈来愈资深,你已经掌握了很是深厚的技术知识,大量的项目经验。你获得别人更多的尊重,成为某一领域内的大牛(GOTO person)。换句话说,你有能力影响他人。若是咱们看看,架构师,技术潮人(Techiques Follows),大牛的工程师(Distinct Engineers),他们的观点和思想能影响了不少人,相似这样的能力是他们独一无二的资产。

 

你认为咱们可以像大牛同样影响其余人吗?我想是能够的。每一个人都有一个你擅长的领域。你应该用你的专业知识来帮助人们做出决定,并提供宝贵的建议。例如,对于每个我参与过的或我学习到的项目,我都对它有些独特的见解,我试图理解为何咱们应该开发这样的项目,我会更多思考为何咱们不使用另外一种方式来构建它,我经常把个人想法分享给项目里的全部人而后咱们一块儿再做出决定。我写了大量的博客,分享个人想法,并但愿影响更多的人。

  • 更多的跨团队协做

以我本身为例,在最近几年,我引入ATDD(验收测试驱动开发 - Acceptance Test-Driven Development)到咱们的团队,并把它介绍给不少微软内部的其余团队,如Bing,Lync团队。我也参加不一样类型的会议和研讨会,了解其余团队是在如何作测试。每当我看到有人作我所熟悉的项目,我也问他们是否须要帮助。

 

总之,当你努力提高你的影响力时,你的经验一样也会积累愈来愈多,你不断成长为一个资深测试员。

 

编码,编码,编码

今天,我想讨论一个最重要的技能,咱们的软件测试员应该在本身的职业生涯中所掌握,这就是编码。

  • 为何编码这么重要?

由于你是软件测试员(SDET),软件测试开发工程师(Software Development Engineer in Test),你是软件工程师。做为一个软件工程师,编码就是每一天你应该作的任务,这是你应该掌握的技能。你可能会问是否编写测试用例没有编码更重要。这里的缘由是,编写测试用例能够帮助提升产品的质量,但有时它并无促进你的职业生涯发展。我能够举个人一个例子。当我刚参加到SQL Server团队之中,咱们编写以T-SQL脚本为基础的测试,我不多有机会写编码。所以,个人编码技巧并无提升。幸运的是,SQL Server的测试团队转移到以编程的方式编写测试,今天,咱们的软件测试员的编码时间增长了很多。这是至关不错。固然,有时咱们花费太多的时间在编写代码和类库上,而花费较少的时间来写真正的测试用例。这是另外一个很大的话题,在这里我就不打算讨论了。

 

因为今天咱们当中大部分人在编写自动化测试,这意味着咱们有很大的机会来提升咱们的编码技能吗?答案是不必定。今天咱们的测试员作了太多的任务:咱们编写测试库,咱们验证测试结果,验收产品,咱们配置机器和安装新版本进行测试,咱们修正咱们脆弱的测试,咱们建立和关闭缺陷。有时咱们花费大量的时间在下载和编译源代码。咱们也有其余的任务,如会议,项目跟踪 / 缺陷报告。上述全部任务将须要花费咱们天天中的大量时间,而时间提醒着咱们,作实实在在编码真得不多,咱们的技能提升也很是小。我记得有一天,我曾对咱们的测试经理提到过个人梦想——我能够花50%的时间在编码上,他很惊讶,他认为这个数字理应还要大不少。然而,现实是这个数字理应小得多。

 

因此,咱们该怎么处理这种状况呢?咱们应该尽力尝试,改善咱们的工程系统,以减小没必要要的时间开销,让系统可以安装配置环境,安装测试版本,运行测试,建立 / 关闭的缺陷和退出测试。全部这些应该是自动化的。咱们应给本身承诺天天尽量多得编码。因为你的工做性质,若是你不能作到这一点,你应该考虑换到其余工做。

 

小结,请记住编码是一个重要的技能,你应该去提升它。

 

花时间去思考

在最近几天,我试图去理解,咱们应该如何去教导和学生如何去学习。个人Ph.D研究经验和最近戴尔·卡耐基培训,为我提供一些想法:

  • 教给他人或分享经验给他人最佳的办法是让他们思考。在你的谈话中无论他们思考了什么,他们至少学到些东西。一个好的实践是鼓励他们说话,与你互动。
  • 思考自身有时可能并不够,咱们可能须要实践和应用咱们的思考到咱们的工做中。

就研究论文而言,咱们的论文大部分沿用了经典的格式,它必须有简介,相关的研究,实验结果和结论。没有实验结果的论文几乎是不可能被发布的。另外一方面,论文的本质观点,彷佛是不知为什么地被隐藏起来或不是那么容易得找出来。我认为这是作研究里一个的问题。

 

当咱们想要向人们作演示展示点东西时,或者咱们想要写点东西教给别人时,一样也有上面的问题。首先,你会花不少时间在研究我应该思考些什么。以后,你头脑中就有些想法了,你会渴望经过写些东西与他人分享,这是一个很棒的方式来归纳你的想法。

 

最后,我相信资深测试员的价值,是他能够给团队带来的观点 / 技能,而不是他在过去的工做经验。对咱们的软件测试员来讲,可以努力思考问题,并找出解决方案是一个重要的技能,我但愿咱们的资深员工应有的最最重要的技能就是思考 ,一个优秀的领导必须首先是一个出色的思考者。

 

了解产品

我相信做为一个资深软件测试员,咱们应该充分了解咱们正在测试的产品。知道产品的方向 / 将来是建立更好的测试的第一步。换句话说,若是咱们不理解为何咱们应该构建这个产品和咱们将构建怎样的产品,那么咱们将不能编写出优秀的测试。

 

咱们应该更多地参与项目 / 产品的规划,并影响产品的的策略(不只是测试策略)。请注意,这是咱们能够提升产品质量的重要途径之一。若是咱们能够发现设计时的缺陷,咱们能够节省下不少的时间和金钱,并且甚至比发现大量功能上的缺陷要有价值得多。有趣的是,我相信一个优秀的产品设计和一个正确的方向,会带来更少功能缺陷。过去我参与了大量的改进,我发现,若是是精心设计的功能,咱们在实现功能的过程当中将看到更少的产品问题 / 缺陷 / 后顾之忧。不管如何,若是该功能没有获得很好的设计,咱们不该该去实现这个功能,不然你在执行的功能时会看到不少问题。

 

参与产品的设计,也能够帮助咱们提升管理 / 构建项目的技能。并提升咱们的技术技能,对测试架构师和领域专家的职业道路都是相当重要的。

 

了解产品,能够帮助团队成员讲同一种语言,更顺畅地交流。假设有一天,你想加入另外一家公司作云计算,当你和你的面试官谈论时,他们可能会问你不少关于云计算的问题。若是咱们只知道在服务中如何测试单个组件,你会发现你是缺少知识 / 思考的,这将影响你将来的职业生涯。然而,若是你知道并思考过IASS,PASS,亚马逊AWS等云计算技术,我敢打赌,你将有更大的机会获得这个职位。对于一家初创公司来讲,有一个除测试之外的技能是相当重要的。这始终是一条金科玉律。


最后,我想分享下Erwin Engelsma的观点:

“测试可以提升顾客的满意度,前提是你真的知道客户认为何是真正重要的,并测试了相关的内容。在你的客户几乎不感兴趣的领域,作出很大的改进,虽然是一个值得称道的努力,可是这不会改变他们对产品好坏的见解!”

- 改进测试时的关键问题 —— Erwin Engelsma。

 

用不一样的方式作事

有一天,个人经理问我:“Qingsong,当你还在高级测试员级别时,为何你能够获得出众的评价结果​​”。在高级测试员的阶段,我尚未很丰富的测试知识,对团队的影响也不大。因此,我也想知道是什么让我有这么一个出色的评价结果,答案就是在用不一样方式作事情。

 

这个问题的一种思考方式是,你如何把你与其余人区分开来。我发现当我被分配了一些任务时,我会额外地作一些我应该作的事情,这使我跟他人不同,更主要的缘由,我提高了影响力,也发展个人职业。这里有一些在过去我曾作过的事情的例子:

  • 当咱们计划在SQL Server中增长对日期和时间(Date and Time)的支持时,我花了不少时间来研究日期 / 时间和时区在Windows,Linux,.NET和Win32 API上的支持状况。我曾积极参与到项目的规划和设计中。这就让当咱们测试功能时,我就有了一个更好的地位。另外,我在该功能的测试过程当中承担了更多的责任,包括构建管理,测试运行管理,在线文档审查,并帮助他人编写测试用例。这些增长了个人知识,还帮我产生了更大的影响。
  • 当咱们在SQL Server 2008中实现了稀疏列(Sparse Column)功能以后,在功能提交后我并无中止思考咱们的功能。我曾积极地在内部寻找可以使用咱们这个功能的地方。最后,我发现咱们团队的VSTS系统能够使用这个功能,因此我和支持团队一块儿工做,把这个功能部署到系统中去。这样一来,我帮忙提升了团队的业务能力,同时也更好地了解到功能的用户场景。结果就是,我看到这个功能还缺乏的一些更细功能。

最后,我但愿你能体会用不一样方式作事的意义。若是你有这样的能力,将会帮助你的职业生涯不少。

 

给测试经理的建议

今天,我但愿写一篇关于招聘软件测试员的博文。主要读者是咱们的招聘经理。这篇博文不是关于如何面试人或决定雇不雇用一我的,我认为这些是具体过程。而个人主要议题将关注为何,即为何咱们须要聘请一个或多个测试员。

 

我不是一个测试经理,当须要更多的人时,我不知道咱们的经理给人力资源那边说的缘由是什么。也许先让我列一些可能的缘由:

1)咱们开始一个新的项目或功能,咱们须要创建一个新的开发和测试团队。

2)咱们有一个新的测试主管(test lead),主管应至少管理5〜8人。

3)咱们在作项目时,测试资源短缺。

4)咱们的副总裁给测试经理一些名额,若是咱们不填上这些名额,就会被“浪费掉”。

 

咱们真的缺少测试资源吗?

我老是听人说他们的项目缺少测试资源。可是,咱们真的缺少测试员?不必定,根本不是。微软内部没有测试资源缺少的问题,而是资源分配问题。今天,咱们的测试一般属于一个组件(component)团队,由一个测试主管带领。他深入理解他的领域而且测试也作得至关不错,以便发展他的职业生涯。人们每每认为,每个部门都须要一个单独的测试团队人们每每认为,测试是一个专业的工做,须要深刻的了解测试。咱们能够以另外一个角度来看这个问题。今天,现代的测试框架,如NUnit,XUnit,MSTest和Selenium,编写自动化测试起来是很是容易,作测试并非真的须要太多的测试知识,尤为是对于白盒测试来讲(我相信由开发人员来写白盒测试并尽早地跑起来,那么白盒测试的效果将比黑盒测试大得多)。

 

我看到很多的状况是,咱们的资深软件测试员对他们负责的组件有着丰富的领域知识,对于这样的组件,深入理解是必要的。测试查询优化器(query optimizer)就是一个例子。不过,我认为最好的测试员应该把他的知识和测试理念应用到测试类库,让每一个人均可以使用它,使得这样的组件测试变得更加容易。在SQL Server中,TestQP和QREL是很好的例子,这两个工具就内嵌了查询优化器和关系数据库的知识。你将你的知识转化为代码后,我以为你能随意移植到其余团队,咱们是没有必要去限制,由于他在这个领域中有着最丰富的知识。

 

扩大咱们的团队并不意味着咱们的业务扩大?

有时,一个团队从5人扩大到20人甚至更多时,人们感到自豪。然而,这并不意味着,咱们的业务扩展了四倍。不该该用人数来衡量经理或团队成功与否。

 

你想增长新的测试员来提升团队的工做效率?

这可不必定。有时,它是成立的,咱们的测试员在项目上很是繁忙,咱们有一种感受,添加一个或多个的测试员能够帮助咱们,真的吗?若是缘由是咱们想招人,那完成这个项目以后又该怎么办?咱们永久地保留他们。

 

下面是一些我给咱们招聘经理的建议,若是他想雇用一个新的测试员时:

1)须要一个测试员时,尝试探索不一样的方法来解决这个问题,并把雇用一个新的测试员做为最后的备选解决办法。

2)若是在项目上咱们须要更多的测试员,咱们能够从其余的团队调用些测试员吗?

3)若是咱们有太多要作的事情,咱们能标清优先级,并放弃部分低优先级的任务吗?

4)考虑培养一个技术主管,而不是培养一我的事管理主管。咱们倾向于培养很是优秀的技术人员成为主管,让他管理更多的人。然而,今天咱们的主管,在人事管理和其余的东西上花了太多的时间,他们只是没有时间思考,没有时间去提升他们的技术方面技能。因此,请考虑把咱们的主管视为技术主管,这样一来,管理多少并不重要,重要的是能影响帮助到团队的人。

5)请务必花时间去改善咱们的文化,咱们的过程和方法。优秀工程是更高生产力的关键。减小咱们的技术负债,投入时间去创新。

6)考虑采用一些指标来衡量测试员或测试的效率,所以,咱们能够用更好的方式来做出决定。

 

测试新人的职业生涯怎么样?

这是一个很大的话题,这里我不会说得太多。一种见解是,咱们都但愿咱们的员工可以快速成长,在将来有一个更好的职业。咱们都但愿咱们的测试员能够很轻松地在其余公司找到测试工做,若是他们决定去追求公司之外的机会。然而,今天许多公司的开发人员与测试员比例相对偏低,而且他们相信他们的产品质量不算坏。我但愿有人能在就业市场和测试员的水平上作一些研究,咱们能够用更多的事实来分析这个问题。

 

结论

这是“成长为资深软件测试员”系列博文的结尾。我但愿从个人博客中,你能够学到一些有用的信息,并帮助你决定​​你的职业道路。近年来,计算机技术的变化突飞猛进。云计算,社交网络,移动都是热点领域。技术的变动一样也须要不一样类型的测试技术。我会开始写另外一个系列博文——“对测试的将来和软件测试员的职业的将来”。在接下来的段落中,我将列出一些的最新文章,以此回答软件测试的将来是什么,服务领域测试(testing in the service area)的将来是什么,以及对软件测试员的职业生涯有何影响。

 

“测试的将来”的相关参考文章:

  • 在谷歌2011年的测试自动化会议上,谷歌工程和创新倡导者的主管(Director of Engineering and Innovation Agitator at Google)——Alberto Savoia负责开幕式主题演讲。他认为,咱们曾熟知的软件测试已死 - 或至少是垂死的。我与几位同事看了这个视频两遍,你们都以为这是很警醒的谈话,让咱们更严肃地深思测试和事业。我强烈推荐每一个测试相关的人去看看这个视频。主题中提到,初创公司对“咱们正在作正确的事情吗?”比“咱们正在正确地作事吗?”更感兴趣。也就是说,这里的质量真的不是个人软件或者服务是否有缺陷,而是个人想法是否是吸引顾客的最佳想法。这对咱们的软件测试员有必定的影响,由于咱们太专一于
    “咱们正在正确地作事吗?”,并可能致使咱们很难在初创公司找到工做。
  • “众包”是最近很是热门的话题。你能想象一家拥有数以十万计的软件测试员的公司吗,它能够帮助其余公司在极短的时间内完成测试。这些兼职软件测试员的薪水和他们找到的缺陷挂钩。他们在不一样的地方用不一样的语言在不一样的设备上运行测试。不一样于咱们的内部测试,他们像真正的客户般的运行测试。 uTes​​t.com就是这么一个公司,该公司在这个领域至关抢眼,它将会对测试服务和测试移动应用的方式上有着极大影响。在内部,咱们有几个团队,包括Bing,Lync,都在积极利用众包来测试他们的功能。对咱们的测试员意味着是什么?还是未知数。
  • James Whittaker , Jason Arbon和Jeff Carollo编写的“ 谷歌怎样进行软件测试 ”,很详细地回答封面的上问题。能在迷雾下看到像谷歌这么一个大型技术公司如何处理软件测试的复杂性,是很具知识性和趣味性。一个有趣的现象是,在此书的出版以前,三位做者都离开谷歌,一位回到微软担任开发主管,和另外两个则加入了uTest.com。下面是 一次访谈 的片段:

InfoQ:在本书中,你提出了,“不要雇用太多的测试员”,而且在将来里测试工程师的做用在降低。你对此有何回应,公司认为须要更多的角色,以此划分开发人员和质量保证之间的界线?

为何你要这样的界线吗?谷歌已经证实编写代码和保证代码优秀的界线是模糊的,其结果就是代码被开发更快,而且潜在缺陷更少。雇用太多的测试员是为开发人员建立了一个依靠,对产品来讲这就是有害的。当人们过于纠结本身的角色,会使我懊恼。“我是一个测试员”是一种不健康的心态。“我是一名开发人员”一样也是不健康的心态。当人们中止过多关注本身的角色,开始专一于他们的产品,这才是奇迹发生之时。这时候,每一个人都专一于尽一切力量来打造他们能打造的最好的产品。

InfoQ:对当前那些考虑加入测试相关角色的测试分析师(test analysts)或新毕业生,你能提供最好的建议是什么?能够知足这个角色不断变化的技能。

对待测试如同开发通常。获取一个CS学位,并擅长CS。证书和行业培训只会教你简单的东西。学习难的东西,并掌握它。软件测试员只作简单的事情,在很长的时间里仍然会被视为二等公民。不想被这样对待吧?那就获取一等的技能。

  • Bing团队的融合工程(Combined Engineering)设想,对服务测试和软件测试员的职业生涯都是很是有趣的。在融合工程,软件开发工程师(SDE)们和软件测试开发工程师(SDET)们合并为一个“工程师”的角色,咱们为交付服务而优化,而不是为软件而优化。换句话说,许多测试成为开发者,真正的开发人员只写代码,而不是测试。我认为这多是服务团队的将来发展方向,今天的测试员能够更专一于监测,基础设施和工具,他们和开发人员是同样的。
  • 咱们的生产环境测试(Testing in Production)专家——Seth Eliot,认为TestOps是咱们的测试的将来发展道路之一。你能够到这个连接看看相关信息。我认为生产环境测试能真正改变咱们如何作测试以及测试员的职业的将来。这是TestOps访谈的一个小段:

我认为测试领域的一个重要的变化将是我已经谈到过围绕测试服务和生产环境测试。我把它称为TestOps。

测试员须要摆脱定式思惟观念,编写测试 - 运行测试 - 评估结果。咱们要使用大量数据(通常是指服务)做为产品的质量信号,而不是用平常运行的测试结果做为质量信号。这包括系统数据,如CPU,API请求,系统响应时间,以及(妥善匿名处理的)用户数据。此外,还包括在生产环境中持续运行时交易发出的数据。这些依然是测试用例,你能够获得持续的可用性和性能情况,而不是只得到天天的失败 / 经过的状态。这是一种技术,但它也一定会改变咱们的软件工程。角色的分类与归类(role and specialization versus generalization)的问题,答案是应知足每一个团队的具体须要。数据科学家作为工程团队的一部分,就是TestOps方法的一个使人兴奋的结果。

相关文章
相关标签/搜索