Найти в Дзене
Уйти в АйТи

Про тестовые окружения

Здравствуйте, уважаемые подписчики и гости канала! Тестовое окружение - приятный уютный мирок. Сразу скажу, что я конечно ЗА, когда это возможно устроить в проекте, но не всегда это возможно по разным причинам, а в каких-то проектах разработчики вообще не видят продакшена. А так, сидишь себе - добавил таблицу, убрал, добавил, убрал и нет проблем! Поменял код, проверил, тестики напилил - чудеса же просто! Однако за все нужно платить, об этом и поговорим.
Плюсы тестового окружения очевидны - во-первых, продакшн не разлетается от ваших душевных метаний. Далее по списку: Минусы: Значит рассказываю кейс. Было дело, когда из-за того, что рассылка была проверена только на тестовых данных не заметили группу юзеров, которым по условиям тоже должна была быть отправлена почта. Ну и ушло им то, что не должно было уходить. Момент спорный согласен, скорее надо все письма сперва себе отправлять по возможности. Но при запросе в проде сразу же было видно, что что-то не так. Кто-то скажет, что руки
devanswers.ru
devanswers.ru

Здравствуйте, уважаемые подписчики и гости канала!

Тестовое окружение - приятный уютный мирок. Сразу скажу, что я конечно ЗА, когда это возможно устроить в проекте, но не всегда это возможно по разным причинам, а в каких-то проектах разработчики вообще не видят продакшена. А так, сидишь себе - добавил таблицу, убрал, добавил, убрал и нет проблем! Поменял код, проверил, тестики напилил - чудеса же просто! Однако за все нужно платить, об этом и поговорим.

Плюсы тестового окружения очевидны - во-первых, продакшн не разлетается от ваших душевных метаний. Далее по списку:

  • Вы можете «всё» (потом объясню почему в кавычках) протестить до выкатки в прод.
  • Вы можете написать тесты и даже больше - не только вы можете их написать и при этом прод все еще будет работать =)
  • Спокойно проверяете гипотезы
  • Этот подход в целом стабильнее фиксов сразу на проде как в старые добрые

Минусы:

  • Душевных метаний может быть слишком много и фича доезжает клиенту сильно сильно позже, чем могла бы.
  • Если вы делаете рассылки или отчеты на основе данных, то - то кому и что конкретно уйдет в действительности надо проверить в итоге только на продакшн данных! Ох, как много раз я слышал, что «проверили на тестовых урезанных данных и оно все работало», но вот только у клиентов их данные не тестовые и хорошо бы на реальных тоже проверять отчет на быстродействие, а цифры перепроверить встречной проверкой
  • Работа в тестовом окружении создает ложное впечатление безопасности и проверенности, но все равно не дает 100% защиты от косяков

Значит рассказываю кейс. Было дело, когда из-за того, что рассылка была проверена только на тестовых данных не заметили группу юзеров, которым по условиям тоже должна была быть отправлена почта. Ну и ушло им то, что не должно было уходить. Момент спорный согласен, скорее надо все письма сперва себе отправлять по возможности. Но при запросе в проде сразу же было видно, что что-то не так. Кто-то скажет, что руки кривые, а кто-то что данных в тестах не хватало, а итог один - попадалово. 😕

Патчи на БД - тоже отлично, на тестах идут быстро (так как данных в разы меньше и пр.), а в проде падают. Падают потому, что проверили плохо или вообще не все нюансы данных учли. Бывает просто фиговый запрос, который делает UPDATE всех строк, но вот только на проде таблица в 100 раз больше + под нагрузкой и патчи такие и сами не работают и другим не дают. У нас например много шард на террабайты данных и это в принципе быстро не идет, а есть еще и закрой кривой - то вообще беда.

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

Скажем так, суть поста в том, что тест - это не прод. И сразу после деплоя обязательно нужно смотреть метрики и логи - вдруг чё. Работа хорошего программиста не заканчивается за пределами IDE.

Не согласен? Оставляй коммент, обсудим!

Подписывайтесь в Telegram: https://t.me/lets_goto_it

Хороших вам релизов!

#java #php #python #golang #developer #programming #программирование #javascript #sql #typescript