Exactpro Training: Defects and Feelings

1,540 views
1,375 views

Published on

О чувствах и ошибках в пословицах и поговорках
Иосиф Иткин, Кострома
31 января 2014

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,540
On SlideShare
0
From Embeds
0
Number of Embeds
1,085
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Exactpro Training: Defects and Feelings

  1. 1. О чувствах и ошибках Иосиф Иткин, Кострома 31 января 2014
  2. 2. Содержание • Чувства • Свинство • Пословицы и поговорки • Книжка • Ошибки 2
  3. 3. Bugs Have Feelings Too http://cartoontester.blogspot.ru/2010/03/bug-advocacy.html 3
  4. 4. Bugs Have Feelings Too 4
  5. 5. Bugs Have Feelings Too 5
  6. 6. Bugs Have Feelings Too 6
  7. 7. Bugs Have Feelings Too 7
  8. 8. Bugs Have Feelings Too 8
  9. 9. Bugs Have Feelings Too 9
  10. 10. Bugs Have Feelings Too 10
  11. 11. Bugs Have Feelings Too 11
  12. 12. Writing Effective Defect Reports • Condense - Say it clearly but briefly • Accurate - Is it a defect or could it be user error, misunderstanding, etc.? • Neutralize - Just the facts. No zingers. No humor. No emotion. Writing Effective Defect Reports, Kelly Whitmill, IBM Printing Systems Division https://www.stickyminds.com/sites/default/files/article/file/2012/XDD3655filelistfilename1_0.pdf 12
  13. 13. Writing Effective Defect Reports • Condense - Say it clearly but briefly • Accurate - Is it a defect or could it be user error, misunderstanding, etc.? • Neutralize - Just the facts. No zingers. No humor. No emotion. • Precise - Explicitly, what is the problem? • Isolate - What has been done to isolate the problem? • Generalize - What has been done to understand how general the problem is? 13
  14. 14. Writing Effective Defect Reports • Condense - Say it clearly but briefly • Accurate - Is it a defect or could it be user error, misunderstanding, etc.? • Neutralize - Just the facts. No zingers. No humor. No emotion. • Precise - Explicitly, what is the problem? • Isolate - What has been done to isolate the problem? • Generalize - What has been done to understand how general the problem is? • Re-create - What are the essentials in triggering/re-creating this problem? (environment, steps, conditions) • Impact - What is the impact to the customer? What is the impact to test? Sell the defect. • Debug - What does development need to make it easier to debug? (traces, dumps, logs, immediate access, etc.) • Evidence - What documentation will prove the existence of the error? 14
  15. 15. Пословицы 1. Краткость – сестра таланта: Говорим и пишем понятно и покороче. 2. «Давайте не будем нервничать и неспеша во всем разберемся»: Это правда дефект или неверно интерпретированное нами требование из документа, или «просто» сами забыли что-то подключить, и т.д.? 3. Смех без причины – признак известно чего: Только факты. Не надо сарказма, юмора и эмоций. 4. Берём быка за рога: Без ненужных предисловий – в чем именно проблема? 5. Вот где собака зарыта: Что было сделано, чтобы понять что проблема именно здесь? 6. За деревьями леса не увидели: Может быть наша проблема гораздо шире? 7. Спрятал концы в воду: Что необходимо сделать, чтобы вызвать проблему и воспроизвести её (среда, шаги, условия)? 8. Гроша ломаного не стоит: Почему плохо от этого будет конечному пользователю? Как это сказывается на тестировании? «Продайте» найденный вами дефект. 9. Лучше один раз увидеть, чем сто раз услышать: Что разработчику нужно, чтобы понять причину проблемы (логи, картинки, видео-файл, доступ, и т.д.) 10. Доверяй, но проверяй: Документация есть, где написано, как должно работать? Процитируйте её и дайте на неё ссылку. 15
  16. 16. Patriot Software Bug 25 февраля 1991 года, Дахран, Саудовская Аравия Батарея Патриот не стала сбивать ракету Scud Попадание в казарму привело к гибели 28 человек Около 97 человек получили ранения Расследование обнаружило ошибку в ПО 16
  17. 17. Patriot Software Bug Для хранения времени использовалось 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 метров 17
  18. 18. Patriot Software Bug 18
  19. 19. Patriot Software Bug 19
  20. 20. Patriot Software Bug 20
  21. 21. Patriot Software Bug 25 февраля 1991 года, Дахран, Саудовская Аравия Сообщение об ошибке 11 февраля Ответ – это не баг а фича Workaround рестартовать каждые 8 часов Рестарт 60 – 90 секунд Исправление готово 16 февраля Доставка обновлений в Дахран 26 февраля 21
  22. 22. На что это похоже? 22
  23. 23. Latency Measurement Discrepancies 23
  24. 24. Mizuho Securities • 12 October 2005 • Attempts to sell a single J-Com stock for 610,000 Yen ($5,041) • Mistakenly price and quantity were swapped • Risk systems failure: – Mizuho Securities – Tokyo Stock Exchange • Estimated loss $225 millions • This type of errors is called Fat Finger 24
  25. 25. Fat Finger Order on NASDAQ from ABN AMRO Client • 18 September 2012, Stockholm. A trader had the intention of posting a sell order for 5,000 SKF B shares. Due to an input error with the Client, the order volume field was populated with a negative value (-5,000) • Instead of returning an error, the system converted the value into a random 9-digit figure - 294,962,296 • The Sell Order corresponded to approximately 71 % of the total outstanding volume in the SKF B share. The Sell Order resulted in execution of 813,442 shares 25
  26. 26. Flash Crash • 6 May 2010, Waddell & Reed hedges exposure in equities • Algo to sell 75,000 E-mini contracts (~$4.1b) with 9% participation target • No price or time constraints in the algo, only volume traded during the previous minute • Initial selling was absorbed by HFT and arbitrageurs - buy E-mini, sell SPY or basket of equities. Lack of liquidity and hot-potato exchange between HFT increased volumes and selling pressure from the algo • Sharp decline in prices within 5 minutes. Trigger of across the board volatility interruptions • Participants are leaving the market, causing liquidity crisis in equities and execution against stub quotes • Market recovers within minutes 26
  27. 27. Limit Order Book 27
  28. 28. Limit Order Book 28
  29. 29. Limit Order Book 29
  30. 30. Limit Order Book 30
  31. 31. Price Boundaries 31
  32. 32. Price Boundaries 32
  33. 33. Price Boundaries 33
  34. 34. Price Boundaries 34
  35. 35. Circuit Breaker 35
  36. 36. Circuit Breaker 36
  37. 37. Circuit Breaker 37
  38. 38. Circuit Breaker 38
  39. 39. Circuit Breaker 39
  40. 40. Facebook IPO • 18 May 2012, NASDAQ, One of the largest IPOs in history • Secondary trading is preceded by a designate Display Only Period (DOP) • Multi-component architecture that included Matching Engine, IPO Cross Application and Execution Application • At the end of the DOP, NASDAQ’s “IPO Cross Application” analyzes all of the buy and sell orders to determine the price at which the largest number of shares will trade and then NASDAQ’s matching engine matches buy and sell orders at that price. Usually takes 1-2 ms • NASDAQ allowed orders to be cancelled at any time up until the end of the DOP – including the very brief interval during which the IPO cross price is calculated. After calculation is completed the system performed orders validation check between ME and “IPO Cross Application”. If any of the orders were cancelled after the start of the cross, the system will have to repeat the calculation 40
  41. 41. Facebook IPO • Over 496k orders participated in the cross and its duration exceeded 20ms • Order cancellation arrived during this period and application had to repeat the calculation. Two more cancellations arrived during the second iteration and four more during the third • IPO Cross Application went into infinite loop at 11:05 • NASDAQ team switched off validation check on the secondary system and performed failover 25 minutes after the start of the loop • Unknown at that moment 38k orders submitted between 11:11 and 11:30 were stuck and had not participated in the uncross. It created another discrepancy, this time with Execution App and Members who were not able to receive confirmation for orders executed in the cross until 13:50 41
  42. 42. Принципы тестирования • Нельзя обнять необъятное • Раньше сядешь, раньше выйдешь • Все что нас не убивает делает нас сильнее • Примерами ничего ни доказать, ни опровергнуть нельзя • Беда не приходит одна • У кого щи жидки, а у кого бриллианты мелки • Дала не кайся, легла не ворочайся • Ничто не бывает без причины • Плохо танцующему - всегда брюки широки • Порядок бьет класс • Практика - критерий истины 42
  43. 43. Brokerage System 43
  44. 44. Knight Capital Events • 1 August 2012, USA • Knight Capital – one of the most successful HFT firms • Implemented changes related to Retail Liquidity Program в NYSE • SMARS – ultra-fast order router • Source code responsible for the legacy functionality PowerPeg • 212 parent orders, millions child orders • Accumulated loss – $460m or $170k/sec • Incorrectly configured risk systems • Deployment on 7 servers instead of 8… 44
  45. 45. Спасибо Вопросы и Ответы? 45

×