IATE Lecture 3: Quality Assurance for Highload Systems
Upcoming SlideShare
Loading in...5
×
 

IATE Lecture 3: Quality Assurance for Highload Systems

on

  • 1,143 views

 

Statistics

Views

Total Views
1,143
Views on SlideShare
388
Embed Views
755

Actions

Likes
0
Downloads
7
Comments
0

10 Embeds 755

http://clubqa.ru 458
http://software-testing.ru 201
http://feeds.feedburner.com 51
http://feedly.com 18
http://www.software-testing.ru 17
http://www.feedspot.com 6
http://cloud.feedly.com 1
http://www.inoreader.com 1
http://reader.aol.com 1
http://reader128k.net 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />
  • The reconciliation tool should meet the following requirements: <br /> Scalability <br /> Ability to process many transactions at a time <br /> Adaptability ( или Flexibility) <br /> User friendly interface <br />

IATE Lecture 3: Quality Assurance for Highload Systems IATE Lecture 3: Quality Assurance for Highload Systems Presentation Transcript

  • Обеспечение качества высоконагруженных систем: критические неисправности Иосиф Иткин, Exactpro Systems 3 декабря 2013
  • Введение Иосиф Иткин, 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
  • Содержание лекции 1. 2. 3. 4. 5. 6. Принцип Рида Хоффмана Арифметические ошибки и толстые пальцы Тахионы и ракеты Ситуация гонок и Deadlocks Операционные проблемы Разное
  • Принцип Рида Хоффмана Кто такой Рид Хоффман?
  • Принцип Рида Хоффмана Что такое LinkedIn?
  • Принцип Рида Хоффмана http://reidhoffman.org/linkedin-pitch-to-greylock/
  • Принципы тестирования Тестирование показывает наличие дефектов Исчерпывающее тестирование невозможно Раннее тестирование Кластеризация дефектов Парадокс пестицида Тестирование зависит от контекста Обманчивость отсутствия ошибок
  • Принципы тестирования Три вида воздействия
  • USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия «Умного корабля» Отказ всех систем, включая двигатели, на 2,5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы
  • USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия «Умного Корабля» Отказ всех систем, включая двигатели, на 2,5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы Ошибка – деление на ноль
  • Mizuho Securities 12 октября 2005 года Попытка продать 1 акцию J-Com за 610,000 йен ($5,041) Ошибочно перепутаны объем и цена Не сработали риск-системы: a)Mizuno Securities b)Токийской биржи Потери оцениваются в $225 млн. Ошибка такого вида называется Fat Finger
  • Ariane 5 Type Conversion 4 июня 1996 года Первый полет ракеты Ariane 5 Отклонение курса и разрушение через 40 секунд после старта Автоматический подрыв на высоте 3700 м Преобразование 64-битного числа в 16 бит Ошибка invalid operand на языке Ada ПО совпадала с предыдущей версией Ariane 4 Но горизонтальная скорость существенно выше Тестирование проводилось на симуляторе без использования самой SRI Ошибку воспроизвели на тестах
  • Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Батарея Патриот не стала сбивать ракету Scud Попадание в казарму привело к гибели 28 человек Около 97 человек получили ранения Расследование обнаружило ошибку в ПО
  • 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 метров
  • Patriot Software
  • Patriot Software
  • Patriot Software
  • Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Сообщение об ошибке 11 февраля Ответ – «это не баг, а фича» Workaround рестартовать каждые 8 часов Рестарт 60 – 90 секунд Исправление готово 16 февраля Доставка обновлений в Дахран 26 февраля
  • Измерение времен отклика
  • North American Blackout 14 августа 2003 года, США и Канада Каскадное отключение электричества Ситуация гонок привела к переполнению буфера и отключению системы уведомлений Сброс 4% нагрузки мог бы предотвратить потери порядка $10b
  • Ситуация Гонок http://en.wikipedia.org/wiki/Race_condition
  • Therac-25 Therac-25 — аппарат лучевой терапии, запущенный в 1982 г Этот аппарат был причиной как минимум шести передозировок Две - со смертельным исходом
  • Therac-25 Одна и та же переменная применялась как для анализа введённых чисел, так и для определения положения поворотного круга, поэтому при быстром вводе Therac мог иметь дело с неправильным положением поворотного круга (так называемое состояние гонки). Настройка положения отклоняющих магнитов занимает около 8 секунд. Если за это время параметры типа и мощности излучения были изменены, а курсор установлен на финальную позицию, то система не обнаруживала изменений.
  • Therac-25 Деление на величину излучения, приводящее в некоторых случаях к ошибке деления на ноль и к соответствующему увеличению величины облучения до максимально возможной. Установка булевской переменной (однобайтовой) в значение «истина» производилось командой «x=x+1». Поэтому с вероятностью 1/256 при нажатии кнопки «Set» программа могла не пропустить информацию о некорректном положении диска. Кроме этих явных ошибок было замечено множество потенциальных — например, в многозадачной операционной системе не было никакой синхронизации
  • Deadlock
  • Ситуация
  • Knight Capital 1 августа 2012 года, США Knight Capital – одна из наиболее успешных HFT-компаний Изменения в связи с Retail Liquidity Program в NYSE Систем SMARS – высокоскоростной рутер заявок Количество родительских заявок – 212 Количество дочерних заявок – миллионы Потери – $460 млн. или $170 тыс/сек Отсутствие механизмов контроля и мониторинга рисков в SMARS В основе изменений - старая функциональность – PowerPeg Развертывание изменений на 7 серверов
  • Knight Capital 1 августа 2012 года, США Knight Capital – одна из наиболее успешных HFT компаний Изменения в связи с Retail Liquidity Program в NYSE Систем SMARS – высокоскоростной рутер заявок В основе изменений - старая функциональность – PowerPeg Количество родительских заявок – 212 Количество дочерних заявок – миллионы Потери – $460 млн. или $170 тыс. в секунду Отсутствие механизмов контроля и мониторинга рисков в самой системе SMARS Развертывание изменений на 7 серверов Всего серверов было 8…
  • Спасибо! Источники информации: 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 