IATE Lecture 3: Quality Assurance for Highload Systems

5206c19df417b8876825b5561344c1a0?s=47 Exactpro
December 03, 2013

IATE Lecture 3: Quality Assurance for Highload Systems

5206c19df417b8876825b5561344c1a0?s=128

Exactpro

December 03, 2013
Tweet

Transcript

  1. Обеспечение качества высоконагруженных систем: критические неисправности Иосиф Иткин, Exactpro Systems

    3 декабря 2013
  2. Введение Иосиф Иткин, Exactpro Systems с 2009 года Офис в

    Обнинске - ул. Красных Зорь - 19 человек / 210 всего Создание и применение инструментов для проверки высоконагруженных трейдинговых систем http://www.slideshare.net/IosifItkin http://exactpro.com http://tmpaconf.org http://its-trading.ru https://vk.com/clubqa http://linkedin.com/in/iosifitkin
  3. Содержание лекции 1. Принцип Рида Хоффмана 2. Арифметические ошибки и

    толстые пальцы 3. Тахионы и ракеты 4. Ситуация гонок и Deadlocks 5. Операционные проблемы 6. Разное
  4. Принцип Рида Хоффмана Кто такой Рид Хоффман?

  5. Принцип Рида Хоффмана Что такое LinkedIn?

  6. Принцип Рида Хоффмана http://reidhoffman.org/linkedin-pitch-to-greylock/

  7. Принципы тестирования Тестирование показывает наличие дефектов Исчерпывающее тестирование невозможно Раннее

    тестирование Кластеризация дефектов Парадокс пестицида Тестирование зависит от контекста Обманчивость отсутствия ошибок
  8. Принципы тестирования Три вида воздействия

  9. USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия

    «Умного корабля» Отказ всех систем, включая двигатели, на 2,5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы
  10. USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия

    «Умного Корабля» Отказ всех систем, включая двигатели, на 2,5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы Ошибка – деление на ноль
  11. Mizuho Securities 12 октября 2005 года Попытка продать 1 акцию

    J-Com за 610,000 йен ($5,041) Ошибочно перепутаны объем и цена Не сработали риск-системы: a)Mizuno Securities b)Токийской биржи Потери оцениваются в $225 млн. Ошибка такого вида называется Fat Finger
  12. Ariane 5 Type Conversion 4 июня 1996 года Первый полет

    ракеты Ariane 5 Отклонение курса и разрушение через 40 секунд после старта Автоматический подрыв на высоте 3700 м Преобразование 64-битного числа в 16 бит Ошибка invalid operand на языке Ada ПО совпадала с предыдущей версией Ariane 4 Но горизонтальная скорость существенно выше Тестирование проводилось на симуляторе без использования самой SRI Ошибку воспроизвели на тестах
  13. Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Батарея

    Патриот не стала сбивать ракету Scud Попадание в казарму привело к гибели 28 человек Около 97 человек получили ранения Расследование обнаружило ошибку в ПО
  14. Patriot Software Для хранения времени использовалось 24 бита Значение 0.1

    секунд в бинарном виде: 0.0001100110011001100110011001100.... (1/24+1/25+1/28+1/29+1/212+1/213+...) Ошибка округления 0.0001100110011001100110011001100.... или 0.000000095 Предполагалось, что комплекс будет работать короткое время. Систему не перегружали 100 часов 0.000000095×100×60×60×10=0.34 секунды Скорость Scud 1,673 метра в секунду -> ошибка 568 метров
  15. Patriot Software

  16. Patriot Software

  17. Patriot Software

  18. Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Сообщение

    об ошибке 11 февраля Ответ – «это не баг, а фича» Workaround рестартовать каждые 8 часов Рестарт 60 – 90 секунд Исправление готово 16 февраля Доставка обновлений в Дахран 26 февраля
  19. Измерение времен отклика

  20. North American Blackout 14 августа 2003 года, США и Канада

    Каскадное отключение электричества Ситуация гонок привела к переполнению буфера и отключению системы уведомлений Сброс 4% нагрузки мог бы предотвратить потери порядка $10b
  21. Ситуация Гонок http://en.wikipedia.org/wiki/Race_condition

  22. Therac-25 Therac-25 — аппарат лучевой терапии, запущенный в 1982 г

    Этот аппарат был причиной как минимум шести передозировок Две - со смертельным исходом
  23. Therac-25 Одна и та же переменная применялась как для анализа

    введённых чисел, так и для определения положения поворотного круга, поэтому при быстром вводе Therac мог иметь дело с неправильным положением поворотного круга (так называемое состояние гонки). Настройка положения отклоняющих магнитов занимает около 8 секунд. Если за это время параметры типа и мощности излучения были изменены, а курсор установлен на финальную позицию, то система не обнаруживала изменений.
  24. Therac-25 Деление на величину излучения, приводящее в некоторых случаях к

    ошибке деления на ноль и к соответствующему увеличению величины облучения до максимально возможной. Установка булевской переменной (однобайтовой) в значение «истина» производилось командой «x=x+1». Поэтому с вероятностью 1/256 при нажатии кнопки «Set» программа могла не пропустить информацию о некорректном положении диска. Кроме этих явных ошибок было замечено множество потенциальных — например, в многозадачной операционной системе не было никакой синхронизации
  25. Deadlock

  26. Ситуация

  27. Knight Capital 1 августа 2012 года, США Knight Capital –

    одна из наиболее успешных HFT-компаний Изменения в связи с Retail Liquidity Program в NYSE Систем SMARS – высокоскоростной рутер заявок Количество родительских заявок – 212 Количество дочерних заявок – миллионы Потери – $460 млн. или $170 тыс/сек Отсутствие механизмов контроля и мониторинга рисков в SMARS В основе изменений - старая функциональность – PowerPeg Развертывание изменений на 7 серверов
  28. Knight Capital 1 августа 2012 года, США Knight Capital –

    одна из наиболее успешных HFT компаний Изменения в связи с Retail Liquidity Program в NYSE Систем SMARS – высокоскоростной рутер заявок В основе изменений - старая функциональность – PowerPeg Количество родительских заявок – 212 Количество дочерних заявок – миллионы Потери – $460 млн. или $170 тыс. в секунду Отсутствие механизмов контроля и мониторинга рисков в самой системе SMARS Развертывание изменений на 7 серверов Всего серверов было 8…
  29. Спасибо! Источники информации: https://www.google.ru/? q=worst+software+bugs#newwindow=1&q=worst+software+bugs Например: http://listverse.com/2012/12/24/10-seriously-epic-computer-software-bugs/ http://www.net-security.org/secworld.php?id=10354 http://www.wired.com/software/coolapps/news/2005/11/69355 http://www.pcworld.com/article/205318/11_infamous_software_bugs.html

    http://www.intertech.com/Blog/15-worst-computer-software-blunders/ Ошибки, не относящиеся к ПО: Black Monday 1987, Flash Crash 2010, No 4 in SQS 2010 List 