JavaRush /Курси /Модуль 1: Python Core /Відлагодження програми

Відлагодження програми

Модуль 1: Python Core
Рівень 10 , Лекція 7
Відкрита

8.1 Виникнення багів

Відлагодження програмного забезпечення — це процес пошуку та виправлення помилок або багів в програмі. Цей процес є найцікавішою і важливою частиною розробки програмного забезпечення і допомагає забезпечити правильну роботу програм.

Історія виникнення терміна "bug"

Термін "bug" (помилка) в контексті комп'ютерних програм вперше почав використовуватися в 1940-х роках. Хоча сама концепція "багів" існувала і до появи комп'ютерів, позначаючи механічні несправності в різних пристроях.

Перший задокументований випадок використання терміна "bug" в комп'ютерній техніці був з командою, яка працювала на комп'ютері Mark II в Гарвардському університеті в 1947(!) році. Команда виявила, що одне з реле машини не працювало через те, що в нього потрапила міль. Вони видалили комаху і записали це в журнал як "перший реальний випадок виявлення комахи" (literal bug).

Хоча це і не був перший випадок використання терміна "bug" для позначення помилки, цей інцидент став відомим і сприяв популяризації терміна «bug».

Відлагодження програми

Відлагодження — це процес пошуку, діагностики і виправлення багів в програмному забезпеченні. Процес відлагодження включає кілька етапів:

  • Виявлення помилки: Визначення симптомів, що вказують на наявність помилки в програмі.
  • Відтворення помилки: Створення умов, при яких помилка проявляється знову, щоб краще зрозуміти її природу.
  • Діагностика проблеми: Використання різних інструментів і методів для аналізу коду і пошуку причини помилки.
  • Виправлення помилки: Внесення змін в код для усунення помилки.
  • Тестування: Перевірка виправлення і тестування програми, щоб переконатися, що помилка усунена і не з'явилися нові проблеми.

Тож баг (bug) — це загальна назва для будь-яких помилок в програмах, а дебаг(de-bug) — це процес виявлення і усунення цих самих помилок.

8.2 Інструменти і методи відлагодження

Логування

Додавання логів в код програми дозволяє відслідковувати її виконання і отримувати інформацію про стан змінних і операцій в різних точках виконання програми. Для логування в Python є чудова бібліотека — logging.

Приклад використання логування:


import logging

# Налаштування логування для виводу відлагоджувальної інформації
logging.basicConfig(level=logging.DEBUG)
            

def divide(a, b):
    # Логуємо спробу ділення
    logging.debug(f"Ділення {a} на {b}")
    if b == 0:
        # Логуємо помилку, якщо b дорівнює 0
        logging.error("Спроба ділення на нуль!")
        return None

    # Виконуємо ділення, якщо b не дорівнює 0
    return a / b
            
result = divide(10, 2)
print(result)

Використання відлагоджувачів (Debuggers)

Відлагоджувачі — це інструменти, які дозволяють розробникам виконувати програму покроково, встановлювати точки зупинки (breakpoints), перевіряти значення змінних і змінювати їх під час виконання програми.

Популярні відлагоджувачі:

  1. GDB: GNU Debugger для C, C++ та інших мов програмування.
  2. PDB: Вбудований відлагоджувач Python.
  3. Visual Studio Debugger: Відлагоджувач, вбудований у Microsoft Visual Studio.
  4. PyCharm Debugger: Відлагоджувач, вбудований в IDE PyCharm для Python.

Приклад використання PDB


import pdb

def faulty_function(a, b):
    pdb.set_trace()  # Встановлення точки зупинки
    result = a / b
    return result
            
faulty_function(10, 0)

Коли програма досягає pdb.set_trace(), вона зупиняється, і ви можете виконувати команди відлагоджувача, такі як next (наступний крок), print (вивід значення змінної) та інші.

Ми з вами будемо вивчати дебаг програм на прикладі відлагоджувача вбудованого в PyCharm.

8.3 Використання debug

В загальному вигляді debug включає активне використання інструментів відлагодження і практик для виявлення і усунення помилок.

Встановлення точок зупинки: Встановіть точки зупинки в коді, щоб зупинити виконання програми в цікавих для вас місцях.

Покрокове виконання: Виконуйте програму крок за кроком, спостерігаючи за змінами в стані програми і значеннях змінних.

Аналіз змінних: Вивчайте значення змінних і виразів на різних стадіях виконання програми, щоб виявити некоректні дані або логічні помилки.

Виправлення помилок: Внесіть зміни в код для усунення знайдених помилок.

Повторне тестування: Після виправлення помилок проведіть тестування програми, щоб переконатися, що помилка усунена і не виникли нові проблеми.

Виглядає просто, чи не так? Ось на наступній лекції ми детально по всіх етапах і пройдемося :)

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