exactpro training: defects and feelings
DESCRIPTION
О чувствах и ошибках в пословицах и поговорках Иосиф Иткин, Кострома 31 января 2014TRANSCRIPT
О чувствах и ошибках
Иосиф Иткин, Кострома31 января 2014
Содержание
• Чувства
• Свинство
• Пословицы и поговорки
• Книжка
• Ошибки
2
Bugs Have Feelings Too
3
http://cartoontester.blogspot.ru/2010/03/bug-advocacy.html
Bugs Have Feelings Too
4
Bugs Have Feelings Too
5
Bugs Have Feelings Too
6
Bugs Have Feelings Too
7
Bugs Have Feelings Too
8
Bugs Have Feelings Too
9
Bugs Have Feelings Too
10
Bugs Have Feelings Too
11
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.
12
Writing Effective Defect Reports, Kelly Whitmill, IBM Printing Systems Division
https://www.stickyminds.com/sites/default/files/article/file/2012/XDD3655filelistfilename1_0.pdf
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
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
Пословицы
1. Краткость – сестра таланта: Говорим и пишем понятно и покороче.2. «Давайте не будем нервничать и неспеша во всем разберемся»: Это правда дефект
или неверно интерпретированное нами требование из документа, или «просто» сами забыли что-то подключить, и т.д.?
3. Смех без причины – признак известно чего: Только факты. Не надо сарказма, юмора и эмоций.
4. Берём быка за рога: Без ненужных предисловий – в чем именно проблема?5. Вот где собака зарыта: Что было сделано, чтобы понять что проблема именно здесь?6. За деревьями леса не увидели: Может быть наша проблема гораздо шире? 7. Спрятал концы в воду: Что необходимо сделать, чтобы вызвать проблему и
воспроизвести её (среда, шаги, условия)?8. Гроша ломаного не стоит: Почему плохо от этого будет конечному пользователю? Как
это сказывается на тестировании? «Продайте» найденный вами дефект. 9. Лучше один раз увидеть, чем сто раз услышать: Что разработчику нужно, чтобы понять
причину проблемы (логи, картинки, видео-файл, доступ, и т.д.) 10. Доверяй, но проверяй: Документация есть, где написано, как должно работать?
Процитируйте её и дайте на неё ссылку.
15
Patriot Software Bug
16
25 февраля 1991 года, Дахран, Саудовская АравияБатарея Патриот не стала сбивать ракету ScudПопадание в казарму привело к гибели 28 человекОколо 97 человек получили раненияРасследование обнаружило ошибку в ПО
Patriot Software Bug
17
Для хранения времени использовалось 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 Bug
18
Patriot Software Bug
19
Patriot Software Bug
20
Patriot Software Bug
21
25 февраля 1991 года, Дахран, Саудовская АравияСообщение об ошибке 11 февраляОтвет – это не баг а фичаWorkaround рестартовать каждые 8 часовРестарт 60 – 90 секундИсправление готово 16 февраляДоставка обновлений в Дахран
26 февраля
На что это похоже?
22
Latency Measurement Discrepancies
23
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
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
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
Limit Order Book
27
Limit Order Book
28
Limit Order Book
29
Limit Order Book
30
Price Boundaries
31
Price Boundaries
32
Price Boundaries
33
Price Boundaries
34
Circuit Breaker
35
Circuit Breaker
36
Circuit Breaker
37
Circuit Breaker
38
Circuit Breaker
39
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
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
Brokerage System
43
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
Вопросы и Ответы?