Каждая программа должна работать корректно, то есть делать то что нужно. Как можно понять из названия, функциональные баги — это когда программа не делает нужное.
Могут быть самыми разнообразными, начиная с бага в простой нечасто используемой функции, типа неработающей кнопки “Связаться” где-то в углу, и до полной неработоспособности всего приложения или сайта.
Еще пример: функция кнопки “Сохранить” заключается в том, что она сохраняет внесенные изменения в документе. Если изменения при нажатии кнопки не сохраняются, это функциональный баг.
Поиском багов этого типа занимается функциональное тестирование — отдельная важная сфера в QA (мини-гайд по ссылке).
Синтаксические баги
Ошибка в коде программы. Вероятно, самая частая ошибка, статистически. Случается обычно по невнимательности. Заключается, например, в неправильном/пропущенном символе, неправильно прописанной команде, или пропущенной скобке.
Логические ошибки
Коварная ошибка, труднее выявляемая. Приложение выдает неправильный вывод, или вообще падает.
Skyrim ТОП 5 САМЫХ ЛУЧШИХ БАГОВ
Логические дефекты это например бесконечные циклы или некорректные переходы, допущенные разработчиком по неопытности или незнанию синтаксиса, вызывающие сложно определяемые ошибки в user flow (“маршруте пользователя по приложению” в процессе пользования им).
Бесконечные циклы — больное место тестировщика, так же как утечки памяти, проблемы с типами данных во многих языках, с компилятором в С++ или сборщиком мусора в Java. Несоблюдение хороших практик в программировании и недостаток опыта у разработчиков добавляют задач QA-отделу.
Еще примеры: переменной присвоено некорректное значение; деление чисел вместо умножения, и т.п.
Проблемы производительности
Такие ошибки влияют на скорость, на стабильность, на время отклика, или на потребление ресурсов, из-за чего их находят довольно быстро. Чаще их находят сами разработчики, а не тестировщики. Очень распространенный тип багов.
Ошибки вычислений
Когда приложение выдает некорректное значение пользователю или другой программе.
- Когда в приложении применен некорректный, неподходящий алгоритм
- Несоответствие типа данных
Уязвимости в безопасности
Дефекты в системе безопасности, видимо, наиболее опасные из тех, с которыми сталкивается junior QA. Они “компроментируют” весь проект, всю компанию, и разумеется, QA-команду, если она их пропустила.
Баг в безопасности ставит продукт, компанию, и данные клиента под риск потери очень больших денег. Такие ошибки обходятся дороже всего, в плане денег и деловой репутации, что может быть еще хуже.
Самыми частыми, статистически, ошибками безопасности являются: ошибки шифрования; подверженность SQL-инъекциям; XSS-уязвимости; переполнения буфера; логические ошибки в подсистеме безопасности; некорректная аутентификация.
Баги уровня модуля
На уровне отдельного модуля. Принято, чтобы разработчики сами делали юнит-тестирование модулей (им это сделать проще, т.к. они лучше понимают свой код), но в принципе к этому могут привлекать и QA.
Скайрим Топ 3 бага на бесконечное золото. Как разбогатеть в Скайриме
Итак, в процессе юнит-тестирования находят ошибки в модулях: чаще всего это (случайные) ошибки вычислений и ошибки в логике, обычно они заметные и легко вылавливаемые. Такие баги хорошо изолируются (потому что они влияют только на небольшую часть кода), и быстро устраняются.
Интеграционные баги
Это ошибки взаимодействия между несколькими подсистемами приложения. Из-за того, что подсистемы чаще написаны разными разработчиками, командами и даже компаниями, интеграционные баги бывают достаточно сложными.
Становятся заметны они, когда например два (или больше) модулей кода ошибочно взаимодействуют, из-за программной несовместимости между ними. Такие баги довольно сложно определить и пофиксить, разработчикам, как правило, приходится переписывать довольно большие объемы кода.
Статистически, это бывают ошибки переполнения памяти, и некорректные взаимодействия между подсистемой пользовательского интерфейса и базами данных.
Юзабилити-баги
Такие дефекты не позволяют пользователю легко и приятно работать с приложением. Например, это проблемы с разметкой контента, его недоступностью, или например чрезмерно усложненная процедура регистрации/входа. К тестированию юзабилити привлекают и разработчиков и тестировщиков, а также, конечно, UX-дизайнеров. Проверяется соблюдение соответствующих гайдлайнов (если они соблюдаются с самого начала, эти ошибки можно предотвратить).
Баги потока управления (Control Flow)
Ошибки Control Flow (потока управления, путей выполнения программы) мешают ей корректно переходить к выполнению следующих задач, то есть корректно “передавать управление”, что стопорит весь workflow компании. Обычно это “мертвый код” (отсутствует вход), или “бесконечный цикл” (отсутствует выход).
Пример: в опроснике пользователь нажимает “Сохранить”, предполагается переход к концу опросника/теста, а перехода к следующей странице не происходит.
Проблемы совместимости (Compatibility issues)
Приложение оказывается несовместимым с неким устройством, целым классом устройств какого-то производителя, или операционной системой. Такие ошибки обычно проявляются довольно поздно в цикле тестирования. Во избежание, проводят тестирование совместимости с наиболее распространенными устройствами (смартфонами) и ОС.
Итак, уже примерно знаем, ЧТО искать, постараемся понять, КАК искать.
Как научиться искать баги
“Быстрая проверка” на реальных устройствах и в браузерах
Трудно идет тестирование, если у тестировщика нет сформулированных требований к софту — потому что трудно написать тестовые сценарии. В такой ситуации можно “атаковать систему”, вводя неправильные значения во все возможные поля. Если баги есть, они обычно проявляются.
Или, оставлять некоторые поля пустыми, перегружать интерфейс запросами, вводить числа там где предполагается ввод букв и наоборот, превышать лимит символов, вводить запрещенные символы, многократно вводить неправильные пароли, и так далее.
Это техника экспресс-анализа системы, позволяющая опытному тестировщику быстро оценить устойчивость системы к багам и примерно количество их, анализируя сообщения об ошибках и характер проявляемых ошибок.
Даже если таким образом будет найдено сравнительно мало багов, логично предположить, что все-таки есть проблемы в основной части функциональности. Отсутствие багов при “экспресс-анализе” (“quick attack”) обычно показывает, что основная часть функциональности более-менее в порядке.
Такая “быстрая атака” должна выполняться в стандартном пользовательском окружении — как можно более близком к тем условиям, в которых будет работать конечный пользователь.
Внимание тестовому окружению
Обычно у тестировщиков есть время на подготовку сценариев, прописывание таймлайна и настройку процедур. А также на подготовку тестовой инфраструктуры, или тестового окружения.
Из-за проблем с плохо подготовленным тестовым окружением возникают задержки в получении результатов тестирования. Проявляются баги, вызванные именно тестовым окружением, а не самим софтом. Мало что так раздражает, как некорректно работающее окружение.
Например, тестировщик нашел и отрепортил баг, а когда разработчик проверил его, в коде проблем не нашел, потому что проблема была с окружением. От этого возникает задержка.
Проблемы с окружением часто вызывают нестабильность тестов: один и тот же тест при запуске каждый раз выдает разный результат. Это не позволяет воспроизвести баг.
Тщательное исследование
Перед началом тестирования нужно внимательно изучить приложение или тестируемый модуль.
Подготовить достаточно тестовых данных. Этот датасет должен включать и базы данных, если тестируется приложение, использующее базы данных (а это почти все приложения сейчас).
Полезно вставлять в код своих автотестов указатели (если язык это поддерживает), для облегчения поиска нужных блоков. А также точки останова (брейкпойнты, контрольные точки), останавливающие выполнение в какой-то точке, чтобы точнее определить “место бага”.
Принцип Парето
Согласно этому принципу, 20% усилий дают 80% результата.
А 80% усилий дают лишь 20% результата.
Применительно к QA-индустрии, принцип Парето гласит, что 80% багов сосредоточены в 20% модулей. (Необязательно такое точное соотношение, но в целом). По принципу Парето, большинство багов затаились в одном-двух модулях (или даже еще меньшей части кода).
Если всерьез взяться за эти модули и вычистить из них баги, можно считать работу на 80% сделанной.
Четкие цели
Тестировщик должен учитывать стандарты и лучшие практики и придерживаться их, это даст понимание, какие ошибки искать тщательнее и в первую очередь. Должен понимать логику действий конечного пользователя. Что пользователь ожидает от этого софта? Какой его user experience? Какой функциональности ожидает?
На какие баги вообще не обратит внимания, а какие заставят отказаться от приложения?
Четче изложенные цели тестирования помогут писать хорошие тестовые сценарии и тест-кейсы. Если главная функция, “главная потребность пользователя” уточнена и дан приоритет, тестировщик может сначала протестировать эту функцию, а остальные отложить, или поручить стажерам.
Серьезность и приоритет
По серьезности (Severity)
- Блокирующий баг, так называемый “блокер”, который делает абсолютно невозможной дальнейшую работу с приложением. Срочно исправляют.
- Критический баг. “Критикал”. Некорректно работает все приложение, или его важнейший модуль. Тестирование остальных, менее существенных багов прекращается, все силы бросают на фикс такого бага. Сюда входит, например, кейс, когда приложение выдает ошибку сервера при попытке входа в приложение.
- Существенный. “Мажор”. Влияет на ключевую функцию, и приложение ведет себя с отклонением от прописанных требований. Например, email-провайдер не дает добавить больше одного адреса в поле получателя.
- Средней серьезности. “Минор”. Когда не очень важная функция не ведет себя соответственно требованиям. Например, ссылка в “Условиях использования” продукта ведет в никуда.
(Перечисленные выше баги коротко обозначаются S1, S2, S3, S4 по серьезности.)
- Низкой серьезности. “Тривиал”. Обычно это небольшие дефекты пользовательского интерфейса. Например, кнопки, которые должны быть одинаковыми, немножко отличаются по цвету и размеру.
По приоритету
Срочные. (Топ-приоритет, ургентный, безотлагательный). Должны быть устранены в 24 часа после получения репорта. Обычно это блокеры и критикалы. Но такой приоритет могут получить и дефекты с низкой серьезностью. Например, опечатка в названии компании на главной странице сайта никак не ухудшает функциональность, однако имеет сильнейшее негативное влияние на имидж компании, поэтому это срочный баг.
Приоритеты выставляются менеджером проекта:
Высокий приоритет. Это ошибки, которые должны быть устранены до релиза, согласно критериям завершения тестирования (exit-criteria). Например, это ошибка, несмотря на корректность всех введенных данных мешающая переходу со страницы входа на главную.
Средний приоритет. Должны быть устранены до релиза или сразу после релиза. Это например дефект, не нарушающий требования, но некорректно отображающий контент в одном из браузеров.
Низкий приоритет. Их можно не фиксить, и критериям завершения это не противоречит, но такие дефекты надо устранить до финального релиза. Обычно это опечатки, небольшие дефекты в дизайне (например выравнивание текста), не очень заметные ошибки в размере элементов, и прочие “косметические” дефекты.
(Перечисленные выше баги обозначаются P1, P2, P3 от высокого к низкому.)
Также баги классифицируют по частоте проявления, от высокой до очень низкой (4 степени).
Стандартный порядок действий при обнаружении бага
- Проверить дополнительные (связанные) вещи
Обычно баги “по одному не ходят”, то есть где-то поблизости есть аналогичные, или связанные с уже найденными.
- Зафиксировать текущее состояние приложения
Состояние приложения и состояние окружения. Это поможет примерно определить причину бага — внутренняя или внешняя, и воспроизвести баг.
- Проверить, может баг уже есть в репортах
Чтобы не делать уже сделанную кем-то работу.
Теперь надо написать классный баг-репорт, не затягивая время — это сокращает цикл фидбека между написанием кода и валидацией.
Статусы багов (в жизненном цикле)
- Открыт (добавлен в репорт)
- В работе (принят к исправлению)
- Исправлен (и передан на перепроверку)
- Закрыт (уже не воспроизводится)
- Отклонен (ошибка в репорте)
- Отсрочен (как неприоритетный)
- Переоткрыт (после двух предыдущих статусов)
Подробнее о системах контроля багов — здесь
Лучшие практики
- Сначала хорошо исследовать и понять приложение (модуль)
- Создать специальные тест-кейсы, а именно функциональные тест-кейсы, посвященные критически важным функциям
- Подготовить достаточно тестовых данных
- Запустить тесты снова, в другом тестовом окружении
- Сравнивать полученные результаты с ожидаемыми
- Проанализировать тестовый сет, используя старые тестовые данные
- Выполнить стандартные тест-кейсы, которые ранее показывали себя надежными. Например, если тестировалось поле ввода для стандартного текста, ввести HTML-теги и проверить, что получится
- После завершения большей части тестов, если есть усталость, отдохнуть, занявшись обезьяньим тестированием (monkey testing)
Тестирование на реальных девайсах и в реальных окружениях
Тестирование в реальных окружениях является хорошей практикой в QA, а в тестировании мобильных приложений — обязательной практикой. Реальное окружение быстрее “апгрейдит” тестировщика. Но оно требует закупки/аренды довольно-таки внушительного парка устройств. Вообще, тестирование всех возможных комбинаций браузер/ОС/девайс — отдельная головная боль. Здесь помогают облачные платформы.
Шпаргалка QA Trainee/Junior
Серьезность бага
Приоритет
Типы багов
- Функциональные
- Синтаксические
- Логические
- Производительности
- Ошибки вычислений
- Безопасности
- Уровня модуля
- Интеграционные баги
- Юзабилити-баги
- Потока управления
- Совместимости
Частота бага
- Высокая
- Средняя
- Низкая
- Очень низкая
Статус бага
- Открыт
- В работе
- Исправлен
- Закрыт
- Отклонен
- Отсрочен
- Переоткрыт
Что делает тестировщик, когда находит баг
- Проверяет связанные или аналогичные вещи
- Фиксирует текущее состояние приложения и тестового окружения
- Проверяет, нет ли этого бага в репорте
- Пишет репорт
Источник: testengineer.ru
Известные Баги в Скайрим
Баги в Скайрим на данный момент обнаружено огромное количество. Полный список можно посмотреть здесь, на английском, мы же постараемся сделать обзор самых часто-встречающихся. Теми, которыми отчасти можно пользоваться, и теми, которых стоит избегать.
Важно! Количество багов в лицензионной версии большое, а в пиратке просто зашкаливает. Все проблемы со скриптами, вылетами, мелькающими диалогами — относятся именно к крякнутым версиям. Если вы играете на пиратке, все нравится, но баги запарили – рекомендуем перейти на лицензионную — игровой процесс станет значительно приятней.
Список находится в доработке, собираю информацию по частям с разных форумов (сам за 40+ часов игры встретил только один глюк с текстурами). Пока все в одной куче, потом буду сортировать баги по типам.
Баг на бесконечную магию
Задание с мистическими перчатками для настройки. Берется у темного эльфа в академии, вроде бы эльф который учит иллюзии. После того как снимите перчатки — эффект бесконечной маны остается, и играть становится совершенно не интересно.
На коне можно подниматься чуть ли не на 90-градусные отвесные стены. Можно использовать, если вам хочется забраться на самые недоступные вершины.
Баг на прокачку красноречия до 100
В Рифтене, где обитают воры, есть мужик, который говорит что его хозяйка вся такая классная, но потом появляется возможность убеждения, после чего он рекомендует уходить из города поскорее. Суть бага заключается в том, что можно повторно спрашивать его про хозяйку, и повторно убеждать.
Вместо букв в консоли квадратики
Необходимо открыть файл “skyrimDataInterfacefontconfig.txt” и заменить строку
map “$ConsoleFont” = “Arial” Normal
на
map “$ConsoleFont” = “Futura Condensed test” Normal
Так же, измените в ОС язык по умолчанию на английский
Иногда (у меня это бывает после свертывания и развертывания игры) появляются разные точки/полоски по всему экрану.
Иногда игра просто вылетает
купите лицензионную версию/обновите драйвера видеокарты
Застревают стрелы в персонаже
Стрелы/магия попавшие в персонажа не исчезают, и продолжают торчать
Пусть в вас еще кто-нибудь постреляет/купите лицензионную версию
Зависает/застревает во во время заставки
Данный баг встречается только на пиратках — во время первой заставки игра или зависает, или тележка упирается в невидимую стену
Попробуйте скачать это сохранение (на этапе создания персонажа), и загрузить его — тем самым пропустив заставку
Пишите баги с которыми вы столкнулись, и как с ними справились (или не справились)!
Очень желательно так же указывать игру — лицензионная или пиратка.
Источник: skyrim-5.ru
Skyrim и его баги.
Плюс есть Unofficial Skyrim Patch, решает многие стандартные баги, например с немым Эсберном, когда не можешь завершить квест, зайдя к нему в каморку. Конечно и своих багов добавляет, но факт остается фактом.
30 Nov 2013 в 22:30 #8
Talent сказал(а):↑
Купи лицензию,поможет.
Нажмите, чтобы раскрыть.
YellowFlash сказал(а):↑
Просто не везет. Или сборки качайте нормальные. Или лицуху не засирайте модами. Скайрим — игра тонкая.
Нажмите, чтобы раскрыть.
Лицензия, модов кроме длц нету. Что не так? Читал, говорят версия багованая но решения не нашел
30 Nov 2013 в 22:31 #9
Купил по скидке, никаких крашей и багов, все нормально работает.
30 Nov 2013 в 22:31 #10
Лицензия во время распродажи стоит копейки . У меня с ней проблем не возникает , раньше не было на лицухе русской локализация , сейчас добавили . Моды никакие ставить не стоит , да и я считаю эти моды лишними .
30 Nov 2013 в 22:32 #11
Mirtax сказал(а):↑
Купил по скидке, никаких крашей и багов, все нормально работает.
Нажмите, чтобы раскрыть.
BadPanda сказал(а):↑
Лицензия во время распродажи стоит копейки . У меня с ней проблем не возникает , раньше не было на лицухе русской локализация , сейчас добавили . Моды никакие ставить не стоит , да и я считаю эти моды лишними .
Нажмите, чтобы раскрыть.
На пиратке такой фигни не было. Купил стим версию, и чуть ли не в каждом квесте баг
30 Nov 2013 в 22:33 #12
SergeYjke сказал(а):↑
Лицензия, модов кроме длц нету. Что не так? Читал, говорят версия багованая но решения не нашел
Нажмите, чтобы раскрыть.
Ради интереса скачайте репак и установите.
Ах да, и есть такая загвоздочка — после некоторого количества времени, проведенного в игре, скайрим просто вылетает на раб. стол без сообщения об ошибке. Обычно спустя 2-3 часа. и чем больше ты играешь, тем чаще такое случается. Вроде бы именно такое ничем не лечится, помогает установка другой версии или снос игры и повторная инсталляция. В общем, стоит пробовать качать репаки, может в самой лицухе проблема кроется.
А сам характер багов каков? Если вылеты, то в каких местах чаще всего, если в квестах, то что происходит при багах?
30 Nov 2013 в 22:34 #13
я месяц проходил квест Око Магнуса из-за бага :с
30 Nov 2013 в 22:35 #14
SergeYjke сказал(а):↑
На пиратке такой фигни не было. Купил стим версию, и чуть ли не в каждом квесте баг
Нажмите, чтобы раскрыть.
проверь кэш, переустанови
30 Nov 2013 в 22:36 #15
YellowFlash сказал(а):↑
Ради интереса скачайте репак и установите.
Ах да, и есть такая загвоздочка — после некоторого количества времени, проведенного в игре, скайрим просто вылетает на раб. стол без сообщения об ошибке. Обычно спустя 2-3 часа. и чем больше ты играешь, тем чаще такое случается. Вроде бы именно такое ничем не лечится, помогает установка другой версии или снос игры и повторная инсталляция. В общем, стоит пробовать качать репаки, может в самой лицухе проблема кроется.
А сам характер багов каков? Если вылеты, то в каких местах чаще всего, если в квестах, то что происходит при багах?
Нажмите, чтобы раскрыть.
С вылетами все ок. Вылетает равзе что когда очень часто альтабаться, не в этом проблема. Баги по игре: либо гонец от ТБ не прибежит, либо какой предмет не дадут.
Источник: dota2.ru