Тесты глазами DevOps-инженера
Тесты глазами DevOps-инженера
Вчера настраивал пайплайн и подумал: а знаем ли мы, что именно тестируем? Да, мы не пишем код, но пайплайны с тестами — наша зона ответственности. И чтобы правильно настроить CI/CD, нужно понимать суть процесса.
❔ Как мы смотрим на тесты
Представьте, что тестирование — это как проверка автомобиля. Unit-тесты — это когда механик проверяет каждую деталь отдельно: работает ли двигатель, тормоза, фары. Интеграционные тесты — когда мы заводим машину и смотрим, как все системы работают вместе. А E2E тесты — это когда мы садимся за руль и едем по городу, проверяя весь путь от дома до работы.
❔Что мы проверяем
Есть два больших вопроса: "Работает ли система?" и "А как хорошо она работает?". Первый вопрос решают функциональные тесты — они проверяют, что кнопка "Купить" действительно покупает товар. Второй вопрос решают нефункциональные тесты — они смотрят на безопасность, производительность, удобство использования.
🪲 Уровень "прозрачности"
Интересно, что тестирование бывает разным по уровню доступа к коду. Черный ящик — тестируем как обычный пользователь, не зная, что происходит внутри. Белый ящик — видим весь код и тестируем с пониманием архитектуры. Серый ящик — золотая середина, когда знаем общую структуру, но не вдаемся в детали.
🤖 Ручное vs автоматическое
Ручное тестирование — это когда человек садится за компьютер и проверяет все вручную. Классика, но медленно. Автоматизированное — это наша стихия: скрипты, CI/CD, автоматизация. Быстро, надежно, масштабируемо.
❔Почему это важно для нас
Понимание типов тестов помогает нам правильно настроить пайплайны. Мы знаем, что unit-тесты должны быть быстрыми и запускаться при каждом коммите. Интеграционные тесты — при мерже в основную ветку. E2E тесты — перед релизом. А нагрузочные тесты — по расписанию или при изменениях инфраструктуры.
✔️Это помогает нам оптимизировать время сборки, правильно распараллеливать задачи и говорить с разработчиками на одном языке.