• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Debug (ukr)
 

Debug (ukr)

on

  • 469 views

 Чому це важливо? ...

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

Statistics

Views

Total Views
469
Views on SlideShare
469
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

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

    Debug (ukr) Debug (ukr) Presentation Transcript

    • Debugging27/12/2011
    • Softjourn Inc. Debugging Anatoliy Okhotnikov Softjourn Inc.
    • Debugging
    • Про що буде йти мова Чому це важливо? Життєвий цикл. Наука відладки. Помилки Приклад відладки. Процес Розуміння помилок. Поведінка. Серйозність. Пріорітет. Додаткові атрибути Ізоляція. Аналіз. Рішення Тестування. Неоптимальний процес Попередження Питання та обговорення
    • Чому це важливо? Бенджамін Франклін: “У цьому житті немає нічого визначеного крім смерті та податків” ...а тепер і помилок у програмному забезпеченні 50% бюджетів на обробку даних витрачають на виправлення програмних помилок 20% коштів виділених на супровід також витрачають на виправлення дефектів внесених при розробці Проблема “срібної кулі”
    • Простий життевий цикл Аналіз Специфікації Дизайн Кодінг Відладка Тестування Установка Підтримка
    • Наука відладки Відладка це мистецтво, поки що не наука  Немає прописаного процесу  Інтуїтивна  Майстерність вдосконалюються досвідом  Не можна впевнено спрогнозувати! Це спроба привести відладку ближче до науки
    • Aka “Адмірал”
    • Помилки (Bugs) Що таке помилка (bug)?  Дефект що змушує систему поводитись не ояікуваним чином Чому помилка називається bug? Відладка (debugging)  Процес приведення системи до поводження очікуваним чином Процес відладки:  З чого почати?
    • Приклад відладки Чекаємо Інтернет 5 секунд? Сервер Звітності Сервер (20 потоків 2 сек) балансування навантаження Сервер Сервер Звітності Звітності (20 потоків 2 сек)(20 потоків 2 сек) Сервер Сервер Звітності Звітності (20 потоків 2 сек) (20 потоків 2 сек)
    • Приклад відладки Розгляд алгоритму балансування Розгляд влгоритму “захисту” Виявлення закономірності поведінки Журнал мережі/запитів Замір часу виконання SELECT... Інструменти моніторингу
    • Загальні часті помилки аналізу  Компонентне мислення  Орієнтування на вторинні ознаки  Ігнорування підказок  Незрозумілі повідомлення про помилку
    • Ariane 5
    • Історичні приклади 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
    • Процес відладки Розуміння Ізоляція Аналіз Рішення Тестування
    • Розуміння помилок Зрозуміти  Очікувана поведінка  Поточна поведінка  Атрибути помилки Атрибути помилки  Поведінка  Серйозність  Пріорітет
    • Поведінка (Type)
    • Розуміння: поведінка Поведінка помилки  Часто називається ‘Тип’  Приклади  Падіння  Втрата даних  Відмова обслуговування  Невідповідність функціоналу  Косметична (Орфографія, вирівнювання, і т.д.)  Абсолютний атрибут
    • Серйозність (Severity)
    • Розуміння: серйозність Серйозність  Ефект сприйняття користувачем  Відносний атрибут  Відноситься тільки до модуля  Може існувати пряма кореляція між поведінкою та серйозністю  Також корелює з пріорітетом
    • Пріорітет (Priority)
    • Розуміння: пріорітет Пріорітет  Атрибут управління проектом  Відносний атрибут  Відноситься тільки до модуля  Відноситься тільки до поточнох термінів (milestone)  Буде пряма кореляція між серйозністю та пріорітетом  Одна і та сама помилка може мати різний пріорітет в залежності від фази проекту
    • Розуміння: додаткові атрибути Додаткові атрибути Здатність відтворити Впливає на відладку та QA Здатність розвязати Впливає на відладку
    • Ізоляція
    • Що таке ізоляція? Процес зменьшення області помилки Область помилки: простір у якому стається помилка Підтверджена опорна точка - Affirmative Reference Point (ARP)  Опорна точка у якій ви впевнені!  Все працювало добре до вчорашнього вечора!  Не падає поки я ввожу значення < 1000  Припущення можуть будуватись на її основі  Помилка ізолюється на основі однієї або більше ARPів Ітеративне перевизначення області помилки
    • Ізоляція: обовязки Хто має цим займатись?  QA  Розробник/Відадник Обовязки QA  Зрозумілий опис помилки  Одна або більше ARPів  Цим вужча область помилки, тим краще! Обовязки розробника  Достатньо звузити область помилки
    • Аналіз Пошук  Синтаксичних помилок  Семантичних помилок Перевірка списку помилок що часто зустрічаються Зверніть увагу  Тут можуть бути тільки симптоми, проблема може бути деінде  Не робіть висновків занадто рано
    • Рішення (Solution)
    • Рішення Вірішити поточну проблему Передивитись код на предмет таких самих або схожих проблем у інших місцях та виправити їх Перевірити інші проблеми у області помилки Оновити список помилок що часто зустрічаються
    • Тестування (Testing)
    • Тестування Протестуйте виправлення Протестуйте функціонал який ви МОГЛИ зламати виправленням Протестуйте функціонал який ви НЕ МОГЛИ зламати виправленням Впевнеться що ця проблема не повернеться до вас знову QA: Протестуйте усі можливі випадки виникнення цієї помилки
    • Hip Shooting?
    • Неоптимальний процес Постріли зi стегна Розуміння Ізоляція Вирішення Тестування
    • Shooting in the dark?
    • Неоптимальний процес Постріли у темряві Розуміння Вирішення Тестування
    • Попередження (Prevention)
    • Попередження Попередження краще лікування Застосування процесу відладки у розробці  Звуження області функціоналу (фіч)  Використання ARP’ів при розробці фіч  Звірка фічі зі списком помилок що часто виникають  Тестування нових фіч, сусідніх фіч (регресії) перед оголошенням розробки завершеною Ви збережете більше часу та енергії!
    • Посилання• 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
    • Питання та обговорення“Анатолій Охотніков”<aokhotnikov@softjourn.com> Copyright © 2000-2011 Softjourn, Inc. All rights reserved