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