Как лучше начать изучать автоматизацию?

Краткое содержание статьи(перевод):  https://clck.ru/32C2y5

Автор: Bas Dijkstra


Ниже будет представлено краткое содержание статьи, отвечающее на вопрос как лучше начать изучать автоматизацию?


В основном, почему-то, большинство начинает изучать UI-автоматизацию.


В какой-то степени понятно, что люди начинают свой путь по автоматизации именно с этого. 


Причины по которым начинают именно с автоматизации  UI:


1. Это то, что люди знают. Как тестировщики, мы привыкли взаимодействовать с приложением через графический интерфейс пользователя. Поэтому вполне логично начинать наши усилия по автоматизации именно с этого, не так ли?


2. Команды часто начинают свои усилия по автоматизации с «автоматизации регрессионных тестов». Поскольку они обычно пишутся с точки зрения конечного пользователя, они часто ссылаются на UI.


3. Поскольку, к сожалению, большая часть автоматизации все еще часто пишется (намного) позже кода приложения, не всегда много внимания уделяется тестируемости. В результате пользовательский интерфейс часто является единственным интерфейсом, доступным для автоматизации.


Однако автоматизация графического интерфейса является сложной задачей. На самом деле, это, безусловно, самая сложная форма автоматизации.

Основная причина этого, и ее, по мнению автора, не так часто обсуждают, заключается в том, что графический пользовательский интерфейс является единственным интерфейсом в приложении, который явно написан для использования людьми.


Все другие интерфейсы в приложении (будь то база данных, API или сам код) используются компьютерными процессами или взаимодействуют с ними (клиент базы данных, клиент API, другой код и т. д.). Сам факт того, что эти интерфейсы предназначены для использования машинами, упрощает их автоматизацию.


Например, автор статьи поклонник тестирования пользовательского интерфейса с помощью модульных тестов.

Такие фреймворки, как React, позволяют, например, тестировать логику и компоненты пользовательского интерфейса изолированно от остального кода. 


В качестве альтернативы можно рассмотреть API тесты.

Однако для этого требуется определенный уровень тестируемости, а также некоторые знания и опыт работы с моками в качестве инженера по автоматизации, а эти вещи не рассматриваются ни в большинстве курсов по автоматизации пользовательского интерфейса, ни в большинстве учебных пособий по автоматизации.


Это снова приводит к тому, что многие относительно неопытные инженеры по автоматизации отчаянно пытаются автоматизировать все самым трудным из возможных способов: путем написания тестов с полным стеком через графический пользовательский интерфейс приложения. 


Автор статьи выступает за более целостный способ обучения автоматизации. Автоматизация пользовательского интерфейса может (должна быть) частью этого, но она определенно не должна быть отправной точкой и даже не должна быть очень большой частью пути обучения автоматизации.