还有谁需要硒?有人在2020年使用BDD吗?Selenium上的机器学习

每当我遇到有关如何使用BDD方法及其如何改善开发,测试和管理寿命的新文章时,我都会大吃一惊。 (现在我不知道该怎么办。我没有抓住我的脸,只是伤心)。但是,编写测试的任务可能会引起相同的感觉。我想和那些面对Selenium测试并正在开发各种工具以方便与他们进行测试的人谈论它。

图片

我们(Heisenbug会议程序委员会的Vsevolod Brekelov和Daria Manukhina)与Akita图书馆和新Healenium工具的开发者Anna Chernyshova 她对BDD的讨论)以及Selenoid开发者Ivan Krutov进行了交谈。Ivan从事硒测试的基础架构已经有几年了(他的硕士班之一)。讨论过:

  • 2020年采用BDD方法;
  • 硒及其发展;
  • 事业;
  • 机器学习和硒。


访谈包括两个部分:第二部分,我们讨论了硒测试的基础架构,测试人员的工具,并回答了本文结尾处提出的问题。


关于对话者的很多信件


-Anya,Vanya,请介绍一下您自己。让我们从Ani开始:简单地告诉我们您的主要工作。


Anya:我现在有两个主要活动:第一个-我在EPAM的EPAM测试能力中心工作。在启动项目,选择技术时会征询这类人的帮助。我对项目进行了大量的审计测试。我了解什么是错,什么是好,什么是坏的,我建议进行改进,并制定PoC。基本上,这种咨询在公司内部进行。第二个方向是加速器,我们的新Healenium,我们最近已经对其进行了补偿,这是可以在运行时修复损坏的定位器并保持测试最新状态的东西。

-太好了! Vanya,你呢?我知道您是Selenoid开发人员。


瓦尼亚:我是专业开发人员。 Java,Go基本上都是这类语言。尽管它始于一百年前。我还用最简单的东西写过PHP。在学校里,他和其他所有人一样,写着各种帕斯卡。结果,在过去的六年中,我一直在做现在称为流行词DevOps的事情,这在交界处就是这样。根据俄语的职位,例如可以称为软件工程师,它既是开发人员又是维护基础结构的人员。例如,我负责具有足够数量的浏览器的大型Selenium群集的性能,它具有容错性,分布式等等。这是第一部分。第二部分-我做各种各样的开源项目,而不仅仅是项目。我们写硒油开源中的每个人都臭名昭著。我们也有商业工具。例如,Selenium for Kubernetes是一个单独的产品,我们为Selenium提供云解决方案等等。还有一条产品线,我们正在专业开发硒工具:打开和关闭是不同的。这样的活动。当然,我会参加会议,演讲,教育人们,如何根据我的经验有效地构建Selenium。

-你说了关于硒油的事。我知道Selenoid是Aerokube组织的一个项目。你能告诉我这是怎么回事吗?这是社区还是组织?商业组织或它是怎么出现的?

瓦尼亚:都是。实际上,最初只是一个社区,他们在GitHub上成立了一个组织,以便为Selenium创建开源,有效的工具。这是他在业余时间进行的主要工作。事实证明,这是第一个Selenoid工具,最后我们意识到,要能够正确地确保有效地开发这个Selenoid工具,您需要以下两项。

所有好的开源产品都朝着两个方向之一发展。第一种是在某个大型公司中制造的,这些公司只是赞助它们,然后将薪水支付给开发人员,第二种选择是在有免费的开源解决方案时,并且有一些付费产品(相似或不同)可以通过开发获利。结果,当Selenoid与我们同行时,我们只是做出了决定,并以公司的形式进行了设计。现在它已经是一个拥有开源并拥有自己产品的商业组织。

-原来你在里面工作吗?

Vanya:是的。

很好Anya,您编写了Akita图书馆,该图书馆是由Alfa Bank开发的。您还在某个地方积极使用它吗?还是她留在Alpha就是这样?

安雅:它是作为Alfa Bank的一部分而开发的。首先,她是为了他们的需要。然后我们将其打开,因为它似乎对其他人可能有用。据我所知,银行现在正在使用它,当然,也许还有十几个第三方组织。但是我现在不和她一起工作。

