Порой, бороздя просторы интернета, можно встретить слово "баг". Что оно обозначает и какова этимология данного слова? Узнать ответы на данные вопросы вы сможете в этой статье.

Баг — это что такое?

Слово "баг" произошло из английского языка. На английском bug (произносится как "баг") — это букашка или жучок. Употребляется данное слово в основном среди программистов, тестеров и геймеров. Но что оно обозначает?

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

Происхождение слова

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

Если верить легенде, то данный профессионализм появился еще в далеком 1945 году. Произошло это, когда ученые из проводили тестирование новой вычислительной машины под названием Mark II Aiken Relay Calculator. Устройство отказывалось работать, и причиной этому стал крохотный мотылек, который застрял между контактами. Насекомое извлекли из вычислительной машины и влепили в специальный технический дневник. Около мотылька находилась сопроводительная надпись «First actual case of bug being found», что переводится как "Первый случай в практике, когда был обнаружен жучок (баг)". После этой забавной истории слово "баг" и стало использоваться в значении "ошибка".

Также существует версия, что этот профессионализм появился задолго до испытаний вычислительного устройства. Некоторые считают, что термин "баг" обязан своим происхождением известному изобретателю По легенде, Эдисон искал в своем фонографе таракана, но его там не оказалось. Баг был в самом аппарате.

Очередная версия гласит, что слово "баг" появилось во времена Второй мировой войны. Тогда под данным термином подразумевали неполадки с радарной техникой.

Слово "баг" начало быстро распространяться. В 80-90-х годах данный профессионализм употребляли лишь программисты. С появлением интернета слово начало активно муссироваться. Сейчас же "баг" в своем лексиконе употребляют все, кто имеет хотя бы малейшее отношение к компьютерным технологиям (геймеры, обычные интернет-юзеры и т. д.). Поэтому сейчас его можно смело назвать частью интернет-сленга.

Игровые баги

Баги есть не только в программах, они довольно часто встречаются и в играх. Баг игры — это недоработка разработчиков, из-за которой игровой процесс идет не так, как задумывалось изначально. За всю историю гейм-индустрии выходило тысячи забагованных проектов. О самых известных и занимательных мы и поговорим в этом разделе.

Пожалуй, самым забагованным проектом за последние несколько лет можно назвать Assassin’s Creed: Unity. Проекты "Юбисофт" никогда не славились своей оптимизацией, но Unity — это настоящая энциклопедия багов. Порой персонажи находятся в очень странных и неестественных позах, проваливаются в текстурки, проходят через стены или же попросту зависают. Чего только стоит баг, который в считаные часы облетел весь интернет (у персонажей просто пропадали лица, из-за чего выглядели они довольно жутко). Даже сама "Юбисофт" признала свою ошибку, выпустила патч, который фиксит баги, и возместила покупателям ущерб.

Порой игроки воспринимают баги в качестве фичи, особенности игры. Так произошло с мегауспешной серией игр под названием Mortal Kombat. В первой части игры был баг, который перекрашивал Скорпиона (одного из основных персонажей игры) в красный цвет. При этом имя героя заменялось на сообщение об ошибке Error Macro. Игроки посчитали, что эта недоработка является задумкой разработчиков, а красный ниндзя — это дополнительный секретный персонаж. Эду Буну (создатель МК) понравилась данная затея, и в последующей части он добавил в игру этого героя под именем Эрмак (сокращение от той самой Error Macro).

Как уберечь себя от багов?

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

Но не всегда тестеры находят баги, и порой пара-тройка недоработок все же просачивается в финальную версию проекта. В таком случае вся надежда на пользователей, которые могут отправить специальное письмо с описанием ошибки — баг-репорт. Это поможет улучшить конечный продукт. Кроме того, крупные компании хорошо вознаграждают за нахождение багов в их продукции. К примеру, в качестве поощрения за нахождение значимых багов в своем браузере Google готова дать 15 тысяч долларов.

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

Шаги

