Баг

Материал из Неолурк
Перейти к навигации Перейти к поиску
ЛуркоморьеСтарое обсуждение
Топ багов, которые сделали видеоигры лучше
Тестировщик охотится за багами в готовом проекте

Баг (от bug — жук) — некая ошибка, которая встречается в определенном программном обеспечении. Бывают баги разной степени критичности, некоторые могут создавать лишь небольшие визуальные неудобства, иные же делают программу полностью неработоспособной. Разработка современного программного обеспечения во многом построена на постоянном тестировании каждого фрагмента кода, так как в огромной программе на миллионы строчек оказывается очень тяжело, а то и невозможно, определить конкретную проблему, если она будет обнаружена только спустя какое-то время после внесения.

Описание[править]

Понятие бага появилось еще во время отладки средств связи в XX веке, где багами (жуками) назывались определенные помехи при передаче сообщений (для решения которых были введены специальные методики кодирования, позволяющие исправлять одну ошибку). В середине XX века внутри тогда еще лампового компьютера были найдены останки бабочки, которая залетела в аппарат и вызвало короткое замыкание, о чем была сделана заметка, что был найден настоящий жук (real bug).

Как правило баги не являются критичными и их наличие не приводит к моментальному завершению исполнения программы. Тем не менее, некоторые баги могут сильно мешать корректной работе, искажать результаты (которые будут неполными или вообще неверными).

Баги можно разделить по степени серьезности:

  • критические — баги, которые полностью мешают исполнению какой-либо программы, работе сайта. Например, для участия на сайте необходимо пройти авторизацию, но форма авторизации настроена некорректно, и фактически зайти на сайт невозможно. Являются приоритетом для исправления техническим персоналом.
  • серьезные — например, не отображаются картинки в определенном интерфейсе, при этом сама программа работает и пользоваться ей в целом можно.
  • мелкие — не работает определенный второстепенный функционал, который не влияет на функции программы, например не показываются сведения о программе.
  • незначительные — некие мелкие ошибки, которые сложно даже и заметить. Исправляются в порядке очереди.

Есть распространенная фраза «это не баг, это фича», так говорится про ситуацию, когда определенный баг был в принципе не предусмотрен, но конкретный эффект этого бага оказался на самом деле полезен или понравился пользователям, так что вместо исправления ошибки было принято решение оставить все, как есть.

Важным принципом для борьбы с багами является постоянная интеграция, когда каждая измененная функция в программе прогоняется через многочисленные тесты, в которых на вход функции подается определенная информация, а вывод затем сравнивается с образцом — таким образом, если будет внедрен баг, то в ходе тестов будут показаны неверные результаты в конкретной функции, и программисты смогут оперативно локализовать его и затем исправить.