Ответ
Тестирование обновлений (Update/Rollback Testing) фокусируется на безопасности перехода между версиями. Ключевые сценарии:
1. Прямое обновление (Incremental Update)
- Цель: Убедиться, что новая версия корректно устанавливается поверх предыдущей.
- Что проверяется:
- Сохранность пользовательских данных и настроек.
- Корректное выполнение миграций базы данных (если есть).
- Работоспособность всего функционала после обновления.
-- Пример проверки миграции БД: новая колонка заполнена SELECT COUNT(*) FROM users WHERE new_optional_column IS NOT NULL;
2. Откат обновления (Rollback)
- Цель: Проверить возможность безопасного возврата к предыдущей стабильной версии в случае неудачи.
- Что проверяется:
- Процедура отката выполняется без потери данных.
- После отката система возвращается в полностью рабочее состояние.
3. Совместимость (Backward/Forward Compatibility)
- Цель: Убедиться, что обновлённые компоненты могут взаимодействовать со старыми (и наоборот), если это предусмотрено архитектурой.
- Пример: Обновлённый клиентское приложение работает со старой версией серверного API.
4. Сценарии прерывания процесса
- Цель: Проверить устойчивость процесса обновления к сбоям.
- Методы: Имитация прерывания (закрытие приложения, отключение сети, разряд батареи на мобильном устройстве) во время установки.
- Ожидаемый результат: Система либо завершает обновление после восстановления, либо откатывается, не переходя в нерабочее состояние.
5. Чек-лист для мобильного приложения:
- Обновление через официальные магазины (App Store, Google Play).
- Принудительное обновление (force update), если новая версия критична.
- Обновление с пропуском нескольких промежуточных версий (например, с v1.0 сразу на v2.0).
- Проверка нового функционала, указанного в release notes.
- Сохранение авторизации, локальных данных и настроек.