Выявление глюков

    Обратите внимание на события игры, которые не должны были произойти. Например, меняется оружие в то время, когда вы думали, что держите в руках определенный тип оружия, меняется одежда, без вашего участия или изменение вашего местоположения, когда вы этого не ожидали. Возможно, гравитация перестала существовать, или ваши инструменты, оружие или объекты занимаются тем, чем не должны. Является ли это частью игры или нет - существуют несколько способов это прояснить:

    • Прочитайте краткий обзор игры. Если он достаточно подробный, то это может вам помочь.
    • Спросите друга, который играет в эту же игру. Возможно, они или она знает ответ на ваш вопрос.
    • Зайдите в интернет и проверьте форумы игры. Посмотрите, если кто-то еще сообщил об этом глюке. Или, сделайте поиск “Х глюк” в поисковой системе, если вы думаете, что это известный баг.
  1. В целом, узнайте и спросите о глюках. Проверьте специфические веб-сайты, форумы, странички или другую информацию, связанную с этой игрой. Возможно, вы найдете открытую тему по данному вопросу или руководства по поиску глюков в вашей игре.

    • На YouTube, очень часто, имеются видео о глюках в популярных играх.
    • Проверяйте дату сообщений о глюках. В то время, когда глюки могут просуществовать некоторое время, в реальных играх, после нескольких месяцев, они будут исправлены.
    • А также, прочитайте о последствиях использования глюка – в некоторых случаях, вы можете испортить вашу игру или потерять вещи.
    • Существуют некоторые веб-сайты, посвященные поиску игровых глюков. Некоторые из них включают забавные глюки, с которыми можно повеселиться, но не больше.
  2. Будьте осторожны с использованием глюков в онлайн или сетевых играх. В многопользовательских играх, использование глюков не поощряется и считается формой нарушения игрового процесса, и может нечестно повлиять на других игроков. Прочитайте условия вашей игры до того, как использовать какой-либо глюк. Возможно, вам лучше о нем сообщить, чем использовать.

    Типичные зоны и действия глюков

    Существуют более-менее стандартные зоны, где могут возникнуть глюки. Если вы пытаетесь их найти, то посмотрите на подсказки ниже.

    1. Утесы и выступы. Если вы можете забрать на выступ, тогда продолжайте двигаться и посмотрите до куда вы сможете дойти. Возможно, где-то там, программирование отстает по качеству, и вы сможете упасть или забраться туда, куда и не думали попасть.

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

      • Если вы замечаете, что оружие, инструмент или другой объект который вы держите, проходит через стену, то попробуйте и сами. Это может быть знаком присутствия глюка в стене или в зоне, уровне, карте или территории, на которой вы находитесь.
    2. Проверьте большие объекты. Камни и другие крупные декорации, очень часто, являются лучшим местом для поиска глюков. Иногда, разработчики игры ленятся и не устанавливают нужные барьеры.

      • Если вы подойдете к камню, чтобы попробовать глюк, то посмотрите на наиболее неясное место на нем. Самое “ненормальное” место, которое отличается от других, может быть ключом для прохождения через него.
      • Если вы новичок в освоении глюков, то для начала, попробуй те, что попроще, например, заберитесь на крышу, и не пытайтесь использовать более сложные ситуации, например, пройти через стену или что-нибудь подобное.
    3. Если вы найдете невидимый барьер, то попробуйте найти обходной путь. Барьеры такого рода, обычно, ведут на крыши или в другие места, в которые разработчики игры не планировали пускать игроков.

      Посмотрите на место, которое не доступно обычными способами. Спросите себя, “Интересно, а возможно ли туда забраться.” Подумайте о том, на что способен ваш игровой персонаж, чтобы добраться до желаемого места, например, ящики, веревки, ветки деревьев, прыгающие кенгуру – все, что угодно! Попробуйте все варианты – вы не узнаете до тех пор, пока не попробуете.

      • Большинство глюков появляются на территориях, которые не были предназначены для игры.
    4. Играйте в игру “не правильно”. Игровое тестирование происходит во время “правильной” игры, следуя сценарию с ожидаемым исходом. Вы можете это изменить и играть так, как не было задумано, например, подбираться к вещам другим способом или углом, пытаясь перевернуть обычные вещи или раздвигая границы, когда другие игроки и не подумали бы об этом.

      • Если смерть в игре вам не страшна, то возможно, вы найдете несколько забавных глюков!
    5. Попробуйте нажать на паузу. Может быть в действии, нажимая на паузу, вы можете спровоцировать или изменить некоторые вещи. Просто попробуйте это сделать. Этот ход, скорее всего, может сработать на старых играх.

    Повторный поиск глюка

    И так, вы решили, что найденный глюк был веселым и, теперь, желаете снова им воспользоваться…

    • Wii никогда не получает обновления, так что, если вы ищите неменяющийся глюк, то играйте на Wii. Тем не менее, большинство выступов в играх Wii - это пейзажи, и вы не сможете на них взобраться.
    • Научитесь прыгать точнее. Приземление на нужную цель – это ценное умение. Повторяющиеся прыжки (в стиле зайца), иногда, могут привести вас к одному из глюков.
    • Если препятствие недоступно, то попробуйте подняться по выступу, вместо попыток взобраться по центру.
    • Попробуйте подвинуть другого персонажа или животного на какой-нибудь объект и, потом, пройдите через этого человека или зверя. Используйте персонажа или животного для того, чтобы взобраться на что-нибудь, и для других целей.
    • Большинство объектов – это пейзажи. Если вы попробуете спрыгнуть с крыши здания на другую сторону, то скорее всего, вы начнете через него падать.
    • Используйте специальные прыжки, когда пытаетесь прыгнуть дальше, чем обычно. Если вы пытаетесь осуществить прыжок с разбегом на какое-нибудь место, то, после каждого прыжка, позвольте ему перезарядиться и проверяйте – помогает ли вам это.

