Я заменил ворота, которые принимали всех, на те, что не принимали никого. Мои тесты не заметили разницы.

Автор описывает поучительную историю о тестировании программного обеспечения и защитных механизмах. Изначально система использовала параметр функции для проверки одобрения пользователем, что легко обходилось тестовыми фикстурами. Последующие попытки защитить систему с помощью проверок isatty() и /dev/tty провалились, так как тесты фактически не использовали путь взаимодействия через терминал. Автор обнаружил, что набор тестов проходил успешно, несмотря на неисправность системы, в основном из-за того, что тесты имитировали функции, которые должны были проверяться. Внедряя более надежную проверку, напрямую взаимодействующую с управляющим терминалом, и совершенствуя обработку ошибок, автор подчеркивает важность тестирования реальных границ, а не способов их обхода. Статья делает вывод, что успешное прохождение тестов не гарантирует безопасность, и подчеркивает необходимость лучшей изоляции тестовых сред для предотвращения случайного изменения состояния в рабочей среде.
This is a summary. Read the full article at the original source:
Dev.toПохожие
Классическая логическая задача о переправе волка, козы и капусты через реку часто используется для демонстрации алгоритмических подходов. В данной ста…
Статья на Habr подробно рассматривает профессию UX/UI-дизайнера, подчеркивая её значимость в создании удобных цифровых продуктов. Автор объясняет, что…
Klark + Klara: корпоративный мессенджер и таск-менеджер на собственном сервере
Команда разработчиков представила собственный корпоративный стек инструментов: мессенджер Klark и таск-менеджер Klara. Решение было реализовано на баз…



