Автоматизированное тестирование — это проверка продукта не вручную, а с помощью программных средств. Тестировщик описывает тест-кейсы и все необходимые данные, а авто-тесты выполняют проверку, сравнивают полученные результаты с ожидаемыми и формируют отчеты. При этом автоматизация требует значительных усилий и ресурсов, поэтому не все задачи должны быть автоматизированы.
Именно об этом мы поговорим в уроке. Вы узнаете, по каким критериям нужно оценить тест-кейс прежде чем автоматизировать его.
Как применять автоматизацию
Автоматизация сокращает время на тестирование по нескольким причинам:
- Компьютер быстрее человека. Например, авто-тесты точно знают, на какой элемент пользовательского интерфейса нужно нажать и какое значение ввести. В отличие от человека, они не тратят ни секунды на обдумывание
У компьютера нет временных ограничений. Вряд ли человек способен вручную проверить десять фрагментов кода одновременно. Зато он может запустить десять авто-тестов за раз, и потратить в десять раз меньше времени.
Особенно это удобно при кроссбраузерном тестировании, ведь можно одновременно запустить тесты в разных браузерах на разных машинах. Кроме того, компьютер не ограничен рамками рабочего дня — тестировщик вечером запускает тесты, оставляет их на ночь и утром получает результаты
Компьютер исключает человеческий фактор. Представьте, что нам нужно вручную проверить очень важный фрагмент кода. В таком случае придется привлекать двоих или троих тестировщиков, чтобы они проверяли код друг за другом. Чтобы не тратить так много времени и усилий, можно написать авто-тест. В отличие от человека, компьютер не устанет и не пропустит ошибку по невнимательности
Компьютер разгружает человека. Иногда работа ручного тестировщика сводится к регулярному повторению одних и тех же тестов в разных браузерах. Некоторым нравятся такие предсказуемые задачи, но большинство все же хочет заниматься более интересными вещами. С этим помогает автоматизация, потому что она освобождает человека от монотонных задач.
Это особенно полезно при регрессионном тестировании, при котором постоянно проверяется одна и та же функциональность
Автоматизация предоставляет много преимуществ, но при этом и требует много ресурсов. Бывают такие тест-кейсы, в которых быстрее и проще проводить ручные тесты, а не писать код для автоматизации. Поэтому перед написанием авто-теста нужно оценить время на него и взвесить, окупится ли эта инвестиция в будущем.
Важно понимать, что не все тесты нужно автоматизировать. Есть критерии, которые подсказывают принять верное решение.
Стоит автоматизировать тест-кейсы, которые:
- Проверяют самые важные функции. В таких случаях важно исключить человеческий фактор, с чем авто-тесты отлично справляются
- Регулярно повторяются. Чем больше времени мы тратим на один и тот же ручной тест, тем выгоднее написать авто-тест и сэкономить ресурсы
- Слишком трудоемкие. Для некоторых тест-кейсов нужно создавать специальное окружение, подбирать определенные данные. Это все долго и сложно, поэтому такой кейс лучше автоматизировать
- Слишком утомительные. Кейсы с долгим и скучным ручным тестированием лучше заменять на авто-тесты, чтобы не утомлять сотрудников и освободить их время для более продуктивных задач
Есть случаи, когда автоматизировать не стоит:
Если требования меняются. Изменчивые требования часто встречаются на старте проекта. На этом этапе лучше не пытаться автоматизировать все и сразу — это слишком дорого. Если требования к фиче изменятся, то код авто-теста тоже придется менять. Придется переписывать тест, из-за чего может не хватить времени на само тестирование.
Если тест нужен всего один раз. Для примера представим скрипт, который будет выполнен один раз. Автоматизировать его необязательно — достаточно прогнать его, найти ошибки, исправить их, а затем выполнить еще раз на всякий случай. Этого уже будет достаточно.
Если нет ручных тестов. По одному мнению, перед автоматизацией нужно проверить все тесты вручную, по другому — можно сразу писать авто-тесты. Здесь единого правила пока нет. В большинстве случаев ручная проверка перед автоматизацией не повредит, но теоретически авто-тесты можно писать и без этого
Автоматизация и программирование
Некоторые начинающие тестировщики боятся автоматизации и думают, что им придется осваивать программирование. Но далеко не всегда автоматизация требует серьезных навыков работы с кодом. На самом деле, во многих случаях достаточно написать несколько небольших и простых скриптов.
Иногда все еще проще — можно воспользоваться готовыми инструментами с графическим интерфейсом. Например, тестировать API можно через Postman и Jmeter. В этих программах мы создаем авто-тесты просто с помощью мышки и кнопок интерфейса. Нужно всего лишь создать запрос, описать проверку, отправить запрос, получить ответ и проверить результат. На этом примере видно, что автоматизация не всегда требует больших вложений и ресурсов. Созданные через Postman тесты API быстро окупаются, потому что на автоматизацию уходит очень мало времени.
Автоматизация тестирования — это отдельная профессия, в которую пока мы не погружаемся подробно. Пока важно усвоить две мысли:
- Автоматизация — это не идеальное универсальное решение. При неправильном подходе она может навредить вашему проекту
- Автоматизация не всегда связана с написанием кода. Для некоторых случаев подойдут уже готовые инструменты, которые можно использовать и без навыков программирования
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.