Ни одну игру нельзя назвать законченной до прохождения детальной проверки. Если этот важный шаг был проигнорирован разработчиками, то полученный продукт будет, скорее всего, напоминать третью часть игры Готика, в которую играть до выхода нескольких патчей было просто невозможно.

Инструкция

Начните с базового теста, чтобы найти баги в игре. Он должен отобразить работоспособность игрового движка. Его, как правило, нужно производить на ранних стадиях разработки игры. Эта проверка подразумевает изучение работоспособности игры, как таковой, т.е. независимо от любых действий игрока. Суть теста в следующем: обнаружить ошибки, которые приводят к «выбрасыванию из игры». Подобные ошибки нужно обнаруживать в первую очередь, поскольку именно они отбивают всякое желание продолжать прохождение игры.

Проверьте игру на нескольких машинах с различными параметрами. Важно, чтобы на этих компьютера были различные видеокарты, такие как GeForce и Radeon. Также важно тестировать игру на различных версиях операционной системы, чтобы адаптировать ее к любым условиям.

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

Если какие-то из них не нужны или дублируют друг друга, то нужно их пересматривать, додумывать и в случае чего дорабатывать. Также стоит обратить внимание на проходимость игры. Даже на самом сложном уровне должна быть возможность пройти игру.

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

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

Баги, или ошибки системы, являются для операционных систем семейства Windows довольно привычным явлением. И если большинство из них являются временными и не доставляют серьезных неудобств, то некоторые могут самым негативным образом сказываться на работоспособности компьютера.

Инструкция

Для просмотра ошибок системы откройте: «Пуск» - «Панель управления» - «Администрирование» - «Просмотр событий». У вас будет возможность просмотреть разделы: «Приложение», «Безопасность» и «Система», в которых будут записаны все сообщения об ошибках.

Если при попытке открыть какой-либо из журналов появляется сообщение о невозможности просмотра, на компьютере, скорее всего, отключена служба «Журнал событий». Чтобы запустить ее, откройте: «Панель управления» - «Администрирование» - «Службы». Дважды кликните мышкой службу «Журнал событий», в открывшемся окне выберите тип запуска – «Автоматически», нажмите кнопку «Применить». После этого нажмите ставшую активной кнопку «Старт».

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

Как восстановить систему при наличии тех или иных ошибок? На практике самым надежным вариантом является переустановка Windows поверх уже установленной системы в варианте «Обновление». В этом случае у вас сохраняются все установленные программы и настройки, при этом обновленная система избавляется от большого количества накопившихся ошибок. Подобную переустановку не стоит делать слишком часто, но порой она становится самым быстрым способом восстановления нормальной работы компьютера.

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

Не забывайте время от времени дефрагментировать диск, на котором установлена операционная система. Высокая степень дефрагментации данных существенно замедляет работу компьютера. Для дефрагментации откройте: «Пуск» - «Все программы» - «Стандартные» - «Служебные» - «Дефрагментация диска».

Итак, дано: проект по разработке интерактивного онлайн тренажера, стадия продукта - открытая бета.
Задача: быстро и как можно дешевле найти мешающие релизу баги, исправить их и сдать продукт клиенту.

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

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

Опыт оказался весьма позитивным, как для проекта, так и для тестировщиков. Для тестирования использовалось 2 сценария, оно проходило в выходные, и в понедельник я уже имел 84 бага (3 категории A, 15 - B, 62 - С и 4 - D), оформленных согласно требованиям. После исправления всех этих багов продукт был зарелизен.

Кстати, когда оформлял задание для фрилансеров, не смог найти в интернете подходящее описание категорий ошибок, поэтому составил сам. Возможно, кому-то оно будет полезно:

  • Категория А (I). Наличие ошибок данной категории блокирует для пользователя доступ к основной функциональности продукта. Это могут быть ошибки связанные с регистрацией, авторизацией и / или ошибки, возникновение которых не дает пользователю продвинуться дальше по курсу независимо от его текущего состояния.
  • Категория B (II). Ограничивают доступ к некоторой функциональности, не влияющей на завершение прохождения продукта или не дают пользователю продвинуться по курсу, в зависимости от предыдущих предпринятых им шагов, заставляя его начать какую-то часть курса проходить заново.
  • Категория C (III). Ошибки данной категории напрямую не влияют на процесс использования продукта, но ухудшают целостность его восприятия или впечатления от процесса. Сюда входят ошибки верстки, неверное отображение и расположение графических элементов, замедленная реакция контроллов и т.п.
  • Категория D (IV). Ошибки этой категории по сути не являются ошибками. Категория введена для того, чтобы ошибке можно было присвоить ее, в случае, если она связана с функциональностью, визуализацией и прочими свойствами продукта, представление о реализации которых у тестера отличается от того, что предполагалось реализовать.
