iOS - полностью автоматизировать процесс тестирования с помощью резервных копий - возможно ли это?
История:
У нас есть сотни устройств с пользовательским интерфейсом и модульными тестами. Тесты написаны с использованием фреймворка XCTest и выполняются как в наших приложениях, так и в системных (Safari/Settings) и сторонних.
В рамках инфраструктуры тестирования мы должны привести устройства в определенное состояние перед выполнением каждого теста. Это включает в себя очистку кешей, изменение элементов настройки, установку приложений и т. Д. В настоящее время мы используем комбинацию Apple Configurator, MDM, профилей конфигурации и тестов пользовательского интерфейса, чтобы перейти к желаемому состоянию для каждого теста.
Эта проблема:
Пока все хорошо, но процесс настройки всего на самом деле дорогостоящий, нестабильный и его трудно поддерживать в разных версиях iOS.
Идея:
Тогда мы подумали - почему бы не использовать резервные копии? Мы можем сохранить резервную копию для каждого желаемого начального состояния, восстановить требуемую резервную копию и сразу запустить тест.
НО...
В этой идее есть одна маленькая проблема: восстановление из резервной копии переводит устройство в состояние "Настройка", где требуется ручное вмешательство пользователя. Даже если мы используем Apple Configurator, чтобы завоевать доверие устройства, настроить Wi-Fi и пропустить все возможные элементы настройки, пользователь все равно должен нажать кнопку "Домой" один раз на странице "Hello", а затем нажать "Get Started" на экране, чтобы доберитесь до SpringBoard и сможете запускать или отлаживать запуск приложения XCTest /.
Вопрос:
Теперь очевидно: можем ли мы каким-то образом автоматизировать весь поток, описанный выше? То есть - восстановить устройство iOS из резервной копии, пропустить настройку и запустить XCTests.