0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Ещё не так давно у процесса обеспечения качества ПО были два отдельных направления тестирования:<strong>ручное и автоматическое</strong>. Основной задачей инженеров по ручному тестированию было проведение регрессионного тестирования и тестирования новой функциональности, в то время как инженеры по автоматизированному тестированию были сосредоточены исключительно на написании кода.</p>
1
<p>Ещё не так давно у процесса обеспечения качества ПО были два отдельных направления тестирования:<strong>ручное и автоматическое</strong>. Основной задачей инженеров по ручному тестированию было проведение регрессионного тестирования и тестирования новой функциональности, в то время как инженеры по автоматизированному тестированию были сосредоточены исключительно на написании кода.</p>
2
<p><strong>Связь между этими двумя мирами была редкостью</strong>за исключением тех случаев, когда инженеры по автоматизации хотели изучить дополнительные тестовые примеры для автоматизации.</p>
2
<p><strong>Связь между этими двумя мирами была редкостью</strong>за исключением тех случаев, когда инженеры по автоматизации хотели изучить дополнительные тестовые примеры для автоматизации.</p>
3
<p>Сегодня всё иначе. Однако нельзя сказать, что какое-нибудь направление исчезло, так как и ручное, и автоматизированное тестирование не утратили своей важности и актуальности. Но реальность заключается в том, что разрыв между этими направлениями становится всё меньше. И очень часто компании требуют, чтобы их сотрудники имели опыт как ручного, так и автоматического тестирования.</p>
3
<p>Сегодня всё иначе. Однако нельзя сказать, что какое-нибудь направление исчезло, так как и ручное, и автоматизированное тестирование не утратили своей важности и актуальности. Но реальность заключается в том, что разрыв между этими направлениями становится всё меньше. И очень часто компании требуют, чтобы их сотрудники имели опыт как ручного, так и автоматического тестирования.</p>
4
<p>Но как стать инженером по автоматизации, если у вас нет необходимых навыков? К счастью, эту проблему не так уж сложно решить, но это потребует определённых действий с вашей стороны.</p>
4
<p>Но как стать инженером по автоматизации, если у вас нет необходимых навыков? К счастью, эту проблему не так уж сложно решить, но это потребует определённых действий с вашей стороны.</p>
5
<p>Итак, чтобы стать успешным инженером по автоматизированному тестированию, необходимо знать 3 компонента, о которых мы сейчас и поговорим. Разумеется, это не всё, но это основа или, если хотите, фундамент, без которого сегодня никак.</p>
5
<p>Итак, чтобы стать успешным инженером по автоматизированному тестированию, необходимо знать 3 компонента, о которых мы сейчас и поговорим. Разумеется, это не всё, но это основа или, если хотите, фундамент, без которого сегодня никак.</p>
6
<h2>1. Язык программирования</h2>
6
<h2>1. Язык программирования</h2>
7
<p>Чтобы стать инженером по автоматизации тестирования, вы просто обязаны знать какой-нибудь язык программирования. Как правило, в большинстве случаев достаточно владеть одним из распространённых языков, например, Java или Python.</p>
7
<p>Чтобы стать инженером по автоматизации тестирования, вы просто обязаны знать какой-нибудь язык программирования. Как правило, в большинстве случаев достаточно владеть одним из распространённых языков, например, Java или Python.</p>
8
<p>Поймите всё правильно: вам не обязательно быть разработчиком с многолетним опытом, но вы должны иметь достаточно знаний для написания сценариев автоматизации. То есть вы должны знать основы используемого вами языка ООП.</p>
8
<p>Поймите всё правильно: вам не обязательно быть разработчиком с многолетним опытом, но вы должны иметь достаточно знаний для написания сценариев автоматизации. То есть вы должны знать основы используемого вами языка ООП.</p>
9
<p>Если речь идёт о<strong>Java</strong>, то это: - классы, объекты и методы; - наследование; - строки, целые числа; - концепция интерфейса, умение его использовать; - полиморфизм; - массивы (одномерные и многомерные); - переопределение и перегрузка (override и overload); - модификаторы доступа; - конструкторы.</p>
9
<p>Если речь идёт о<strong>Java</strong>, то это: - классы, объекты и методы; - наследование; - строки, целые числа; - концепция интерфейса, умение его использовать; - полиморфизм; - массивы (одномерные и многомерные); - переопределение и перегрузка (override и overload); - модификаторы доступа; - конструкторы.</p>
10
<p>Этих концепций будет достаточно, чтобы начать писать код автоматизации.</p>
10
<p>Этих концепций будет достаточно, чтобы начать писать код автоматизации.</p>
11
<h2>2. Фреймворки модульного тестирования</h2>
11
<h2>2. Фреймворки модульного тестирования</h2>
12
<p>Следующее, что вам нужно знать, - это фреймворки модульного или юнит-тестирования. Прежде, чем мы продолжим,<a>давайте спросим Википедию</a>, что такое юнит-тестирование:</p>
12
<p>Следующее, что вам нужно знать, - это фреймворки модульного или юнит-тестирования. Прежде, чем мы продолжим,<a>давайте спросим Википедию</a>, что такое юнит-тестирование:</p>
13
<p><em>Модульное тестирование (англ. unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы, наборы из одного или более программных модулей вместе с соответствующими управляющими данными, процедурами использования и обработки.</em></p>
13
<p><em>Модульное тестирование (англ. unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы, наборы из одного или более программных модулей вместе с соответствующими управляющими данными, процедурами использования и обработки.</em></p>
14
<p>Цель юнит-тестов состоит в том, чтобы убедиться, что определенные (отдельные) блоки кода работают правильно, а полученные значения соответствуют ожидаемым результатам. Я бы порекомендовал начать с этих платформ модульного тестирования:<strong>TestNG и JUnit</strong>. Обе эти платформы очень похожи, но TestNG является более мощной с точки зрения современных возможностей.</p>
14
<p>Цель юнит-тестов состоит в том, чтобы убедиться, что определенные (отдельные) блоки кода работают правильно, а полученные значения соответствуют ожидаемым результатам. Я бы порекомендовал начать с этих платформ модульного тестирования:<strong>TestNG и JUnit</strong>. Обе эти платформы очень похожи, но TestNG является более мощной с точки зрения современных возможностей.</p>
15
<p>Почему мы должны проводить модульное тестирование, а не фокусироваться исключительно на тестировании пользовательского интерфейса? Для этого есть две основные причины: 1.<em>Юнит-тестирование позволяет находить ошибки раньше.</em>2.<em>Юнит-тестирование снижает общие расходы на тестирование.</em></p>
15
<p>Почему мы должны проводить модульное тестирование, а не фокусироваться исключительно на тестировании пользовательского интерфейса? Для этого есть две основные причины: 1.<em>Юнит-тестирование позволяет находить ошибки раньше.</em>2.<em>Юнит-тестирование снижает общие расходы на тестирование.</em></p>
16
<p>Есть и другие причины, но суть заключается в том, что для тестирования пользовательского интерфейса требуется проверка работы отдельных блоков кода. Таким образом вы узнаете, что ваше приложение функционирует правильно еще до появления пользовательского интерфейса, как такового.</p>
16
<p>Есть и другие причины, но суть заключается в том, что для тестирования пользовательского интерфейса требуется проверка работы отдельных блоков кода. Таким образом вы узнаете, что ваше приложение функционирует правильно еще до появления пользовательского интерфейса, как такового.</p>
17
<p><strong>Что ещё нужно будет освоить</strong>: - инструменты управления сборкой (например, Maven/Gradle), - тестовые аннотации, - управление тестами (с использованием XML-файлов) и группами, - параметризацию, - вспомогательные методы и утилиты, - Listeners, - генерацию отчетов.</p>
17
<p><strong>Что ещё нужно будет освоить</strong>: - инструменты управления сборкой (например, Maven/Gradle), - тестовые аннотации, - управление тестами (с использованием XML-файлов) и группами, - параметризацию, - вспомогательные методы и утилиты, - Listeners, - генерацию отчетов.</p>
18
<h2>3. Платформа автоматизации пользовательского интерфейса (UI Automation Framework)</h2>
18
<h2>3. Платформа автоматизации пользовательского интерфейса (UI Automation Framework)</h2>
19
<p>Модульные тесты позволяют нам убедиться, что компоненты нашего приложения работают правильно. Но нам также необходимо проверить приложение<strong>с точки зрения конечного пользователя</strong>. Для этого потребуется среда автоматизации пользовательского интерфейса. Для каждой конкретной задачи доступно множество платформ, но давайте лучше обсудим стандартную последовательность действий: 1. Создание нового проекта в IDE вашего предпочтения. 2. Настройка зависимостей в системе управления сборкой. 3. Создание базового класса для фреймворка. 4. Настройка глобальных свойств для вашего проекта. 5. Реализация модели page-object для вашего проекта. 6. Написание тестовых сценариев для вашего проекта. 7. Группировка ваших тестов. 8. Подключение инструмента для генерации отчетов и скриншотов для неудачных тестов. 9. Эффективное выполнение тестов с использованием сервера автоматизации (например, Jenkins). 10. Анализ результатов выполненных тестовых сценариев.</p>
19
<p>Модульные тесты позволяют нам убедиться, что компоненты нашего приложения работают правильно. Но нам также необходимо проверить приложение<strong>с точки зрения конечного пользователя</strong>. Для этого потребуется среда автоматизации пользовательского интерфейса. Для каждой конкретной задачи доступно множество платформ, но давайте лучше обсудим стандартную последовательность действий: 1. Создание нового проекта в IDE вашего предпочтения. 2. Настройка зависимостей в системе управления сборкой. 3. Создание базового класса для фреймворка. 4. Настройка глобальных свойств для вашего проекта. 5. Реализация модели page-object для вашего проекта. 6. Написание тестовых сценариев для вашего проекта. 7. Группировка ваших тестов. 8. Подключение инструмента для генерации отчетов и скриншотов для неудачных тестов. 9. Эффективное выполнение тестов с использованием сервера автоматизации (например, Jenkins). 10. Анализ результатов выполненных тестовых сценариев.</p>
20
<h2>Заключение</h2>
20
<h2>Заключение</h2>
21
<p>После того, как фреймворк закончен, его необходимо постоянно поддерживать, особенно если приложение разрабатывается в компании, использующей<strong>Agile</strong>. Что касается специфики написания кода автоматизации, то тут всё зависит от платформы (мобильная, десктопная) и других факторов.</p>
21
<p>После того, как фреймворк закончен, его необходимо постоянно поддерживать, особенно если приложение разрабатывается в компании, использующей<strong>Agile</strong>. Что касается специфики написания кода автоматизации, то тут всё зависит от платформы (мобильная, десктопная) и других факторов.</p>
22
<p>Итак, мы перечислили<strong>основные моменты</strong>, на которые нужно обратить особое внимание.<em>Надеемся</em>, что эта статья поможет вам лучше понять, что нужно сделать, чтобы стать успешным инженером по<em>автоматизации тестирования</em>.</p>
22
<p>Итак, мы перечислили<strong>основные моменты</strong>, на которые нужно обратить особое внимание.<em>Надеемся</em>, что эта статья поможет вам лучше понять, что нужно сделать, чтобы стать успешным инженером по<em>автоматизации тестирования</em>.</p>
23
<p><a>Версия статьи на английском</a></p>
23
<p><a>Версия статьи на английском</a></p>
24
24