Назад к списку

Формула успеха: семь раз отмерь - один раз отрежь

Сегодня тестирование является неотъемлемой частью разработки любого продукта: будь то мобильное приложение или спутник в космосе. 

Вот пять реальных исторических случаев, когда плохое тестирование или ошибки в ПО привели к крупным сбоям, финансовым потерям, угрозам безопасности и даже человеческим жертвам. Эти примеры показывают важность качественного тестирования и контроля качества.
Многим известны две самые резонансные катастрофы, причиной которых послужило недостаточное тестирование межмодульного взаимодействия:
  1. Взрыв ракеты Ariane 5 (в новом модуле использовался фрагмент старого кода, и когда произошла попытка преобразования 64-битного числа с плавающей запятой в 16-битное целое, это привело к зависанию и аварийному завершению работы системы).
  2. Потеря космического аппарата Mars Climate Orbiter в атмосфере Марса (в этом проекте команды с Земли были отправлены в английских единицах (фунт-секунда) без преобразования в необходимый метрический стандарт (Ньютон-секунда). В итоге аппарат вошёл в атмосферу Марса слишком близко к поверхности планеты).
К печальным последствиям привело недостаточное тестирование безопасности оборудования для лучевой терапии Therac-25, где из-за программной ошибки конкуренции (race condition), возникшей при быстром вводе данных, пациенты получили смертельные дозы радиации.
В ИТ-индустрии ярким примером важности качественного нагрузочного тестирования стал скандал с запуском портала Healthcare.gov, созданный правительством США для реализации реформы здравоохранения в 2013 году: сайт не выдержал нагрузки, пользователи не могли зарегистрироваться, получить информацию или оформить страховку.
К большим финансовым потерям привел случай с сайтом Tesco, который в 2018 году «упал» прямо в разгар Черной Пятницы. Накануне этого дня пикового спроса было выпущено обновление, не протестированное на высоких нагрузках. В результате миллионы пользователей не смогли сделать покупки, что привело к значительным финансовым потерям и удару по репутации компании.
Вышеперечисленные ситуации демонстрируют, что даже крупные игроки рынка могут допустить элементарные ошибки, если пренебречь нагрузочным и регрессионным тестированием. Эти истории служат важным напоминанием: тестирование — не формальность, а необходимый этап разработки, позволяющий избежать катастроф, финансовых потерь и угроз безопасности. Качественная проверка на всех уровнях, начиная от юнит-тестов и заканчивая тестированием в реальной среде, позволяет заранее выявить проблемы и предотвратить их выход в продакшн.
Специалисты компании Никотех имеют большой опыт тестирования - запуск систем в продуктивную эксплуатацию всегда происходит без сбоев!
Ксения Новикова, эксперт по качеству программного обеспечения
Поиск по сайту