Что такое совместимость версий мобильного приложения
Что проверяют
Держите ли вы в голове, что мобильное приложение нельзя обновить всем сразу. На стенде версия одна, в проде одновременно живут десятки сборок и много версий системы, а быстро откатить выпуск через магазин невозможно. Вопрос о том, планируете ли вы проверки исходя из этого.
Как отвечать
Осей три.
Приложение и операционная система: минимальная поддерживаемая версия, поведение на старых сборках и на самых свежих, изменения в разрешениях, фоновом выполнении и уведомлениях.
Приложение и сервер: главная ось. Старые сборки ходят в API месяцами. Совместимое изменение контракта это добавление необязательного поля; удаление поля, смена типа или смысла ломает уже установленных клиентов. Проверяется матрицей: старый клиент против нового сервера и, если выкладка постепенная, новый клиент против старого сервера.
Приложение и собственные данные: локальная база, кеш и настройки переживают обновление, миграция обязана отработать на реальном накопленном состоянии.
Управляют этим версионированием API, минимальной поддерживаемой версией с мягким и жёстким требованием обновиться и флагами функциональности.
Обязательный сценарий: поставить прежнюю сборку, накопить данные, обновиться поверх, пройти основные пути.
Где спотыкаются
Проверяют только чистую установку. Обновление поверх это отдельный сценарий, и почти все дефекты миграции данных живут именно в нём.
Путают направления. Обратная совместимость это способность нового работать со старым: новый сервер с прежними клиентами, новая сборка со старыми данными. Прямая это способность старого пережить новое, например не упасть от незнакомого поля в ответе.
Забывают про долгий хвост установок. Пока заметная доля пользователей сидит на прежних сборках, поле из ответа удалять нельзя, и решение принимается по статистике версий, а не по тому, что новая сборка уже вышла.