自动化将取代人工测试吗?

哈Ha!

我决定就测试自动化是否会取代测试人员发表自己的看法。 首先,因为我经常听到初级质量检查人员的类似观点,他们只是开始测试的第一步,已经担心他没有做某事。

公平地说,年龄较大的儿童也有类似的看法。 人们常常认为,自动化几乎是开发手动测试仪的唯一方法。 关于所有这些以及更多的削减。




在开始之前需要一点澄清。 下面所有的讨论都将关于功能自动测试。 这些是UI测试,在这种情况下,请勿将它们与单元测试相混淆。 后者一直是由开发人员编写的,应该由开发人员编写,如果不是这样,则是完全不同的讨论的主题。

简要介绍自动化的历史


我从事测试工作已经有一段时间了,并且已经看到了测试自动化开发的几个阶段。 随着她的发展,她对她的态度也发生了变化。 让我们看看情况如何,并尝试理解-这是怎么回事?

早在2010年,当我刚刚迈出IT领域的第一步时,并不是每个人都知道Selenium这样的工具。 当时,它的第一个版本正在使用中,称为Selenium Remote Control。

我记得我们是如何自动化第一个Selenium项目的。 该工具非常简单,可以单击不可见的元素,有时会误以为它找不到定位器,甚至在接收到一些棘手元素的文本时也是如此。

我仍然记得我们的老板称他们为“戳”。 看到我们坐在那里并编写这些测试后,他这么说:再次,写下您的戳记? 就像,我很早以前就不会检查并用手释放它。

但是随着时间的流逝,硒得到发展,他有了新的机会。 最初有第二个版本,现在是第三个版本。 出现了一个标准(浏览器制造商开始自己编写驱动程序),Selenium获得了一些协议,赢得了市场上的竞争对手,现在几乎所有从事IT工作的人都知道这一点,无论它是否属于QA。

目前,有许多用于测试Web和移动应用程序自动化的解决方案。

现在这不再只是戳,现在从HR到QA职位的平均对话如下所示(当然是夸大了):

-下午好。 根据您的简历,目前尚不清楚,您可以编写自动测试吗?

“不,但我擅长...”

-*已经挂断*

而且,如果这是领导职位,那么您会听说他们希望首先设置自动化,然后才雇用QA工程师。 还是不雇用。 如果不这样做怎么办? 好吧,这是一些节省。 即使编写了所有测试,您也会被解雇。 而开发人员,当他们做完所有事情时...只需在网站上一个按钮“在这里付款”,然后下车进入日落……我出了点问题。

当然,随着这样的趋势,出现了一个问题:手动测试会取代自动化吗? 什么时候会发生?

通过开发人员的眼睛进行自动测试


要回答这个问题,首先值得思考-谁编写自动测试? 我看到了由开发人员自己编写自动测试的公司。 我看到了由质量检查工程师进行自动测试的公司。 您认为根本的区别是什么?

我想假设区别在于代码。 就像,因为他们是开发人员,所以他们写的代码更好。 因此-他们的测试更好。 但这并非完全正确。

代码的质量无疑是一个重要的参数,但是对于开发人员而言,测试并不是主要的职业。 因此,他们不能花很多时间。 测试是匆忙编写的,并且代码经常有很多不足之处。 我再说一遍,这是正常现象,这不是他们应该花费大量工作时间的事情。

在自动测试中,特别好的代码并不是最重要的。 更重要的是这些自动测试涵盖哪些情况。 此处,质量检查专家的想法已经与开发人员对产品的看法大不相同。

考虑一个例子。 有必要使用自动测试覆盖该站点上的注册。 显然,我们首先将涵盖一个积极的案例。 我们参加了比赛,获得了五个或六个输入字段的分数,并执行了一些其他步骤,例如通过邮件或SMS进行确认-测试已经准备就绪,您太棒了!

我认为90%放弃编写自动测试职责的开发人员将在那里停止。 他们不会描述部分案例,因为他们认为这些案例与已经涵盖的案例本质上没有什么不同。 有些根本不会被考虑在内。 无论如何,“我自己编写了生产代码,那里的一切都是永远可靠的。”

等价类,边界值,否定情况-所有这些都保持观望。

质量检查工程师方法


质量检查工程师采用了不同的方法。 他具有丰富的经验,对测试设计原理的理解,足够的时间,最重要的是查找错误并验证这是他的直接责任。 另外,大多数情况下,这样的人只是对检查某件事感兴趣。 如果您不小心戳这里怎么办? 如果您在此处错误输入数据?

这是将质量检查工程师与开发人员区分开的方法。 它不是由自动测试的能力形成的,而是由一种思考的方式形成的。 不良的测试人员会编写不良的测试。 在这种情况下,一个好的测试人员会发现手动验证的问题要多于一个坏的测试人员,因为他们的测试方案不正确。

我想从中得出什么结论? 一切都非常简单。 质量检查专家主要是对测试原理和一个人的测试经验的理解。 而不是他使用的工具。

当然,仅仅做一个好的测试员是不够的。 没有bash,Git,SQL等基本工具的知识,就不可能在任何公司中有效地工作。 必须对其进行研究。

自动化是同一个工具;仅凭它本身就没有好坏。 仅仅因为选择了它,并不能使您的工作更有效。 他仍然需要某些技能。

那么,手动验证又如何呢?


手动验证不会在任何地方进行。 一种或另一种方式,当我们看到一个新功能或整个产品摆在我们面前时,我们将动手研究它。 我们仍然需要弄清楚它是如何工作的,要优先考虑的情况以及通常情况下它们是否现在起作用。 如果产品损坏,急于写测试的目的是什么?

每次引入新功能或更改时,情况总是如此。 首先,将有一个手动验证步骤。 只有这样-覆盖或更新围绕它的测试。

如果由一名专家执行人工测试或编写自动测试或分担责任会更好吗? 我不知道,这已经取决于您公司中流程的构建方式。 在某个地方它将是有效的,因此是有益的。 在某处-不。

因此,对于是否值得研究测试自动化的问题,我绝对是的。 质量检查工程师必须熟悉自动化。 通常,具有这种技能的专家会获得更多的简历和薪水,因此在市场上他们的价值更高。 但是自动化将取代人工验证和人工测试吗? 当然不是

总结


这就是这篇文章的来源。 我分享了我对该问题的看法和看法。 我很高兴知道您的情况,一定要分享评论!

Yandex的一位同事还为那些想让自己沉浸在移动测试自动化中的人们开发了在线课程。 信息和链接可以在我的个人资料页面上找到。 :)

感谢您的关注!

Source: https://habr.com/ru/post/zh-CN465179/


All Articles