Какие типы дефектов (багов) вы находили в реальных проектах? Приведите примеры.

«Какие типы дефектов (багов) вы находили в реальных проектах? Приведите примеры.» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

1. Критический: Race Condition в платежном API

  • Описание: При быстром двойном клике на кнопку "Оплатить" через PayPal сумма списывалась дважды.
  • Причина: Отсутствие механизма предотвращения повторных запросов (debounce/mutex) на фронтенде и недостаточная проверка идемпотентности на бэкенде.
  • Код (проблема):
    // Фронтенд: обработчик без защиты
    handlePayment() {
      fetch('/api/pay', { method: 'POST', body: JSON.stringify(order) });
    }
  • Решение: Добавить debounce на UI и использовать уникальный idempotency-key в заголовках запроса.

2. UI/UX баг: Перекрытие элемента интерфейса

  • Описание: В мобильной версии на iOS кнопка "Сохранить" в форме ввода скрывалась за виртуальной клавиатурой.
  • Причина: Неправильная настройка viewport и position: fixed в CSS.

3. Логическая ошибка в бизнес-правилах

  • Описание: Скидка 10% для постоянных клиентов не применялась к товарам из категории "Акции".
  • Причина: Неверное условие в коде расчета финальной цены.
  • Код (проблема):
    # Было: скидка применялась, только если товар НЕ промо и у пользователя есть скидка
    if not item.is_promo and user.has_discount:
        price = price * 0.9
    # Упущена проверка item.category == 'sale'

4. Баг производительности (Performance)

  • Описание: Страница каталога товаров загружалась более 8 секунд.
  • Причина: Проблема N+1 запроса в ORM. Для каждого товара делался отдельный запрос к БД для получения его категории.
  • Решение: Использовать жадную загрузку (select_related или prefetch_related в Django).

Процесс документирования: Все баги фиксировались в Jira с четким шаблоном: Заголовок, Шаги воспроизведения, Фактический результат, Ожидаемый результат, Окружение, Скриншот/видео, Логи, Severity/Priority.