Дефект – это ситуация, в которой фактическое поведение программы не соответствует ожидаемому результату.
Программа содержит дефект, если:
- Она не выполняет функцию, которую должна выполнять по требованиям
- Она выполняет функцию, которую не должна выполнять по требованиям
То же самое справедливо не только для всей программы, но и для отдельных ее свойств — безопасность, отказоустойчивость, удобство использования и так далее.
Возьмем для примера календарь и посмотрим, какие бывают дефекты:
- Функциональные дефекты — в календаре не выбирается дата
- Визуальные дефекты — элемент календаря уехал за экран
- Логические дефекты — в феврале 31 день
- Ошибка контента — название месяца записано как «декабьр»
- Ошибка удобства использования — даты выводятся не по неделям
- Прочие нефункциональные дефекты — есть проблемы с безопасностью или отказоустойчивостью
Уровень дефектов
Рассмотрим уровни дефектов от больших к меньшим:
Блокирующий (Blocker) – дефект полностью блокирует выполнение функционала, нет никакого способа его обойти. Пример: Не работает авторизация на сайте (что в свою очередь блокирует большую часть функционала).
Критический (Critical) – дефект блокирует часть функциональности, но есть альтернативный путь для его обхода. Пример: В банковском приложении при попытке перевода денег на счет через основной интерфейс возникает ошибка. Однако, пользователь может завершить операцию, зайдя в другой раздел приложения или используя веб-версию сервиса.
Значительный (Major) – дефект, указывающий на некорректную работу части функциональности. Другими словами, функция работает, но неправильно. При этом существует более одной точки входа для инициации нужной функциональности. Пример: В текстовом редакторе функция автоформатирования кода добавляет неправильные отступы и форматирование, из-за чего код не проходит проверку на стиль. Но редактор все еще позволяет пользователю писать код и сохранять его.
Незначительный (Minor) – дефект, не относящийся к функциональности системы. Обычно уровень Minor проставляется для тех дефектов, которые относятся к удобству использования или интерфейсу. Пример: В мобильном приложении кнопка "Назад" на некоторых экранах не отображается в привычном месте, из-за чего пользователю нужно использовать жесты или другие элементы интерфейса. Это не влияет на функциональность, но ухудшает удобство использования.
Тривиальный (Trivial) – дефект, не затрагивающий функциональность системы и почти не влияющий на общее качество системы. Часто неотличим от уровня Minor. Пример: В мобильном приложении у кнопки "Отправить" на экране чата слегка отличается оттенок от стандартного, иконка кнопки немного смещена. Это не влияет на работу приложения, и ошибка практически не заметна для большинства пользователей.
Самостоятельная работа
Мы подготовили для вас небольшое приложение — это простая программа, которая проверяет другой сайт на доступность. Приложение содержит ошибку, которая происходит, если выполнить проверку.
Воспроизведите баг, опишите дефект и тест-кейс.
Опционально опишите дефект и тест-кейс на сервисе qase.io.
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.