нашли баг что это значит
Значение слова «баг»
Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок. Отчет, содержащий информацию о баге также называют отчетом об ошибке или отчетом о проблеме (англ. bug report). Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш-репортом (англ. crash report).
«Баги» локализуются и устраняются в процессе тестирования и отладки программы.
1. комп. жарг. ошибка в компьютерной программе ◆ В программе найден баг. ◆ Это не баг, это фича
2. комп. жарг. запись в багтрекере ◆ Пометил баг 419594 как WONTFIX. Если у кого есть какие-нибудь возражения/предложения, то рекомендую писать на странице обсуждения бага… «Форум Mozilla Россия», 2008 г.
Баг I
1. мужское имя ◆ Моего друга зовут Баг.
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: разбросить — это что-то нейтральное, положительное или отрицательное?
Не баг, а фича. Что это значит и откуда появилась эта фраза?
Велик и могуч язык программиста. Иногда этот язык наполнен таким количеством сленговых слов, что его трудно понять не то чтобы простым пользователям, а даже молодым и начинающим программистам. Сегодня мы разберем, что значит довольно популярное выражение : « Э то не баг, а это фича» и когда оно применяется.
«Не баг, а фича!»
Что так ое «баг» в программировании?
Это довольно частый вопрос, потому что слово «баг» не всегда связано с программированием. В программировании «баг» — это ошибка в программе или в приложении, которая приводит к тому, что программа или приложени е не работают как следует. Само слово «баг» происходит от английского слова «bug». По причине воздействия бага на программу мы получаем продукт, при работе которого происходит нежелательный конечный результат.
Баг имеет широкую градацию по способу собственного возникновения и влияния на конечный продукт. Сегодня мы не будем на этом останавливаться, отметим лишь, что все возникающие баги объединя ю т следующие свойства:
Что такое « фича » в программировании?
Фича в программировании — это некая новая функция или особенность программы, которая ранее не была о г оворена, но в результате не нарушает функциональность программы, а приносит какое-то дополнение в ее работу. Фича происходит от английского слова «feature». Ее цель — улучшить характеристики программы или просто привлечь внимание пользователей своей необычной функцией.
Понятие «фича» существует не только в программировании, оно уже часто употребляется и в обыденной жизни. К примеру, фичами в быту именуют нестандартные функции или дизайн какого-нибудь устройства.
Фича в программировании — это контролируемый результат, который создается специально руками программиста, чтобы улучшить разрабатываемую программу или просто удивить пользователей или заказчика. Фичи часто не нужно исправлять, потому что они очень органично приживаются с самой программой.
Мы можем предположить, что такое выражение может употребляться в качестве оправдания разработчика перед заказчиком, когда тот обнаружил баг в программе. Но часто это совсем не так.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Что такое баги, ворнинги и исключения в программировании
Разбираемся, какие бывают типы ошибок в программировании и как с ними справляться.
Многим известно слово баг (англ. bug — жук), которым называют ошибки в программах. Однако баг — это не совсем ошибка, а скорее неожиданный результат работы. Также есть и другие термины: ворнинг, исключение, утечка.
В этой статье мы на примере C++ разберём, что же значат все эти слова и как эти проблемы влияют на эффективность программы.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Ошибки в программировании
Словом «ошибка» (англ. error) можно описать любую проблему, но чаще всего под ним подразумевают синтаксическую ошибку — некорректно написанный код, который даже не скомпилируется:
Компилятор тут же скажет, что в коде ошибка и скорее всего не хватает запятой или точки с запятой.
Также существуют ворнинги (англ. warning — предупреждение). Они не являются ошибками, поэтому программа всё равно будет собрана. Вот пример:
Предупреждения не являются чем-то критичным, но могут иметь негативные последствия. Например, ваша программа будет использовать больше памяти, чем должна. Так как C++ нужен в том числе и для разработки высоконагруженных систем, этого допускать нельзя.
После восклицательного знака в треугольнике — количество предупреждений
Третий вид ошибок — ошибки сегментации (англ. segmentation fault, сокр. segfault, жарг. сегфолт). Они возникают, если программа пытается записать что-то в ячейку, недоступную для записи. Например:
Вот результат работы такого кода:
Баги в программах
Мы выяснили, что баг — это не совсем ошибка, а скорее неожиданное поведение программы или результат такого поведения. Баги могут быть чем-то забавным или неприятным. Например, как в играх:
Но они могут привести и к более серьёзным последствиям. Если неправильно спроектировать работу многопоточного приложения, то потоки будут постоянно опережать друг друга. Например, сообщение об ошибке из одного потока может опоздать на миллисекунду, из-за чего второй поток подумает, что никакой ошибки не было, и продолжит работу.
Если ваш код приводит в действие какое-нибудь потенциально опасное устройство, то ценой такой ошибки может быть чья-нибудь жизнь. Такое случилось с кодом для аппарата лучевой терапии Therac-25 — как минимум два человека умерло и ещё больше пострадали из-за превышения дозы радиации.
Исключения в программах
Также во время работы программы могут возникать ситуации, которые мешают корректной работе программы. Например, если вы просите пользователя ввести число, а он вводит строку.
Конвертировать введённое значение не всегда возможно, поэтому функция, которая занимается преобразованием, «выбрасывает» исключение (англ. exception). Это специальное сообщение говорит о том, что что-то идёт не так.
Если разработчик не описывает логику работы программы при вы выбрасывании исключения, то программа аварийно закрывается. Подробнее мы рассказали об этом в статье про ввод и конвертацию в C++.
Одно из самых известных исключений — переполнение стека (англ. stack overflow). В честь него даже назвали сайт, на котором программисты ищут помощь в решении своих проблем.
Компилятор C++ при этом может выдать ошибку сегментации, а не сообщение о переполнении стека:
Вот аналогичный код на языке C#:
Однако сообщение в этот раз более конкретное:
В обоих случаях программа завершается, потому что не может дальше корректно работать.
Похожая ситуация — переполнение буфера (англ. buffer overflow). Она происходит, когда записываемое значение больше выделенной области в памяти.
Обратите внимание, что мы получили предупреждение об арифметическом переполнении (англ. integer overflow):
Тем не менее программа скомпилировалась. Если же такая ситуация возникнет во время вычислений, то мы можем не получить предупреждения.
Арифметическое переполнение стало причиной одной из самых дорогих аварий, произошедших из-за ошибки в коде. В 1996 году ракета-носитель «Ариан-5» взорвалась на 40-й секунде полёта — потери оценивают в 360–500 миллионов долларов.
Как избежать всех этих ошибок
К сожалению, вручную всё это заметить и исправить не получится. Однако существуют различные инструменты и технологии, которые могут помочь.
Один из таких инструментов — отладчик. Он помогает контролировать ход работы программы, чтобы отслеживать разные показатели.
Второй, более эффективный метод — unit-тесты. Они представляют из себя набор описанных ситуаций для каждого компонента программы с указанием ожидаемого поведения.
Например, у вас есть функция sum (int a, int b), которая возвращает сумму двух чисел. Вы можете написать unit-тесты, чтобы проверять следующие ситуации:
Если какой-то из этих тестов не пройден, вы узнаете об этом и сможете всё исправить. Это намного быстрее, чем проверять всё вручную.
Заключение
Ошибок существует слишком много. При этом самые опасные тяжелее обнаружить, что только усугубляет ситуацию.
Если вы хотите научиться писать качественный код и находить в нём ошибки, вы можете записаться на наш курс по разработке на C++.
Нашли баг что это значит
Простыми словами о сложном
Краткое содержание
Вы узнаете, что это такое – баг, какие баги бывают на веб-сайтах и в целом в интернет-маркетинге, и чем они чреваты. Понятным языком сделаны акценты на принципиальные вопросы – существенные для понимания владельцами веб-ресурсов. Для бизнесменов эта информация особенно полезна, поскольку к коммерческим сайтам предъявляются повышенные требования, ибо речь о деньгах. В «Конкретике» выделены наиболее актуальные вопросы по работе с багами, и традиционно предложена помощь от «SeoTemple». В конце, как обычно, – ссылки на дополнительные материалы.
Оглавление
1. «Классические» баги
Баг – жаргонное слово, используемое в основном создателями и тестировщиками программного обеспечения.
Баг означает ошибку в программировании, приводящую к некорректной работе или вообще серьёзным сбоям программы, вплоть до её отказа. Но эти ошибки не всегда явные, а потому и называются «баги», что в переводе с английского (bug) означает насекомое, а в конкретном смысле – «жучки», т.е. скрытые дефекты.
Сам программист может не видеть такие дефекты (на то они и баги). Соответственно, большинство из них выявляется уже в процессе работы с программой. Поэтому перед выпуском программного продукта, например, в продажу, он обязательно проходит этап тестирования. Этот этап как раз и направлен на выявление багов. Затем ещё может проводиться «обкатка» программы на пользователях в так называемой бета-версии. На этом этапе – уже пользователями – выявляются дополнительные недочёты – баги. Наконец, даже после выпуска коммерческой версии программного продукта, в нём всё равно могут «вылезать» баги. Типичный пример – операционная система Windows. Помимо выхода её новых версий, к каждой версии Microsoft выпускает постоянные обновления, призванные в т.ч. устранить недочёты – «заткнуть дыры».
Но баги могут возникать не только вследствие изначально допущенных ошибок в программе. Программный продукт может со временем эволюционировать, например, дополняться новыми функциями. Этот процесс также связан с появлением багов, которые часто выявляются и исправляются уже в рабочей версии программы – по откликам от пользователей.
2. Баги сайта
В основном баги сайта можно разделить на три основные категории, каждая из которых имеет собственные особенности.
2.1. Программные баги сайта
Поскольку веб-сайт – это тоже программный продукт, для него также актуально явление баг.
Например, баги могут приводить к некорректной работе самого сайта: некорректным загрузке и отображению страниц в браузере, некорректным кодам ответа сервера, нерабочим скриптам и т.д. – может быть много всего. Некоторые баги на сайтах могут быть незаметны большинству пользователей, а некоторые существенно осложняют взаимодействие с сайтом. Например, вследствие ошибок программирования могут не работать или некорректно работать поиск на сайте, фильтр для выбора товаров, форма регистрации, некоторые функции в корзине интернет-магазина и проч. Также могут очень долго грузиться или вообще не отображаться картинки, не загружаться какие-то материалы, отсутствовать страницы по ссылкам (ошибка 404), присутствовать странные редиректы (перенаправления) пользователей на другие страницы и т.д. Могут быть допущены и ошибки в веб-верстке сайта (HTM-коде), приводящие к некорректному отображению страниц сайта во всех браузерах или отдельных из них (отсутствие кроссбраузерной верстки). То есть программных ошибок – классических багов – на сайтах встречается достаточно много.
2.2. SEO-баги
Кроме этого, на сайте могут быть ошибки, которые хоть и не относятся к типичным багам, но тем не менее значительно ухудшают качество сайта как для пользователя, так и, например, с точки зрения поисковой оптимизации (SEO).
В отношении SEO ошибки могут быть технического характера – по своей сути близкие к багам.
К таким ошибкам относятся, например, технические внутренние дубли сайта, возникающие вследствие некорректной работы CMS (багов в ней) и недочётов в файле robots.txt; технические внешние дубли, возникающие при неправильной склейке зеркал; неграмотное оформление метатегов, прочих участков HTML-кода и т.д. Вообще SEO-ошибок может быть очень много, и рассматривать (выявлять) их следует отдельно для каждого сайта. Сама по себе, это очень важная и комплексная работа – SEO-аудит сайта.
Да, большинство SEO-ошибок не являются классическими багами, т.е. это не ошибки программирования. Однако, они могут существенно осложнять продвижение сайта, а главное – носят неявный характер, т.е. в сути своей – баги. Об этих ошибках владелец сайта, как правило, не догадывается, да и квалифицированные SEO-специалисты выявляют их только в процессе комплексного аудита сайта, о чём говорилось выше. При этом SEO-недочеты (баги), ухудшая продвижение бизнес-сайта в поисковых системах – основном канале трафика, – снижают его продающую способность. То есть здесь речь уже о прямой потере денег (падении продаж).
2.3. Юзабилити-баги
Ошибки могут быть допущены и в отношении юзабилити, т.е. удобства работы пользователей с сайтом. Выше уже были перечислены некоторые технические ошибки такого рода: нерабочие поиск, фильтры, форма регистрации и проч. Но и само наполнение сайта – его контент в широком смысле: структура, навигационные возможности, например меню, – а также картинки, тексты, кнопки и ссылки на отдельных страницах и т.д., – во всех этих вещах могут быть допущены ошибки. Они могут существенно осложнять взаимодействие пользователей с сайтом (плохое юзабилити). И «фишка» в том, что самому веб-разработчику, а также владельцу сайта эти ошибки далеко не всегда очевидны. А между тем, подобные ошибки могут существенно ухудшать качество сайта, что особенно критично в отношении бизнес-ресурсов: падает их продающая способность. Более того, неудобство сайтов для пользователя видно и поисковым системам через так называемые поведенческие факторы (ПФ). Для поисковиков это сигнал к понижению ранжирования сайта в своей выдаче. И это дополнительный фактор, снижающий коммерческую эффективность веб-ресурса, о чём говорилось выше (см. раздел 2.2 «SEO-баги»).
3. Конкретика
Таким образом, классические ли это баги или нет, если речь о сайте, – все они критичны для его качества, а, следовательно, для его коммерческой эффективности, если это бизнес-сайт. И общая суть этих ошибок в том, что большинство из них являются неявными – известными только профессионалам.
Мы знаем об этих ошибках и заранее учитываем их при создании и продвижении сайтов для наших клиентов. Кроме того, наши специалисты сделают профессиональный аудит ваших сайтов и дадут конкретные рекомендации по исправлению багов, а также окажут практическую помощь – вытравят всех «насекомых»!
А ниже, собственно, конкретика:
Что такое баги и откуда они берутся?
Не секрет, что в компьютерных программах, особенно игровых, порой встречаются разнообразные баги, которые иногда мешают ими пользоваться, а иногда бывают даже полезны.
Но давайте разберемся, что такое баги, почему они возникают и какими бывают.
Слово «баг», как и подавляющее большинство терминов программирования, заимствовано из английского языка, в котором «bug» означает насекомое – клопа, жука и т.д. Считается, что впервые его использовали разработчики одного из первых компьютеров – американского Mark II во второй половине 40-х годов двадцатого столетия. Однако слово «баг» в значении «ошибка, неполадка, сбой» встречается задолго до этого – например, в рабочих дневниках знаменитого изобретателя Т.Эдисона.
В современном сленге программистов слово «баг» используется для обозначения мелких ошибок в компьютерных программах, приводящих к их некорректной работе. Для сложных современных игровых программ наличие багов является неизбежным, особенно в первые месяцы после выпуска игры в продажу.
В дальнейшем разработчики понемногу «вылавливают» и устраняют багги, как вредоносных насекомых, забравшихся в программу – с чем, собственно, и связано использование этого слова.
В игровых программах багами называют различные ошибки, допущенные программистами, из-за которых сюжет игры может развернуться неожиданным образом, а персонаж – получить несвойственные ему черты или способности.
Некоторые из багов мешают игрокам, приводя к гибели персонажей или временной потере их возможностей, другие, наоборот, могут помочь решить игровую задачу нестандартным образом, третьи ни на что особо не влияют, кроме красоты и зрелищности игры.
Процесс избавления от багов достаточно сложен, и одной только проверкой кодов, как правило, нельзя добиться обнаружения всех ошибок. На помощь программистам приходят тестировщики – люди, которые испытывают программы, чтобы обнаружить в них баги и сообщить о каждом из них программистам.
Документ, описывающий баг, называется баг репортом. По сути, каждый геймер, обнаружив баг, может составить баг репорт и отправить его в адрес разработчиков игры.
Для описания багов существует специальная формализованная таблица, которую заполняет тестировщик. Из сообщенных сведений программист должен узнать суть проблемы, найти место, которое нуждается в корректировке, и внести нужные исправления. Разумеется, для обычных пользователей это вряд ли возможно – им достаточно будет просто описать баг своими словами.
Как и в любом другом программном обеспечении, в социальной сети ВКонтакте могут встречаться различные баги, т.е. ошибки программного кода. Они могут приводить к различным неудобствам и помехам – например, искажать изображение на экране, «рассыпать» тексты, превращая их в набор бессмысленных значков и т.д. Некоторые баги предоставляют дополнительные возможности пользователям.
Так, известно, что редактировать свои записи можно только в течение суток после их опубликования. Некий пользователь под ником «Мгновения Грядущего» опубликовал точные «предсказания» событий 2014 года, датированные первым декабря 2013 и снабженные картинками произошедших событий – Олимпиады в Сочи, Крымской Весны и т.д.
Разумеется, этот пользователь ничего не предсказывал, а просто воспользовался багом, позволившим ему исправить дату своих записей на более раннюю.
Английское слово «feature», означающее характерную черту, особенность явления или объекта, достаточно широко используется геймерами. Нередко фичами называют баги, полезные для игрока и обеспечивающие его преимущество. В таких случаях игрок, отвечая на обвинение, что он пользуется багом, возражает, что у него не баг, а фича.
Администрация игровых порталов беспощадно борется с этим явлением: игрок, упорно выдающий выгодный ему баг за фичу, может быть наказан вплоть до бана.