Если у кого-то возникнут вопросы по содержанию поста, с удовольствием отвечу.

Спасибо за внимание!

Привет баклан.

Чё, руки чешутся? Сломать вебсервер охота, потому что там до хрена сайтов противоречащих твоей кул-хацкерской идеологии? Не суть. Но для начала надо войти в историю и узнать о багах, местах старых багов. Ведь зная суть этих багов, ты сможешь откапать новые баги...
А это уже угроза, так сказать, сила. В этом одна из идей хакера - ПОИСК.
Ну, с чего б начать то? Ну, во-первых, конечно же, CGI баги.

О них и поговорим. Любимая атака (и самая лёгкая) это атака на подтверждения ввода. Суть атаки том, что кривые программисты написали своё детище так, что CGI сценарий неадекватно реагирует на вводимые в него данные. После чего этот сценарий делает не то, что от него хотел разработчик, а то, что хотел злобный взломщик:). Вот, например в IIS есть уязвимость называемая MDAC
RDS. Компонент RDS (удалённый сервис данных) и есть уязвимый объект в
MDAC. А если быть точнее, то этот компонент RDS Data Factory. Если админ - лошпекус, то он оставил настройки по умолчанию, где разрешено исполнение удалённой команды на сервере IIS. Команда выполняется обычно от пользователя
SYSTEM. Теперь о том, как эту багу юзать. На сайте
www.securityfocus.com есть сценарий на языке Перл, который позволяет послать и исполнить любую команду базе данных - btcustmr.mbr (экспериментальная база данных). Где-то я видел експлойт на Дельфи. Фишка заключается в добавлении к SQL запросу строки " | shell(\"$command\") | " . Обнаружив команду оболочки, MDAC выполнит команду в переменой
$command. Да кстати, для любителей посканировать на CGI баги, если вы обнаружите библиотеку "msadc.dll", значит вполне вероятно, что система уязвима.

Не отходя далеко от IIS, следующий баг, обнаруженный известной группой
eEye: В Microsoft IIS 4.0 хреновая проверка в именах файлов.IDC .HTR и.STM. Как юзать Баг???
Хе... пошлю я тебя на... на www.technotronic.com , там ищи прогу под эротичным
названием -Iishack. Все что надо указать это - адрес жертвы, адрес, где лежит твоя прога + путь к проге...
Большинство взломщиков, таким образом, закачивают на испытуемый сервак другую прогу:
Getem.exe. Это Троян, который распаковывает pwdump.exe и запускает
netcat. Pwdump - выводит дамп SAM, а неткат открывает 25 порт и даёт через него доступ к
cmd.exe. То есть сначала ты коннектишься к 25 порту, а затем запускаешь pwdump и смотришь зашифрованные пароли, которые можно протестить L0pht crack"ом, который попробует перебрать пароли.

Далее я расскажу про неправильное использование скрытых тегов. Читал я в одной
книжке, что некоторые магазины используют скрытые теги для присваивания цены товару!
Поясняю: input type=hidden, а value="123". А что тебе помешает поменять value??? Правильно
- совесть! Введи в поисковик (Altavista) "type=hidden
name=price"-а дальше только удача:). Ту я описал лишь два с половиной бага, известных бага. Как искать эти баги? Три пути.
Либо пойти в поисковик и ввести там что-то типа: "url: "_vti_bin" " а далее тупо перебирать выведенные сайты на iis unicode. Второй путь: есть сайт, который надо наказать, бери сканер
и скань на наличие багов, к слову есть хороший CGI сканер на
www.xp-team.com с описаниями от
www.gingroup.ru и небольшой базой експлойтов. Третий путь, путь истинных хакеров, это путь исследования, попытайся переполнить буфер запроса... короче попытайся применить все известные баги. Но будь разумен... не надо пытаться выполнить iis unicode под Apache, ну ты меня понял:).

Всё, я пошёл, мне пора пнуть кота... тьфу ты... у меня ж нет кота... ну пну
ещё кого-нить. Удачного пин...то есть хака, твой Дон Хуан.