-您提升了BDD您现在在某个地方推广它,还是这不是您正在积极研究的主题?

安雅:这也取决于情况。如果客户来告诉我我想知道发生了什么,那么可以,他们很擅长这种方法。如果功能团队执行此操作,或者测试是作为服务单独进行的,那么在这些情况下,我不会进行推广。我已经有一段时间没有使用BDD了,现在主要是自我修复自动化。

在2020年使用BDD。这是个玩笑?


-2020年的BDD可以吗?

安雅:我认为可以,但是要视情况而定。现在,我们正在同一家Alfa银行中使用BDD测试自我修复,一切都很好。输入可以更新的内容,正是这种BDD方法变得更加稳定,然后效果良好。

Vanya:实际上,BDD-最初是针对经理的。这样,即使在测试的开发方面没有很深的能力的人,也可以很容易地阅读产品的测试方法和理解方法。在我看来,只要整个开发的组织方式能够使具有不同能力的执行经理和开发人员在一起,我认为BDD是有意义的,为什么不呢?

安雅:例如,在某些情况下,银行是如何做到的,团队根本就没有测试员,有必要以某种方式对其进行测试,分析家说:“我们要!”。对于他们来说,只是开发了这个工具。他们几乎是BDD的理想公式,分析人员也参与了脚本的编写,并且通过这些步骤的高层描述来指导他们进行编译测试是很方便的,并且它们可以自动运行。



-这个大喜剧还在继续,谁应该为BDD编写测试?例如,有些组织还没有BDD,并且不清楚是否需要BDD,以及谁应该编写这些测试。在理想的世界中,您会推荐什么?

Vanya:我认为这很大程度上取决于一切。

安雅:是的,这在很大程度上取决于情况。如果这是功能团队,那里有这些角色的所有代表和一些具有良好硬技能的测试人员,并且有很多这样的团队,这就是组织的建立方式,因此他们几乎不需要BDD。例如,如果这是一个没有测试人员的团队,或者测试人员的硬技能薄弱,例如,这主要是手动测试,那么这种方法也将适用,因为测试人员也将能够立即进行自动化。

-也就是说,如果您有很多钱,并且雇用了很多技术上无能的人,那么BDD是否适合您?

安雅:原则上可以这样说。

Vanya:总的来说,在我看来,不仅BDD,而且在计划过程中进行的任何测试都应以金钱为基础。
我们碰巧发生了这样的情况,大多数会议还是朝着技术或哲学的方向发展。在任何情况下,通常都不会说我们在预算有限且资金有限的公司工作。管理层做出的所有决定最终都取决于这笔钱。没有任何地方。只是程序员,测试人员和分析人员,我们才在这样一个“有限的”世界中酝酿,在这个世界中,我们没有被告知他们,他们只能说“我们做”或“不做”。在我看来,测试,开发计划以及其他所有内容-您始终需要以现有预算为基础,仅此而已。一样,一切都在那里。

BDD是外包还是托管?


-如果我们谈论BDD是用于外包项目还是用于内部项目,是否有区别?如果预算允许,您是否需要BDD进行外包?

安雅:再次,是的,一切都取决于预算。我不知道,我可能不会亲自将BDD交给外包,但如果客户当然不愿意的话。如果他说:“我想要BDD,就是这样,我不在乎!” - 好的。但是,这将需要熟练的人员,以便他们将它们完美地包装在一个漂亮的框架中。通常,客户会外包,他们说:“我很快想要某种自动化,”或“我没有自动化,构建”或“我都不好,让我们以某种方式进行更新。”通常在这种情况下,他们的解决方案需要在技术层面上有更深的技术理解和自动化。
尽管如果它适合客户,并且您可以快速启动自动化,那也可能取决于时间。如果以此方式可以快速启动并实现客户想要的目标,那么可以,他可以躺下。

-外包的BDD似乎不仅是关于如何向他们编写项目,找出需求的方法,还在于教导客户大致了解那里的内容。因为对某些分析师甚至经理的培训,以了解他们应该如何制定方案(如果将来会发生),则是另一回事了。

