Гиорги работал в стартапе всего три месяца, когда тимлид поставил задачу: покрыть тестами модуль обработки платежей.
Выбор казался простым — писать тесты вручную или настроить автоматизацию. Гиорги решил попробовать оба варианта на разных частях кода и сравнить результаты в реальных условиях.
Первая неделя: ручное тестирование
Гиорги начал с ручного подхода. Каждую функцию он проверял через консоль, записывая результаты в таблицу.
| Критерий | Ручное тестирование | Автоматизированное |
| Время на 50 функций | 12 часов | 3 часа написания + мгновенный запуск |
| Повторный запуск | Снова 12 часов | 15 секунд |
| Порог входа | Минимальный | Нужно изучить фреймворк |
| Обнаружение регрессий | Пропустил 3 из 7 | Нашел все 7 |
За неделю Гиорги потратил 40 часов на проверку кода. Когда коллега внес изменения, пришлось тестировать заново — еще 35 часов.
Вторая неделя: автоматизация через Jest
Тимлид предложил попробовать Jest для JavaScript-модулей.
Первые два дня Гиорги разбирался с синтаксисом и настройкой окружения. Написание тестов заняло 18 часов — в полтора раза дольше первого ручного прогона. Зато повторный запуск после правок занял 22 секунды вместо полутора дней.
Третья неделя: критическая ситуация
В продакшн попала ошибка в функции валидации карт.
Гиорги вспомнил: эту функцию он тестировал вручную две недели назад. Тогда все работало, но после рефакторинга он не перепроверил — слишком долго. Автоматизированные тесты на соседнем модуле поймали бы проблему за секунды.
Финальное сравнение после месяца
Гиорги подсчитал реальные цифры:
- Ручное тестирование: 140 часов за месяц, 4 пропущенные ошибки
- Автоматизация: 25 часов на написание, 0.5 часа на все прогоны, 0 пропущенных багов
Что удивило больше всего? Ручной подход действительно быстрее для одноразовой проверки маленького модуля. Гиорги потратил 4 часа против 6 на автоматизацию аналогичного куска кода.
Но когда модуль менялся больше трех раз, автоматизация окупалась полностью. А на четвертой итерации экономия времени стала очевидной даже начальству.
Теперь в команде правило: если код будет жить дольше спринта — пишем автотесты сразу
Гиорги больше не выбирает между подходами. Он использует ручное тестирование для прототипов и экспериментов, автоматизацию — для всего, что попадает в основную кодовую базу.