Исходный блог опубликован здесь

Рынок ИТ потрясла волна практик искусственного интеллекта, машинного обучения (AI / ML) и непрерывной интеграции, непрерывной доставки (CI / CD). Движение DevOps и CI / CD резко изменило роли инженеров-программистов и сильно повлияло на инженеров QA. Тестирование в темпе DevOps невозможно с использованием традиционных методологий QA, и инженеры QA изо всех сил пытаются найти свою роль в рабочем процессе DevOps. В результате сбитые с толку QA инженеры в конечном итоге купили полностью теоретическую книгу Практическое тестирование в DevOps, чтобы получить представление о том, как выжить. Однако чтение книги не поможет им выжить в этом быстро меняющемся мире DevOps. Им необходимо приобрести практические навыки и изучить современные технологии, чтобы выжить на рынке. Это приводит к появлению на рынке инструментов тестирования на основе AI / ML, таких как Mabl. В настоящее время Mabl тестирует веб-сайты с помощью машинного обучения, но пока не может тестировать собственные мобильные приложения. В этом сообщении в блоге мы попытаемся выяснить, сможет ли какой-либо сторонний AI / ML тестировать приложения для iOS в будущем.

Mabl

Прежде чем мы погрузимся в тестирование приложений iOS с помощью машинного обучения, давайте кратко рассмотрим, что такое Mabl и как он тестирует веб-сайты с использованием методов AI / ML. По сути, пара инженеров, которые работали в Google Дэн Белчер и Иззи Азери, обнаружили проблему в том, что тестирование в темпе DevOps действительно сложно, а традиционного подхода к тестированию программного обеспечения недостаточно в темпе CI / CD. . Чтобы ускорить тестирование с темпами DevOps и CI / CD, они нашли инструмент Mabl, управляемый AI / ML, который будет генерировать тестовые сценарии и запускать их на серверах непрерывной интеграции и сообщать о результатах. Mabl - это инженер по обеспечению качества без использования скриптов, инфраструктуры и виртуальный контроль качества, который тестирует наше веб-приложение без необходимости управлять чем-либо собственными силами. Мы можем записывать сценарии тестирования, обучая бота работе с вашим приложением, как если бы вы обучали нового QA-инженера с помощью расширения chrome. Как только мы обучим бота, он будет больше знать о приложении, а также создавать и поддерживать тестовые сценарии в облаке. Mabl можно подключить ко многим серверам непрерывной интеграции, таким как Jenkins, TravisCI. Он также отправляет отчеты о тестировании в Slack или другие службы. У Mabl также есть идеи, которые вытекают из конвейера машинного обучения. По сути, это метод машинного обучения, который взаимодействует с веб-элементом на странице, в чем Mabl отличается от Selenium WebDriver. У Selenium есть проблемы с обнаружением элемента на экране, что вызывает много нестыковок в тестах, и Mabl предположительно решит эту проблему. Mabl на данный момент находится в публичной бета-версии, вы можете попробовать. Краткая статья о Mabl здесь. Таким образом, Mabl работает так

  1. Вы предоставляете Mabl URL-адрес своего веб-приложения с учетными данными, если применимо.
  2. Mabl проанализирует ваше приложение и сканирует его на предмет ошибок JS, неработающих ссылок и т. Д.
  3. Вы тренируете Mabl с помощью расширения Chrome и записываете поездки, которые будут храниться в облаке. Mabl использует машинное обучение для анализа вашего приложения.
  4. Mabl выполнит эти поездки на сервере CI и сообщит о проблемах.
  5. Не нужно управлять инфраструктурой, код для тестирования.

В настоящее время Mabl выглядит как инструмент для записи и воспроизведения, размещенный в облаке, но, согласно Mabl, он использует много искусственного интеллекта и машинного обучения под капотом. На данный момент Mabl может тестировать только веб-сайты и не поддерживает тестирование мобильных приложений. На данный момент, согласно ответу Дэна на этом веб-семинаре, нет планов по добавлению поддержки мобильного тестирования в третью дорожную карту.

Проблемы iOS для сторонних инструментов AI / ML

Теперь, когда мы увидели, что Mabl в настоящий момент не может тестировать приложения для iOS, давайте выясним, какие проблемы возникают при тестировании приложений для iOS, и сможет ли сторонний AL / MI использовать современные технологии Apple для тестирования приложений для iOS. С экосистемой Apple может возникнуть несколько проблем. Давайте рассмотрим некоторые из них здесь.

Процесс сборки и развертывания iOS

В мире Интернета довольно легко развернуть приложение на конкретном тестовом сервере и использовать URL-адрес этого сервера для тестирования. Однако в мире iOS мы должны учитывать очень много вещей при подготовке тестового приложения. Чтобы подготовить отладочную или специальную версию приложения, нам нужно, чтобы приложение было подписано с помощью определенного сертификата разработчика и имело профиль подготовки со списком устройств. Сомнительно, чтобы инструменты AI / ML, которые будут использоваться, предоставили устройства для тестирования приложения. Еще один вызов - предварительно созданные двоичные файлы, которые необходимо развернуть на устройствах до того, как произойдет фактическое тестирование. Может ли AI / ML самостоятельно анализировать и создавать приложения, мы учим их, как это делать. Существуют различные движущиеся части, которые необходимо учитывать, прежде чем мы получим приложение в тестируемом состоянии.

Экосистема Apple