安雅:是的,这可能有其自身的困难。

Vanya:回到BDD在2020年是否正常的问题上,在我看来似乎有一定的发展,我在哲学上如此离开...
随着时间的流逝,我们拥有各种各样的新方法和新技术,在我看来,技术完全消失并不是不可能的。例如,40年前,当计算机正在开发时,这些大型机器的大型机现在几乎已经消失了,但是,某些壁ni仍然存在,并且可以正常工作。

从现场照片www.kmd.dk

我刚刚跟一个人说话的时候,他以某种方式与银行连接,与一些老美的人,他说:“一切费用四十年前,一切正常,因为它更便宜的维护它而不是重写一个新的。” 我以同样的方式认为,在测试中,出现了新的方法,BDD出现了。我认为这根本不会消亡,即使它们提出了比这更好的东西,它也将保留在某些领域。因此,任何产品,任何技术。一方面,不可能百分百地完全占领整个市场,另一方面也要彻底消亡-您需要努力做到这一点,总会有一些利基。问题是他们在总人口中所占的份额是多少。

事业


— - , , , , , , .

:人们经常问一个问题:公司如何成长?初级开发人员,初级人员来了,自然而然地,他们的目标是如何成长。最后,在某个时候,您开始感觉到一种业务需求,那就是应该在那儿数钱。实际上,成长为更高级别的首席开发人员的方法是,即使从业务角度来看,即使处于这样低的位置,也要开始思考如何开始这样做。并不是从角度来看,我会尝试什么很酷的新语言或其他东西,对于我自己的个人检查来说是很酷的,但是从商业角度来看,如果您想成长,我认为您需要对此进行更多考虑。

- - — , .


有一次我听到一个聪明的人。他说,有多种发展职业的方式。他列举了三种主要方法。第一种方法是成为某人的亲戚。这通常是不够的,少数在那里有高级亲戚的人。第二种方法是进行操纵。公司中各种各样的阴谋诡计等等。很少有人知道该怎么做。第三种方法是通过工作向公司证明您的效用。增长的主要思想是在公司中找到有问题的利基市场。并向您的管理层建议如何有效解决这些问题,但是在这种情况下,您可以大大成长。

— , , . ? , , , : «, , , ! , , ».

:这完全取决于个人和团队。总的来说,如果一个人想要发展壮大,他仍然会在某个时候做到这一点。在某个时间点之前,经理将为他进行沟通(如果有),但是如果他最终想要发展,则必须这样做。首席开发人员与高级开发人员有何不同?他拥有非常好的专业知识,并且他知道如何解决这种已经是半管理的任务。他知道如何从制定要求到直接开发对自己制造的产品承担全部责任,这对我来说似乎是不同的。

安雅(Anya):是的,这里介绍了为什么要做某事,而不仅仅是做某事-太酷了。

还需要他吗?


— Selenium, . : « - Selenium? , , , Selenium?»

:现在经常说硒快要死了。其他一些工具代替了它。在我看来,这并不是完全正确的,而且完全取决于专业知识。无论如何,现在Selenium的大多数项目都是在此基础上完成的。您将需要支持,并且如果您想作为测试专家来某个地方,那么很可能是硒。这方面可能有更多的专业知识,另外,当一些新技术进入市场时,它可能会爆炸然后滑到某个地方。我想说,硒涵盖了jujine测试的所有可能性。这是如此强大,在不久的将来肯定不会死。

如果您想成为测试专家,那么很可能是硒。


Vanya:我也想补充。技术总是有一定的惯性。如您所知,硒自2004年以来一直存在,已经有15年的历史了。当然,它也可以自行更改,但是在此期间,已经积累了很多现成的项目。对于编程而言,与现在相比,十五年前是一个石器时代。正是在Selenium中获得了更多的经验。甚至只是开始采用一些新技术,如果您已经是一位经验丰富的自动化工程师,那将是困难的,那确实是惯性。
由于该产品存在已有很长的时间,因此它积累了广泛的知识基础,存在很多陷阱,即使这不仅是Selenium的问题,而且通常是任何新技术的问题-为了使其飞行,您需要获得一些关键的知识,用户等。

