可靠的自动测试框架可以提升发布时的信心。跨团队结对使用这种框架使团队可以从一开始就以品质为优先。它还把团队团结在一起,提高自动化测试中测试人员的技能水平。

Gwen Diagram是Leeds Testing Atelier的测试人员,同时也是其协办人。在Agile Summit Greece 2018大会上,她分享了自己在一家大型企业创建多团队自动化测试解决方案的经验。InfoQ正以概述、文章和Q&A的形式对大会进行追踪报道。

Diagram谈了Leeds的新团队如何从多个彼此分离的伦敦团队那里继承了大量的应用程序,情况对他们非常不利。Diagram表示,为了构建一个每个人都愿意使用的测试框架,需要人们支持这种想法,而不是强制人们接受。他们决定借鉴戴尔·卡耐基在《人性的弱点》中介绍的经验,在新创建的团队内建立亲密的关系。

他们需要一个自动化框架,给他们发布的信心。Diagram说,我们学习了许多有关产品的内容,而测试没有提供多大的帮助,有些总是失败。大部分产品都缺少大块的自动化层,对于需要在

团队之间活动的测试人员,他们需要一个每个人都可以使用的可靠框架。

借助跨团队结对,他们从开始创建产品时就以品质为优先,把团队团结在一起。据Diagram介绍,该框架还大幅提升了团队测试人员的技能水平,团队现在已经可以使用Java编写非常出色的测试。

InfoQ在演讲结束后对她进行了采访。

InfoQ:对于自动化测试,有什么问题需要解决?

Gwen Diagram:在用的测试框架有许多种。尤其是,有个产品没有单元测试,只有大量的功能测试。如果功能测试没有清晰定义,那么应用程序的测试就变得非常混乱。这些功能测试涵盖了单元测试到端到端测试,使用的语言也是许多开发团队不喜欢的(正如我们需要着手处理的应用程序)。

InfoQ:实现自动化解决方案需要什么?

Diagram:结对!结成很多对。由于产品是基于JVM的,我们通过投票决定,使用Java构建框架——然而,在测试人员中,仅有一名测试人员对Java有些了解。我是C#背景的,我开始编写框架……使用C#风格。大写的位置不对,括号的位置也不对——虽然构建出来了,但你应该会看到我们的开发人员的悲伤眼神。

作为测试人员,我们可以使用任何语言编码。不过,可以使用任何语言优美地编码吗?也许不能。是开发人员使测试框架真正地发挥作用。

InfoQ:您是如何向团队成员展示这个解决方案的,您是如何使高层管理人员参与进来的?

Diagram:解决方案展示是一个非常有趣的故事——我实际上失败了!测试人员使用他们选择的语言和测试执行器编写了概念验证,因此,混合了java、python、cucumber和gauge。遗憾的是,我没有提前考虑展示部分,当我们让测试人员展示时,有些人比其他人舒服很多。我从中学到了许多——对于已经选好框架的人们而言,这不是一场公平的竞赛。

使高层管理人员参与进来需要找出管理层想要什么,并以此为目标。我们很幸运,高层管理人员告知了他们的原则,因此,我们可以确保我们的愿景与之匹配。

InfoQ:测试自动化带来了什么好处?

Diagram:该框架给了我们发布的信心。最初几次,我们认识到,该框架真正给我们带来好处是在测试失败时——我们最初认为,一定是我们的测试框架有问题。经过大量的调试后,我们发现,是应用程序代码的问题。虽然如此,我们还是花了不短的时间才信任测试框架。

我们还会引入没有自动化技能的测试人员,在自动化测试中训练他们,没有一个可靠的框架,这是无法完成的。

InfoQ:您在实现过程中学到了什么?

Diagram:不要自己做技术选择。我自己选择了部分库,随着框架扩展到不同的应用程序,

其他人选择了不同的库。这样,最终很难保持一致。我那时还不理解,相关人员怎么选择了不同的json序列化库,而对于已经存在的东西,使每个人都达成一致是如何困难。不过,在类似这样的情况下,争论什么技术更好是在浪费时间,有时候,最好是从一开始就在获得了每个人的支持后重新开始。

Comments are closed.