写点什么

创建多团队自动化测试解决方案

2018 年 9 月 27 日

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

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 序列化库,而对于已经存在的东西,使每个人都达成一致是如何困难。不过,在类似这样的情况下,争论什么技术更好是在浪费时间,有时候,最好是从一开始就在获得了每个人的支持后重新开始。

查看英文原文: Creating a Multi-Team Test Automation Solution

2018 年 9 月 27 日 16:30571
用户头像

发布了 1008 篇内容, 共 313.6 次阅读, 收获喜欢 282 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

医院陪护5天的四点感受

赵新龙

身心健康 医院

你真的懂"看板文化"么?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

Try-Catch包裹的代码异常后,竟然导致了产线事务回滚!

牧码哥

Java spring 事务

Linux学习-2020.05.11

Flychen

c++11新特性,所有知识点都在这了!

helloworld

c++

业务开发过程中的特殊逻辑

Janenesome

产品 碎碎念 开发

认识数据产品经理(二 数据产品经理的稀缺性)

马踏飞机747

大数据 互联网 数据分析 产品经理

目光聚集之处,金钱必将追随

Tom

学习 个人成长 思考 读书

Git clone过慢问题

JDoe

git

ITerm2 + Oh my ZSH + Powerlevel10k

JDoe

配置

Java 为什么需要包装类

Rayjun

Java

带你吃透原型设计

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

如何让团队产生“多米诺骨牌”效应?

Yanel 说敏捷产品

项目管理 敏捷 敏捷开发 敏捷精髓

Redis学习笔记(有序集合)

编程随想曲

redis

你真的理解线程么?

Simon郎

Java 后端 多线程

危机过后,「表格文档协同」需要具备什么能力?

Geek_Willie

前端开发 开发者工具 Excel

用Go替代Python在生产环境中进行数据分析

良少

go 人工智能 大数据 数据分析 pandas

良好的工作习惯——及时存档、备份

Sicolas Flamel

工作效率

也谈程序员的核心竞争力

我心依然

学习 程序员 竞争力 独立思考 清晰表达

火箭架构思维模型六元组 - 势 道 法 术 器 界

常平

架构 分布式 架构模式

你体验过 “心流时刻” 吗?

Janenesome

读书笔记 高效工作 碎碎念

回"疫"录(12):一“罩”难求

小天同学

疫情 回忆录 现实纪录 纪实

功不唐捐

Janenesome

读书笔记 思考 坚持

程序员容易忽略的问题

Janenesome

读书笔记 程序员 编程习惯

游戏夜读 | 如何制作互动剧?

game1night

错过了初恋,别错过WebFlux

稻草鸟人

stream Spring5 WebFlux Reactive

你的团队属于部落的哪个阶段?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

追光逐影:读《我们这一代》

北风

如何高效阅读

ElvinYang

内存对齐

helloworld

c c++ C#

RAII妙用之计算函数耗时

helloworld

c++ C#

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

创建多团队自动化测试解决方案-InfoQ