Selenium拥有大量的用户,论坛,社区,Stack Overflow,大量文档,大量会议和专家都可以不断地转移这些知识。一旦一项新技术出现,它只有在其中有很多钱的情况下才可以飞翔-一切都取决于钱。

有一个例子不是关于测试,而是关于开发。有一种编程语言Kotlin。事实证明,他现在朝着移动方向飞行,直飞,飞。他们说,有传言说,他的晋升只花了可观的钱,所以在会议上到处都提到他,以便人们开发框架。发生了很多事情。为了克服惯性,您需要花费一定的资源。即使制作出比硒更好的好产品,也很难推广。

为什么是硒?因为它现在是标准的。有一个特定的万维网联盟,它采用并修复了标准硒。最好使用标准化的工具。在两个工具之间进行选择,我们可以说:“这里的一切都固定,API稳定,一切都很好,但是有些公司也这样做,但其中还有一些晦涩的地方,尚不清楚它能持续多久。”通常,在这两个工具之间进行选择时,合理的经理通常会选择更标准的东西。在我看来,在Selenium上编写测试是有道理的,因为即使现在对于某些初学者也更容易做到。进入门槛将更低-比您对硒的要求更高。

为什么需要继续在Selenium上编写测试的第二个原因,为什么通常需要在UI上编写测试。实际上,在端到端的UI上编写测试是验证应用程序完全按照用户看到的方式工作的唯一方法。即使我们编写了各种各样的单元以及其他所有内容,涵盖了不同类型的测试,也不能保证百分之一百。只有在失去应用程序用户将要执行的相同操作之后,我们才能百分百确定应用程序正在与我们一起工作。显然,您不需要以这种方式完全传递百分之一百的代码。通常涵盖了应用程序中最关键的场景,但这仍然很重要。

最好使用标准化的工具。


安雅:我想添加更多有关新工具的信息。有一次我在会议上听到一个聪明的人。他谈到了新技术的发布,以及如何了解哪种技术将死,哪些技术将被推迟。在进入市场的任何技术中,它开始获得Vanya所说的关键数量。然后,她有了一个繁荣时期,这个繁荣时期就需要等待,因为在这个繁荣时期之后,这项技术要么保持不变,要么发展,然后飞跃,否则她将死去。它还取决于投资,开发团队是否能够应付访问他们的用户流,错误流或进一步开发的方向。所以,马上,抓住一些炒作,将您的测试转移到这项技术上,在我看来将是不合理的。

-您认为硒的变化有多大?在过去的两年中,此工具有什么重大变化吗?它是否正在以某种方式发展?

Vanya:我认为它变化很大。两三年前,感觉其中有些停滞不前,因为实际上Selenium于2004年发明,然后进行了开发,开发和开发,然后在2008-2009年他们提出了Selenium WebDriver,而他们提出了Selenium Grid。五年后,他们才完成它,并推出了一些小功能,总的来说,没什么大变化。每个人都有一个Selenium Grid,每个人都有一个标准的Selenium库。

但是在过去的2-3年中,基于硒的各种新产品都出现了繁荣。例如,我们制作了硒油。当时在Zalando的工作人员(基于Selenium Grid)开发了Zalenium这样的工具,它也是一种与Selenium兼容的解决方案。实际上,这两个工具都是为了解决任何特定问题而在原始代码中没有解决方案的。然后其他人出现了,硒本身的竞争对手。在我看来,现在,在过去的两三年中,某种动静已经消失了。

在我看来,Selenium正在开发中,而且在2018年初,他们确定了该标准。因此,硒一方面是一种成熟的工具。另一方面,最初开发核心代码的团队成功地将责任保持与标准的兼容性给其他浏览器开发人员团队。以前,几乎所有Selenium都是一个单元,所有组件,驱动程序都放在其中,但现在他们设法与所有团队达成共识。 Apple for Safari之所以支持,是因为它有一个标准,不需要与任何人进行协调。 Google支持Chrome,Mozilla支持Firefox。实际上,现在它已经是一个分布式生态系统,有几个不同点。现在,微软还为其浏览器制造了自己的产品,为Edge提供了自己的驱动程序,他们设法分配了责任。因此,在我看来,质量有了相当不错的飞跃。

