Debug (ukr)

342
-1

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
342
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

×