认为对敏捷测试员来说,什么样的自动化技能是重要的?

  我的经验而言,对于想要在自动化测试中成功的敏捷测试员,重要的技能是合作与沟通两项技能。如果你正工作在这样一个软件开发组织,那里有程序员精心编写的产品代码,那么这些程序员是编写自动化测试代码的佳人选。测试人员知道什么是正确的测试事情。对于一个测试员与程序员的组合,他们可以共同决定哪一个测试应该自动测试或怎样自动测试。但至少应该在编码之前启动这个过程,这样程序员在设计代码时可以使其更容易做自动化测试。

  有很多可以帮助提升敏捷测试员与程序员合作的测试框架。例如,我的团队在GUI后面的API层面,利用FitNess作了多次测试。对于每一次测试,在这个阶段都可以测试出这样的事情??敏捷测试员与程序员一起合作完成某件事情,并探讨出测试的设计并能做出第一次的简单测试。程序员编写夹具,用来进行测试输入,并把夹具传送给产品代码,做出相应的操作,然后返还结果与预想结果做比较。测试人员会写出多样的测试用例,用例中包含不同的输入与预想的输出。同样,我们用Selenium 2.0和Webdriver跟踪了一个类似的GUI自动化测试。在Geb框架中使用Groovy语言,程序员给不同的GUI页面编辑不同的页面对象,这样测试人员通过页面对象可以编写出多样的用例。这样的合作有助于确定设计的测试代码是否合适,这也能做到长期的维护,并提供了一个良好的投资回报。

  当与其它人谈话时,我团队的程序员都感到无比的舒服,这些人有的“讲他们的语言”,有的有某种技术知识,有的用了相同或相似的集成开发环境(IDE)或者基本掌握了面向对象的概念。如果你是一个没有很多编程经验的测试员,那么赶快熟悉一下基本概念。《Everyday Scripting with Ruby: For Teams, Testers and You》(作者:Brian Marick, 2006)一书提供了很多案例,即使你的团队不使用Ruby, 你也可以完全熟悉面向对象概念和编程术语。对于一些介绍面向对象的设计知识,请记住戴夫?托马斯和安迪?亨特说过的话“Keep it Dry, Shy, and Tell the Other Guy“。请求程序员帮你安装她使用的IDE,让帮她你建立一个可以检查你团队产出和测试代码的项目。

  如果你还没任何途径可以成为程序员的话,或许你可以去外包公司工作,上面一段所介绍的资源可以提升你自己设计自动化检测的能力。如果你不能与程序员组合,可以与你团队中其它的敏捷测试员组合来学习合作。