Debugging27/12/2011
Softjourn Inc. Debugging       Anatoliy Okhotnikov          Softjourn Inc.
Debugging
Про що буде йти мова Чому це важливо? Життєвий цикл. Наука відладки. Помилки Приклад відладки. Процес Розуміння помило...
Чому це важливо? Бенджамін Франклін: “У цьому житті немає  нічого визначеного крім смерті та податків” ...а тепер і поми...
Простий життевий цикл      Аналіз   Специфікації     Дизайн      Кодінг                  Відладка   Тестування    Установк...
Наука відладки   Відладка це мистецтво, поки що не    наука     Немає прописаного процесу     Інтуїтивна     Майстерні...
Aka “Адмірал”
Помилки (Bugs)   Що таке помилка (bug)?       Дефект що змушує систему        поводитись не ояікуваним чином Чому помил...
Приклад відладки                           Чекаємо   Інтернет               5 секунд?                 Сервер              ...
Приклад відладки Розгляд алгоритму балансування Розгляд влгоритму “захисту” Виявлення закономірності  поведінки Журнал...
Загальні часті помилки аналізу    Компонентне мислення    Орієнтування на вторинні ознаки    Ігнорування підказок    Н...
Ariane 5
Процес відладки  Розуміння   Ізоляція    Аналіз   Рішення  Тестування
Розуміння помилок   Зрозуміти     Очікувана поведінка     Поточна поведінка     Атрибути помилки   Атрибути помилки  ...
Поведінка (Type)
Розуміння: поведінка   Поведінка помилки     Часто називається ‘Тип’     Приклади         Падіння         Втрата дани...
Серйозність (Severity)
Розуміння: серйозність   Серйозність     Ефект сприйняття користувачем     Відносний атрибут         Відноситься   тіл...
Пріорітет (Priority)
Розуміння: пріорітет   Пріорітет     Атрибут управління проектом     Відносний атрибут         Відноситься тільки до м...
Розуміння: додаткові атрибути  Додаткові    атрибути   Здатність   відтворити     Впливає   на відладку та QA   Здатні...
Ізоляція
Що таке ізоляція? Процес зменьшення області помилки Область помилки: простір у якому стається  помилка Підтверджена опо...
Ізоляція: обовязки   Хто має цим займатись?     QA     Розробник/Відадник   Обовязки QA     Зрозумілий опис помилки  ...
Аналіз   Пошук     Синтаксичних помилок     Семантичних помилок Перевірка списку помилок  що часто зустрічаються Звер...
Рішення (Solution)
Рішення Вірішити поточну проблему Передивитись код на предмет таких  самих або схожих проблем у інших  місцях та виправи...
Тестування (Testing)
Тестування Протестуйте виправлення Протестуйте функціонал який ви  МОГЛИ зламати виправленням Протестуйте функціонал як...
Hip Shooting?
Неоптимальний процес Постріли   зi стегна             Розуміння             Ізоляція             Вирішення         Тестув...
Shooting in the dark?
Неоптимальний процес Постріли   у темряві             Розуміння             Вирішення         Тестування
Попередження (Prevention)
Попередження Попередження краще лікування Застосування процесу відладки у  розробці     Звуження області функціоналу (ф...
Посилання• http://www.slideshare.net/ksusanth/the-  science-of-debugging• http://books.google.com.ua/books/about/The_  Sci...
Питання та обговорення“Анатолій Охотніков”<aokhotnikov@softjourn.com>   Copyright © 2000-2011 Softjourn, Inc. All rights r...
Debug (ukr)
Upcoming SlideShare
Loading in...5
×

Debug (ukr)

304

Published on

 Чому це важливо?
 Життєвий цикл. Наука відладки. Помилки
 Приклад відладки. Процес
 Розуміння помилок. Поведінка. Серйозність.
Пріорітет. Додаткові атрибути
 Ізоляція. Аналіз. Рішення
 Тестування. Неоптимальний процес
 Попередження

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

  • Be the first to like this

No Downloads
Views
Total Views
304
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Debug (ukr)

  1. 1. Debugging27/12/2011
  2. 2. Softjourn Inc. Debugging Anatoliy Okhotnikov Softjourn Inc.
  3. 3. Debugging
  4. 4. Про що буде йти мова Чому це важливо? Життєвий цикл. Наука відладки. Помилки Приклад відладки. Процес Розуміння помилок. Поведінка. Серйозність. Пріорітет. Додаткові атрибути Ізоляція. Аналіз. Рішення Тестування. Неоптимальний процес Попередження Питання та обговорення
  5. 5. Чому це важливо? Бенджамін Франклін: “У цьому житті немає нічого визначеного крім смерті та податків” ...а тепер і помилок у програмному забезпеченні 50% бюджетів на обробку даних витрачають на виправлення програмних помилок 20% коштів виділених на супровід також витрачають на виправлення дефектів внесених при розробці Проблема “срібної кулі”
  6. 6. Простий життевий цикл Аналіз Специфікації Дизайн Кодінг Відладка Тестування Установка Підтримка
  7. 7. Наука відладки Відладка це мистецтво, поки що не наука  Немає прописаного процесу  Інтуїтивна  Майстерність вдосконалюються досвідом  Не можна впевнено спрогнозувати! Це спроба привести відладку ближче до науки
  8. 8. Aka “Адмірал”
  9. 9. Помилки (Bugs) Що таке помилка (bug)?  Дефект що змушує систему поводитись не ояікуваним чином Чому помилка називається bug? Відладка (debugging)  Процес приведення системи до поводження очікуваним чином Процес відладки:  З чого почати?
  10. 10. Приклад відладки Чекаємо Інтернет 5 секунд? Сервер Звітності Сервер (20 потоків 2 сек) балансування навантаження Сервер Сервер Звітності Звітності (20 потоків 2 сек)(20 потоків 2 сек) Сервер Сервер Звітності Звітності (20 потоків 2 сек) (20 потоків 2 сек)
  11. 11. Приклад відладки Розгляд алгоритму балансування Розгляд влгоритму “захисту” Виявлення закономірності поведінки Журнал мережі/запитів Замір часу виконання SELECT... Інструменти моніторингу
  12. 12. Загальні часті помилки аналізу  Компонентне мислення  Орієнтування на вторинні ознаки  Ігнорування підказок  Незрозумілі повідомлення про помилку
  13. 13. Ariane 5
  14. 14. Історичні приклади Ariane 5: 64bit => 16 bit ($7bn, 10y) Submarine & NATO virus Therac-25 (Therac-6, Therac-20) DEC PDP-11 ... Mars Climate Orbiter, Mars Polar Lander ($327,6m) – SM-FORCE f/s VS m/s AT&T 1990 (enhancement) - 9h & 1998 (CISCO update) - 26h
  15. 15. Процес відладки Розуміння Ізоляція Аналіз Рішення Тестування
  16. 16. Розуміння помилок Зрозуміти  Очікувана поведінка  Поточна поведінка  Атрибути помилки Атрибути помилки  Поведінка  Серйозність  Пріорітет
  17. 17. Поведінка (Type)
  18. 18. Розуміння: поведінка Поведінка помилки  Часто називається ‘Тип’  Приклади  Падіння  Втрата даних  Відмова обслуговування  Невідповідність функціоналу  Косметична (Орфографія, вирівнювання, і т.д.)  Абсолютний атрибут
  19. 19. Серйозність (Severity)
  20. 20. Розуміння: серйозність Серйозність  Ефект сприйняття користувачем  Відносний атрибут  Відноситься тільки до модуля  Може існувати пряма кореляція між поведінкою та серйозністю  Також корелює з пріорітетом
  21. 21. Пріорітет (Priority)
  22. 22. Розуміння: пріорітет Пріорітет  Атрибут управління проектом  Відносний атрибут  Відноситься тільки до модуля  Відноситься тільки до поточнох термінів (milestone)  Буде пряма кореляція між серйозністю та пріорітетом  Одна і та сама помилка може мати різний пріорітет в залежності від фази проекту
  23. 23. Розуміння: додаткові атрибути Додаткові атрибути Здатність відтворити Впливає на відладку та QA Здатність розвязати Впливає на відладку
  24. 24. Ізоляція
  25. 25. Що таке ізоляція? Процес зменьшення області помилки Область помилки: простір у якому стається помилка Підтверджена опорна точка - Affirmative Reference Point (ARP)  Опорна точка у якій ви впевнені!  Все працювало добре до вчорашнього вечора!  Не падає поки я ввожу значення < 1000  Припущення можуть будуватись на її основі  Помилка ізолюється на основі однієї або більше ARPів Ітеративне перевизначення області помилки
  26. 26. Ізоляція: обовязки Хто має цим займатись?  QA  Розробник/Відадник Обовязки QA  Зрозумілий опис помилки  Одна або більше ARPів  Цим вужча область помилки, тим краще! Обовязки розробника  Достатньо звузити область помилки
  27. 27. Аналіз Пошук  Синтаксичних помилок  Семантичних помилок Перевірка списку помилок що часто зустрічаються Зверніть увагу  Тут можуть бути тільки симптоми, проблема може бути деінде  Не робіть висновків занадто рано
  28. 28. Рішення (Solution)
  29. 29. Рішення Вірішити поточну проблему Передивитись код на предмет таких самих або схожих проблем у інших місцях та виправити їх Перевірити інші проблеми у області помилки Оновити список помилок що часто зустрічаються
  30. 30. Тестування (Testing)
  31. 31. Тестування Протестуйте виправлення Протестуйте функціонал який ви МОГЛИ зламати виправленням Протестуйте функціонал який ви НЕ МОГЛИ зламати виправленням Впевнеться що ця проблема не повернеться до вас знову QA: Протестуйте усі можливі випадки виникнення цієї помилки
  32. 32. Hip Shooting?
  33. 33. Неоптимальний процес Постріли зi стегна Розуміння Ізоляція Вирішення Тестування
  34. 34. Shooting in the dark?
  35. 35. Неоптимальний процес Постріли у темряві Розуміння Вирішення Тестування
  36. 36. Попередження (Prevention)
  37. 37. Попередження Попередження краще лікування Застосування процесу відладки у розробці  Звуження області функціоналу (фіч)  Використання ARP’ів при розробці фіч  Звірка фічі зі списком помилок що часто виникають  Тестування нових фіч, сусідніх фіч (регресії) перед оголошенням розробки завершеною Ви збережете більше часу та енергії!
  38. 38. Посилання• http://www.slideshare.net/ksusanth/the- science-of-debugging• http://books.google.com.ua/books/about/The_ Science_of_Debugging.html? id=9E9FAAAACAAJ Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  39. 39. Питання та обговорення“Анатолій Охотніков”<aokhotnikov@softjourn.com> Copyright © 2000-2011 Softjourn, Inc. All rights reserved

×