测试工程师:敢问路在何方?(7)

发表于:2013-07-18来源:Csdn作者:Qingsong Yao点击数: 标签:测试工程师
了解产品,可以帮助团队成员讲同一种语言,更顺畅地交流。假设有一天,你想加入另一家公司做云计算,当你和你的面试官谈论时,他们可能会问你很多

  了解产品,可以帮助团队成员讲同一种语言,更顺畅地交流。假设有一天,你想加入另一家公司做云计算,当你和你的面试官谈论时,他们可能会问你很多关于云计算的问题。如果我们只知道在服务中如何测试单个组件,你会发现你是缺乏知识 / 思考的,这将影响你未来的职业生涯。然而,如果你知道并思考过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)考虑培养一个技术主管,而不是培养一个人事管理主管。我们倾向于培养非常优秀的技术人员成为主管,让他管理更多的人。然而,今天我们的主管,在人事管理和其他的东西上花了太多的时间,他们只是没有时间思考,没有时间去提高他们的技术方面技能。所以,请考虑把我们的主管视为技术主管,这样一来,管理多少并不重要,重要的是能影响帮助到团队的人。

原文转自:blogs.msdn.com/b/qingsongyao/archive/2012/12/14/tester-s-career-series.aspx