Назад
Разработка ПО и open source

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

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

Автор описывает поучительную историю о тестировании программного обеспечения и защитных механизмах. Изначально система использовала параметр функции для проверки одобрения пользователем, что легко обходилось тестовыми фикстурами. Последующие попытки защитить систему с помощью проверок isatty() и /dev/tty провалились, так как тесты фактически не использовали путь взаимодействия через терминал. Автор обнаружил, что набор тестов проходил успешно, несмотря на неисправность системы, в основном из-за того, что тесты имитировали функции, которые должны были проверяться. Внедряя более надежную проверку, напрямую взаимодействующую с управляющим терминалом, и совершенствуя обработку ошибок, автор подчеркивает важность тестирования реальных границ, а не способов их обхода. Статья делает вывод, что успешное прохождение тестов не гарантирует безопасность, и подчеркивает необходимость лучшей изоляции тестовых сред для предотвращения случайного изменения состояния в рабочей среде.

This is a summary. Read the full article at the original source:

Dev.to
Advertisement468 × 90
Share
Разработка ПО и open source

Похожие

Advertisement970 × 250