Что означает уровень критичности дефекта ‘Fatal’ (Критический/Блокирующий)?

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

Ответ

Fatal (Блокирующий/Критический) — это наивысший уровень серьезности дефекта в тестировании. Он присваивается ошибке, которая делает систему полностью неработоспособной, блокируя выполнение ключевого функционала и дальнейшее тестирование.

Критерии для классификации дефекта как Fatal:

  • Полный отказ системы: приложение не запускается, падает (краш) или зависает.
  • Блокировка основного бизнес-сценария: невозможность выполнить центральную функцию продукта (например, оплата в интернет-магазине, отправка сообщения в мессенджере).
  • Потеря данных: дефект приводит к невосстановимой потере или порче пользовательских данных.
  • Угроза безопасности: уязвимость, позволяющая получить несанкционированный доступ или привилегии.

Примеры Fatal-дефектов:

// Пример 1: Критическая ошибка при инициализации, приводящая к падению приложения
public class AppLauncher {
    public void initDatabase() {
        // Если файл конфигурации отсутствует, приложение не может работать
        File config = new File("config.yml");
        if (!config.exists()) {
            throw new RuntimeException("FATAL: Configuration file not found. Application cannot start.");
        }
        // ... инициализация БД
    }
}

// Пример 2: Блокирующая ошибка в ядре функционала
public class PaymentProcessor {
    public boolean processTransaction(Transaction t) {
        // Деление на ноль приведет к исключению и срыву всей операции оплаты
        double fee = t.getAmount() / 0; // ArithmeticException: / by zero
        return charge(t.getAmount() + fee);
    }
}

Отличие от других уровней серьезности:

  • Fatal vs Critical (Высокий): Fatal-дефект полностью блокирует работу, в то время как Critical-дефект позволяет системе работать, но с очень серьезными ограничениями (например, функция работает с ошибками в 100% случаев, но другие функции доступны).
  • Приоритет исправления: Дефекты с уровнем Fatal имеют наивысший приоритет и должны быть исправлены немедленно, часто останавливая процесс разработки или выпуска версии.