У Apple есть собственные инструменты и фреймворки, и они по своей природе довольно надежны. Apple хочет, чтобы разработчики использовали свои инструменты и технологии. Можно перепроектировать фреймворки Apple, но это не стоит времени и денег, поскольку Apple может сломать это в следующем выпуске. Apple осознала потенциал машинного обучения и выпустила собственный фреймворк машинного обучения (CoreML), который можно использовать в приложениях для iOS. Apple также может инвестировать в стратегии для эффективного тестирования функций машинного обучения. Лучше оставить это им на время и посмотреть, что они могут предложить нам для тестирования машинного обучения. Попытки сторонних разработчиков протестировать приложения для iOS с помощью машинного обучения долгое время не принесут результатов.

Модель обучения машинного обучения

В Mabl они создали расширение Chrome для обучения Mabl работе с вашим приложением. На данный момент похоже на диктофон. Создание рекордера для веб-приложений может быть простым, но создание рекордера для приложений iOS может быть сложным. У Apple есть свой фреймворк для тестирования пользовательского интерфейса (XCUITest), тесно связанный с Xcode. XCUITest имеет функцию записи, которая может записывать поездки приложения с помощью API специальных возможностей iOS. Могут ли какие-либо сторонние инструменты войти в экосистему iOS и создать рекордер вроде Appium? Как AI / ML будет поддерживать связь между приложением и тренером, не входя в экосистему Apple? Будет ли легко модели AI / ML записывать тесты самостоятельно?

Есть много вопросов об обучении инструменту на основе машинного обучения, который научит вас всему, что касается ваших приложений для iOS.

Поддержка iPhone против iPad

Mabl только что объявил об обновлении продукта в Твиттере о том, что он поддерживает кроссбраузерное тестирование. В веб-мире, когда журналы записаны, их не составит труда запустить в другом браузере, используя некоторые методы, такие как пользовательские агенты или механизмы других браузеров. Однако в iOS есть iPhone и iPad с различной комбинацией размера экрана и различной аппаратной структурой, например iPhone X, iPhone 7+, iPhone 9, iPad Pro, iPad Mini и т.д. применимо ко всем вариантам устройства ?. Путешествие, записанное на iPhone, будет работать на iPad, или нам нужно по-разному обучать модель на основе Ml для iPhone и iPad. Как AI / ML будет работать с элементами на экране? Будут ли они использовать API доступности или другие методы для уникальной идентификации элементов, не вызывая нестабильности?

Тестирование расширений приложений для iOS

В настоящее время очень распространено иметь расширения для приложений iOS, таких как Watch Extension, расширение iMessage и т. Д. Было бы интересно, как инструмент на основе AI / ML будет работать с расширениями приложений iOS. Если основанный на AI / Ml живет в облаке, будет ли он кодировать расширения приложений или соединяться с iPhone? Будут ли реальные устройства для инструмента AI / ML или это будут просто симуляторы?

Было бы очень интересно посмотреть, как AI / ML справится с этой ситуацией.

Какой вывод?

Теперь, когда мы столкнулись с небольшими проблемами при создании решения для тестирования приложений iOS на основе AI / ML. Учитывая эти проблемы, мы можем сказать, что сторонние разработчики могут создать решение AI / ML, такое как Mabl, но лично я думаю, что это не будет устойчивым в экосистеме Apple в долгосрочной перспективе. Вот вещи, которые можно легко построить.

  • Можно попросить пользователей загрузить подписанный файл .ipa, чтобы начать тестирование. После загрузки двоичного файла инструмент на основе AI / ML сможет установить его в симуляторы или устройства, если они готовы к предоставлению.
  • Затем тест, управляемый AI / Ml, запустит приложение, запишет некоторые поездки и сохранит их в конвейере анализа. Может быть сложно работать с элементами приложения, если у них нет доступа к API специальных возможностей, аналогичных XCUITest.
  • Интеграция с сервисами непрерывной интеграции и сторонними сервисами, такими как Slack, может быть легко реализована с помощью AI / ML.
  • Также возможно размещение данных в облаке.

Эти вещи кажутся достижимыми. Однако реализовать это с помощью инструментов и технологий Apple с помощью обратного проектирования будет сложно. Так что раньше этого не произойдет. До Mabl для iOS еще далеко.

Реальный вывод

Пока вы не окажетесь в пузыре Apple, не будет никакого Mabl, подобного стороннему инструменту, который сразу же начнет тестировать приложения для iOS. Apple выпустила фреймворк CoreML и обязательно выпустит стратегию тестирования приложений iOS на основе машинного обучения. Просто подождите и посмотрите, что Apple предоставит инженерам по обеспечению качества для тестирования приложений iOS. Пока не беспокойтесь об изучении Python, экосистема Apple не позволит сторонним инструментам тестирования AI / Ml войти в свое пространство. Но всегда держи глаза открытыми, чтобы видеть, что происходит вокруг.

Понравился пост из XCBlog Автор XCTEQ? Вам также могут понравиться некоторые из наших услуг, такие как гостевой блог, Mobile DevOps (CI / CD) или автоматизация тестирования. Ознакомьтесь с нашими услугами, проектами с открытым исходным кодом на Github или подпишитесь на нас в Twitter, Facebook, Youtube, LinkedIn. Загрузите наше приложение XCBlog для iOS, чтобы читать блоги в автономном режиме.

XCTEQ - это компания, специализирующаяся на Mobile DevOps, CI / CD, Mobile, автоматизации тестирования на основе AI / ML. Продукты и услуги Checkout XCTEQ на http://www.xcteq.co. uk или напишите нам на [email protected] ..