Що таке баг

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

Баг (від англ. bug — «жук, комаха») — це помилка в програмі, через яку вона поводиться неочікувано. Наслідки бувають від дрібних (одрук у меню) до серйозних (часті вильоти, втрата даних, вразливість, через яку можуть зламати систему).

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

Як це працює

Слово «баг» на позначення технічної несправності вживали ще інженери XIX століття, зокрема Томас Едісон у 1878 році. Найвідоміша історія пов'язана з 9 вересня 1947 року: оператори обчислювальної машини Harvard Mark II з команди Грейс Гоппер знайшли в реле міль і вклеїли її в робочий журнал з написом «First actual case of bug being found» — «перший справжній випадок знаходження жука». Жарт працював саме тому, що слово вже було інженерним жаргоном.

Баги бувають різних видів: синтаксичні (код не відповідає правилам мови), логічні (програма працює, але результат неправильний, наприклад нескінченний цикл), помилки роботи з ресурсами (витоки пам'яті), помилки паралельної роботи (взаємні блокування, «стан гонитви»), арифметичні (ділення на нуль, переповнення).

Пошук і виправлення помилок називають налагодженням (debugging). Знайдені баги реєструють у системі відстеження, оцінюють за серйозністю й пріоритетом і виправляють в оновленнях.

Спершу перевірте, чи помилка повторюється: перезапустіть застосунок, оновіть його до останньої версії, перезавантажте пристрій. Якщо баг лишається, повідомте розробникам. Корисний звіт (баг-репорт) містить кроки, які ви виконували, очікуваний і фактичний результат, модель пристрою, версію системи й застосунку, скриншот або запис екрана.

Багато компаній мають програми bug bounty — винагороди дослідникам, які знайшли вразливість безпеки й відповідально повідомили про неї розробникам. Публікувати спосіб використання такої вразливості до виправлення неетично і може бути незаконно.

У розмовній мові від слова «баг» утворилися «багований» (з помилками) і «багфікс» (виправлення помилки), а жартівлива фраза розробників «це не баг, а фіча» означає, що дивна поведінка програми нібито задумана.

Часті питання

Баг це що простими словами?
Це помилка в програмі, через яку вона працює неправильно: зависає, вилітає, рахує не так або показує не те. В іграх — будь-яка поведінка, не передбачена розробниками.
Чому помилку в програмі називають багом?
Англійське bug («жук») вживали щодо технічних несправностей ще в XIX столітті. Популярності слову додала історія 1947 року, коли в реле комп'ютера Harvard Mark II знайшли міль і вклеїли її в робочий журнал.
Чим баг відрізняється від глюка?
«Баг» — помилка в коді програми, яку можна відтворити й виправити. «Глюк» — розмовне слово для будь-якого збою, зокрема випадкового чи апаратного, причина якого не завжди в програмі.
Що таке баг-репорт?
Це звіт про помилку для розробників: кроки для відтворення, очікуваний і фактичний результат, дані про пристрій і версію програми, скриншоти. Чим точніший звіт, тим швидше баг виправлять.

Джерела: Wikipedia — Software bug.

Ще з розділу «Програми і дані»