#6 – Автоматизация тестирования: введение
Видеоурок
Автоматизация тестирования
Автоматизация тестирования — это мощный инструмент, позволяющий QA-инженерам автоматизировать повторяющиеся задачи. Это особенно полезно для крупных проектов, где необходимо регулярно проверять одни и те же сценарии после каждого обновления продукта.
Автоматизация значительно ускоряет выполнение тестов, что критично при большом объеме функциональности. Такие тесты выполняются одинаково, исключая человеческий фактор. Их можно легко запускать повторно, особенно в случае регрессионного тестирования. К тому же, они позволяют тестировать продукт на различных устройствах и браузерах, что способствует проверке кроссплатформенной совместимости.

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

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

Автоматизация не заменяет ручное тестирование интерфейсов и восприятие продукта пользователями. Для небольших и редких тестов ручное тестирование может оказаться быстрее и проще.
Основные инструменты
Теперь давайте рассмотрим популярные инструменты для автоматизации тестирования. Далее в курсе мы детально разберем каждую ИТ-сферу и процесс тестирования в ней. Сейчас же — краткий обзор возможностей.
1. Selenium
Selenium — один из самых популярных инструментов для автоматизации тестирования веб-приложений. Он позволяет взаимодействовать с веб-страницами так же, как это делает пользователь: вводить текст, кликать по кнопкам, проверять содержимое страницы и т.д.
Selenium поддерживает такие языки программирования, как Java, Python, C#, Ruby, что делает его универсальным и легко интегрируемым в различные проекты.
В примере на видео вы видите, как происходит интеграция Selenium с Python. Нужно установить библиотеку через терминал, затем скачать специальный драйвер для управления браузером. После этого можно описать код для автоматизации тестирования, например, открыть веб-страницу и выполнить действия на ней.
Мы используем WebDriver для открытия браузера и можем выполнять поиск элементов по атрибутам или другим значениям, вводить данные, кликать на кнопки и т.д., что позволяет создать автоматизацию для тестирования веб-проектов.
2. Unit тестирование
Для юнит-тестирования используются разные библиотеки в зависимости от языка программирования. Для Python — это библиотека unittest, для Java — JUnit. На примере последнего рассмотрим автоматизацию с помощью юнит-тестов.
JUnit — это популярный фреймворк для модульного тестирования на Java. Он позволяет проверять отдельные модули (функции и классы) приложения, гарантируя их корректную работу.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class CalculatorTest {
@Test
public void testAddition() {
int result = 2 + 2;
assertEquals(4, result);
}
}В этом примере тестируется простая операция сложения. Если результат не совпадает с ожидаемым, тест не пройдет.
3. Appium
Appium — инструмент для автоматизации тестирования мобильных приложений. Он поддерживает платформы Android и iOS, что делает его отличным выбором для кроссплатформенной автоматизации мобильных приложений.
На рынке существует множество подобных инструментов, с которыми мы будем знакомиться на практике в будущем.
Как это работает?
Когда у вас есть проект для тестирования, можно действовать несколькими способами. Если проект прост или тестирование сложное, можно выполнять ручное тестирование. Необходимо описать тест-кейс, указать, что вы тестируете, и выполнить шаги. В дальнейшем этот тест-кейс можно повторять при необходимости.
Если же проверка не требует субъективной оценки, можно настроить автоматизированный тест. Выбор инструмента зависит от языка программирования, на котором написан проект, и типа приложения (веб-сайт, мобильное приложение, игра). Соответственно, автоматические тесты могут различаться и использовать разные библиотеки.
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть