Ответ
Тестирование на отказ и восстановление — это вид нефункционального тестирования, который проверяет, как система обрабатывает сбои аппаратного или программного обеспечения и восстанавливает свою работоспособность и данные после устранения неисправности.
Что именно проверяется:
- Отказоустойчивость (Failover): Способность системы автоматически переключаться на резервный компонент (сервер, базу данных, сетевой канал) при отказе основного.
- Восстановление (Recovery): Корректное возвращение к нормальной работе после устранения причины сбоя, включая целостность данных и транзакций.
Типичные сценарии для тестирования:
- Аварийное отключение сервера приложения или базы данных.
- Обрыв сетевого соединения.
- Заполнение дискового пространства.
- Сбой процесса или службы.
Пример логики обработки сбоя на псевдокоде:
try:
data = query_primary_database()
except DatabaseConnectionError:
# 1. Зафиксировать сбой в логах и метриках
log_critical("Primary DB failed. Initiating failover.")
# 2. Автоматически переключиться на резервную реплику
data = query_backup_database()
# 3. (Опционально) Уведомить администратора
send_alert_to_ops_team()
Критерии успеха: Минимальное время простоя, отсутствие потери данных, корректные логи для анализа инцидента. Критично для высоконагруженных и отказоустойчивых систем (финансы, телеком).