-是的,三年前,我记得在Safari上进行过Selenium的测试,因此必须拧松螺丝。一般来说,它很疼。

Vanya:现在一切都按照标准完成了。当然,这里有一些特点,但从本质上讲,所有事物都变得统一了,也就是说,所有事物在内部的运作方式都如此统一。我认为这很酷,为此付出了很多努力。因此,我认为硒现在没有任何停滞。现在,存在着各种决策的良性竞争。

我们在某种程度上与编写主要Selenium代码的家伙竞争。我们来参加会议,是说你们这些人没有效果,因为,因此,因此。为了以某种方式证明他们也做得很好,他们必须做自己的事。有健康的竞争。

Anya:关于Selenium IDE,我也想补充一下,在我看来,一般来说,每个人都早已忘记了这一点。随着用于无脚本自动化的新工具的出现,他们再次采用了Selenium IDE。在2019年期间,它进行了很大的开发,并计划在2020年初进行大规模发布,他们将展示一些东西。可以说,IDE的界面已发生了很大变化,并且变得更加稳定和方便。

Vanya:我还想补充一点,现在他们开始尝试将不同的技术应用于Selenium,例如以前在相同的机器学习中尚未应用的技术。
这是硒中仍然不存在的领域之一。人们已经使用Selenium大约10年了,发现一些任务,事实证明,这些任务可以借助机器学习部分或完全解决。各种例行操作。

-Anya,告诉我您通过机器学习解决了哪些问题?他们会为我们写下一切吗?在我们国家,人工智能开始渗透到任何地方。如果您将“ AI和Selenium”带入Google,人们就会开始在那里开发自己的库,然后上传其他内容,也就是说,开发正在进行中。

安雅:关于硒,我可以说,最近,基于硒进行各种决策要方便得多,尤其是由于硒的标准化。关于功能,您最需要的是与页面上的元素进行交互。因此,测试人员已经掌握了如何使用Selenium描述这种相互作用的部分。如果仅使用Selenium描述它,则可能会有不稳定的测试,因为UI上将发生任何更改,某些元素将不等待,依此类推。机器学习已开始应用到这个地方,以便可以稳定这些测试。这样就可以根据我们在页面上拥有的信息以及用户行为来生成这些测试。

趋势是记录和播放,Selenium IDE的功能是什么:我们转到页面,单击操作,创建测试。这些测试必须稳定。为此,仅需要机器学习。通常,定位器是硬编码的,因此,如果更改UI,则需要更新它们。例如,我们当前正在执行的Healenium允许我们在运行时更新它们,并且我们的测试将相应通过。

现在,这种趋势不仅仅用于记录和播放测试,还存在生成测试的可能性。我们知道页面上有哪些元素。我们可以绘制站点的某种逻辑图。我们知道我们拥有主页,登录页面和其他内容。根据我们在此页面上可以执行的这些逻辑连接和操作,我们可以生成测试。但是我不知道市场上的这种工具做得很好。氦气我们想朝这个方向发展。

随着这些方法和机器学习领域知识的发展,在不久的将来,此类工具的开发和外观将出现偏差。例如,可以自动测试而不是编写测试用例的网站爬网程序。

— , Selenium IDE . , . IDE .
, , ?




我建议在评论中讨论这个问题。在本次采访的继续中,我们将找出安娜和伊凡的答案。顺便说一下,在在线举行的Heisenbug 2020 Piter会议上您可以与他们聊天,并更多地了解Healenium,Selenoid以及Kubernetes集群中Chrome DevTools协议的使用。 最近,发布了关于测试中有关机器学习问题的答案的采访第二部分他们找出了谁是标记物,并确定了是否应在2020年研究硒。



对于那些想扩大视野并参加多个会议(但要立即参加8个会议)的人,我们已经准备了一些东西

All Articles