Y
Yet another QA
@yetanotherqa6.8K подп.
4.0Kпросмотров
58.6%от подписчиков
4 декабря 2025 г.
Score: 4.4K
От Марса до Суэца: Почему провалы — лучшие учителя в IT (и не только) Сегодня на работе случилась парочка провалов, так что пост о том, чего мы все стремимся избежать, но что неизбежно является частью любого сложного процесса – об ошибках. В мире IT, где один неверный бит может стоить миллионы или даже человеческие жизни, цена ошибки особенно высока. Но провалы случаются не только в коде, и их уроки универсальны. Вспомним несколько хрестоматийных примеров: - Марсианский климатический орбитальный аппарат (Mars Climate Orbiter, 1999): Классика жанра. Потеря спутника стоимостью $125 миллионов из-за простой ошибки в единицах измерения – одна команда использовала английские фунты силы, другая – метрические ньютоны. Урок: требования и их интерпретация должны быть абсолютно однозначными и тщательно проверенными. Где был тестировщик, который бы спросил: "А в чем измеряем?" - Therac-25 (1985-1987): Один из самых трагичных примеров. Дефект ПО в медицинском аппарате лучевой терапии привел к смертельным передозировкам радиации. Проблема была в гонках условий (race condition), которые не были выявлены при тестировании. Урок: тестирование безопасности и устойчивости к некорректным последовательностям действий пользователя – не прихоть, а необходимость. - Boeing 737 MAX (2018-2019): Хотя это и авиация, но в основе катастроф лежал сложный, скрытый баг в системе MCAS, неправильно спроектированной и недостаточно протестированной. Система, призванная повысить безопасность, при определенных условиях приводила к потере управления. Урок: недостаточное тестирование сложных алгоритмов, особенно тех, что взаимодействуют с реальным миром и человеческой жизнью, имеет катастрофические последствия. И провалы случаются не только в софте, но часто с его участием или по схожим причинам: - Контейнеровоз Ever Given в Суэцком канале (2021): Гигантское судно село на мель, заблокировав одну из ключевых мировых торговых артерий на несколько дней. Причины? Сложное сочетание факторов, включая погодные условия, навигационную ошибку и, вероятно, некорректное взаимодействие с навигационными системами и ПО. Урок: сложные системы с множеством взаимосвязанных компонентов и человеческим фактором требуют тщательного тестирования всех сценариев, включая "черных лебедей". Что общего у всех этих провалов? - Недооценка сложности: Чем сложнее система, тем больше точек отказа. - Недостаточное тестирование: Особенно граничных условий, неочевидных сценариев, интеграций и отказоустойчивости. - Плохая коммуникация и управление требованиями: Недопонимание между командами, отсутствие четких спецификаций. - Давление сроков: "Сделаем быстрее, а потом поправим" – иногда "потом" не наступает. - Игнорирование мелких предупреждений: Часто большие провалы начинаются с серии маленьких, незамеченных или проигнорированных проблем. Поэтому, например, QA это те, кто должен задавать неудобные вопросы, проверять невозможные сценарии и быть "адвокатами дьявола" в процессе разработки. Важность каждого тест-кейса, каждого найденного дефекта, каждого отчета о тестировании нельзя переоценить. Тем не менее, тут важен баланс - не все баги должны быть исправлены, не все фичи должны тестироваться вечно, не все требования всегда будут идеальными. Каждый провал — это дорогой, но бесценный урок. Он учит нас внимательности, критическому мышлению, необходимости системного подхода и постоянному стремлению к совершенству. А я, тем временем, пойду и сама исправлю пару проблем.
4.0K
просмотров
3476
символов
Нет
эмодзи
Нет
медиа

Другие посты @yetanotherqa

Все посты канала →
От Марса до Суэца: Почему провалы — лучшие учителя в IT (и н — @yetanotherqa | PostSniper