На тесте всё работало — фраза, за которой обычно следует инцидент. Причины расхождений ...
На тесте всё работало — фраза, за которой обычно следует инцидент. Причины расхождений повторяются. Объём данных. На тесте тысяча строк, в проде десять миллионов. Запрос без индекса на тесте незаметен. Версии. На тесте свежая база и свежая система, в проде — то, что стояло два года. Конфигурация. Лимиты памяти, число соединений, таймауты, кэш — на тесте по умолчанию, в проде настроены. Нагрузка. На тесте один пользователь, в проде сотня одновременных. Интеграции. На тесте заглушки, в проде реальные сервисы со своими задержками и отказами. Что с этим делать без больших вложений. Держать на тесте копию продуктивной базы, обезличенную, но реального объёма. Совпадать по версиям и ключевым параметрам конфигурации. Проверять миграции на этой копии с замером времени. И честно признавать риск: если тест сильно отличается, выкатывайте в прод постепенно и с планом отката, а не с надеждой. Насколько ваш тест похож на прод?