Ответ
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 имеют наивысший приоритет и должны быть исправлены немедленно, часто останавливая процесс разработки или выпуска версии.