Есть два способа проверить программу. Первый — руками: человек сам проходит сценарий, нажимает, смотрит, сравнивает. Второй — автоматизацией: программист пишет отдельный код (тест), который проходит сценарий за человека и сам сообщает, всё ли в порядке.
Новичков часто пугают, что «ручное умирает, всё автоматизируют». Это миф. Ручное и автоматизированное тестирование решают разные задачи, и одно не заменяет другое. Разберёмся, где сильно каждое и почему начинать стоит именно с ручного.
Ручное тестирование: человек проверяет сам
Тестировщик открывает приложение и проходит сценарий как живой пользователь: регистрируется, кладёт товар в корзину, оплачивает, смотрит на результат.
Сильные стороны:
- Гибкость. Заметил что-то странное — сразу свернул в сторону и проверил. Не нужно ничего заранее программировать.
- Живой взгляд. Человек видит, что кнопка некрасиво съехала, текст обрезан, а цвет ошибки нечитаемый. Автотест этого «не чувствует».
- Быстрый старт. Чтобы проверить новую функцию один раз, не нужно писать код — открыл и проверил.
Слабые стороны: это медленно и утомительно, если одно и то же надо повторять много раз. Прогнать вручную 500 проверок после каждого изменения — нереально. И человек устаёт, а значит, ошибается и пропускает.
Автоматизированное тестирование: код проверяет за человека
Здесь сценарий один раз описывают кодом, и дальше его можно запускать сколько угодно раз — хоть после каждого изменения, хоть ночью.
Сильные стороны:
- Скорость и повторяемость. Тысячи проверок за минуты, одинаково точно каждый раз.
- Не устаёт. Машине всё равно, первый это прогон или тысячный.
- Хорош для регресса. Идеально проверять, что старое всё ещё работает после новых изменений.
Слабые стороны: дорого создавать и поддерживать. Автотест — это тоже код, который надо написать, чинить при изменениях интерфейса и в котором самом бывают баги. Автотест проверяет ровно то, что в него заложили, и не заметит, что «вообще-то это выглядит уродливо». Написать автотест на одноразовую проверку — пустая трата времени.
Что чем проверяют на практике
Грубое, но рабочее правило:
- Автоматизируют то, что повторяется часто и редко меняется: регресс основных сценариев, проверки API, расчёты, обработку множества вариантов данных.
- Руками проверяют новое, сложное и «на глаз»: только что сделанную функцию, удобство интерфейса, редкие сценарии, а также разведочное тестирование — когда ходишь по продукту без строгого плана и ищешь неожиданное.
Разведочное (exploratory) тестирование — важная вещь, которую автоматизация не умеет в принципе. Это когда тестировщик исследует продукт, придумывая проверки на ходу, опираясь на опыт и любопытство. Именно так находят самые интересные баги.
Почему начинать стоит с ручного
Автоматизация — это, по сути, программирование. Чтобы писать хорошие автотесты, нужно сначала понимать само тестирование: что проверять, какие бывают сценарии, где прячутся баги, как оценить важность проблемы. Всё это даёт ручное тестирование.
Человек, который бросился в автоматизацию, не научившись тестировать, пишет автотесты, которые проверяют не то и не там. Поэтому почти все входят в профессию через ручное, а к автоматизации переходят осознанно — когда ясно, что именно и зачем автоматизировать. Про этот переход — в статье куда расти дальше.
Где это применяется
На реальном проекте эти два подхода живут вместе: часть проверок автоматизирована и гоняется при каждом изменении, а тестировщик руками проверяет новое и исследует продукт. Понимание, что чем проверять, помогает не тратить силы впустую — не гонять руками то, что давно стоило автоматизировать, и не автоматизировать одноразовое.
Где спотыкаются начинающие:
- Думают, что автоматизация заменит ручное и что «ручные тестировщики не нужны». На деле нужны и те, и другие.
- Рвутся автоматизировать, не научившись тестировать. Получаются автотесты, которые проверяют ерунду.
- Пытаются проверить руками то, что стоило автоматизировать — например, один и тот же длинный регресс после каждой сборки. Это выматывает и приводит к пропускам.
Что учить дальше. Посмотрите, как устроен жизненный цикл разработки и тестирования, а затем переходите к сути ручной работы — уровням и видам тестирования.