Блог A1QA

О тестировании и качестве ПО

Как компьютерное зрение помогает автоматизировать тестирование мобильных приложений

Понятие «компьютерное зрение» известно довольно давно. Эта технология используется во множестве современных устройств и систем безопасности. Однако ее применение в автоматизации тестирования ПО сейчас не столь популярно, чаще всего проверки ограничиваются сравнением двух изображений или поиском картинки в картинке. Но можно ли выйти за эти рамки? Как научить автотесты «видеть» то, что находится на экране? Например, на экране вашего планшета или смартфона?

Читайте нашу статью и вы узнаете, как с помощью компьютерного зрения можно усовершенствовать автоматизацию мобильного тестирования, какие инструменты для этого используются и какие факторы ограничивают внедрение компьютерного зрения.

Как правило, для автоматизации мобильного тестирования на платформах iOS и Android используют инструмент с открытым исходным кодом — Appium. Но не всегда он позволяет выполнить все необходимые проверки.

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

Что делать в такой ситуации? Обратиться к компьютерному зрению.

Возможности компьютерного зрения

Компьютерное зрение – это научная дисциплина, позволяющая машинам «визуально» анализировать свое окружение. В таком процессе обычно задействованы изображения или видео.

Сегодня технология позволяет распознавать людей по их лицам и фигурам; помогает беспилотному транспорту считывать дорожные знаки и безошибочно определять пешеходов; используется для обработки изображений в медицине, поддержке промышленного производства.

С ее помощью можно выполнить ряд таких задач, как:

Распознавание объекта

Технология помогает понять, имеется ли в том или ином объекте нужный видеоматериал. Сюда же относится и поиск изображений по их содержимому, оценка местоположения объектов и определение символов в тексте.

Оценка движения

Здесь речь идет об обработке последовательности изображений, чтобы определить скорость каждой точки изображения.

Восстановление изображений

В данном случае главной задачей является удаление шума (нечеткое изображение объекта в движении).

Восстановление сцены

При наличии двух и более моделей сцены можно воссоздать ее трехмерную модель.

Процесс автоматизации мобильного тестирования с помощью компьютерного зрения

Данная технология помогает выполнить еще одну важную задачу – автоматизацию процесса мобильного тестирования программного обеспечения.

Чаще всего компьютерное зрение применяется в автоматизации именно для поиска отдельных элементов на целом изображении. При этом приходится предварительно вырезать эти элементы и хранить их. Данный процесс не подойдет для мобильной автоматизации на устройствах с разными разрешениями экрана.

Поэтому возникает необходимость выстроить автоматизированный процесс, при котором поиск элементов происходит автоматически, без необходимости вырезать их вручную.

Но как именно найти нужные элементы на целом изображении?

Для этого и существует ряд инструментов, используемых в компьютерном зрении. При их комбинации с Appium, можно решить существующую задачу.

Давайте рассмотрим каждый из них.

Инструменты компьютерного зрения

OpenCV

Представляет собой библиотеку с открытым исходным кодом. Инструмент содержит алгоритмы компьютерного зрения и обработки изображений. Реализован на языках С/С++, но его можно использовать и для Java, Python, Ruby и некоторых других.

OpenCV выполняет бинаризацию изображений – перевод их полноцветного отображения в монохромное, т. е. такое, где присутствуют только два вида пикселей (светлые и темные).

Бинаризация проходит с помощью порогового или адаптивного метода. Адаптивные методы применяются к участкам изображения, где освещение неоднородное. Пороговые же находят какой-либо порог, с помощью которого можно разделить все изображение на черное и белое.

OpenCV также содержит встроенные алгоритмы отделения фона от объекта и поиска отдельных элементов по контурам, а открытый исходный код позволяет создавать комбинацию использования данных методов под конкретное решение.

Альтернативным решением при поиске отдельного элемента в составе целого изображения является SikuliX – открытая кроссплатформенная среда для разработки скриптов, ориентированная на программирование графических интерфейсов с помощью скриншотов.

Для создания скриптов могут использоваться такие языки, как Ruby в реализации jRubi, Jython, возможно использование конструкций из языка Python. Программа пригодна для работы в Windows, Mac OS X, Linux. SikuliX использует алгоритмы OpenCV и написан на его основе.

Tesseract OCR

Одна из самых популярных и качественных программ, использующихся для распознавания текстов из изображений. Подходит как для Mac OS, Windows, так и для ОС семейства Linux. Работает на языках С/С++.

Обладает высоким уровнем распознавания текста, вдобавок есть поддержка новых языков и шрифтов. А обновленная версия продукта 4.0 работает с использованием нейронной сети.

Для подключения свободной библиотеки необходимо скачать такие компоненты, как Leptonica (библиотека для обработки изображений), последняя версия Tesseract OCR, данные для обучения нужному языку, например, русскому.

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

Сначала в автоматическом режиме создается скриншот изображения, далее он разделяется на отдельные элементы, каждый из которых вносится в конфигурационный файл. Причем координаты каждого элемента уже известны.

Затем инструмент автоматизации Appium обращается к данному конфигурационному файлу, получает необходимую информацию, а далее взаимодействует с этими элементами, используя данные их координат.

Почему компьютерное зрение подходит не во всех случаях?

Несмотря на активное развитие технологии, команды разработчиков и тестировщиков не всегда могут внедрить компьютерное зрение на проекте.

Этому препятствуют следующие факторы:

  • Зависимость от качества изображения

К сожалению, иногда качество картинки бывает довольно низким. В таких случаях инструменты компьютерного зрения не всегда могут дать точный результат. Пока.

  • Невозможность автоматизировать все тест-кейсы

Данная проблема связана с тем, что все еще существуют ограничения при распознавании анимированных элементов.

Подводя итог

Проверенным инструментом автоматизации мобильного тестирования является Appium. Однако существуют задачи, с которыми он не всегда может справиться в одиночку.

В таких ситуациях инженеры-автоматизаторы комбинируют его с инструментами компьютерного зрения, чтобы разработать устойчивое к изменениям решение.

Такое решение, которое гарантирует точный и быстрый результат, а также может быть расширено на различные приложения с минимальными усилиями.

Закажите бесплатную консультацию по автоматизации мобильного тестирования с экспертами A1QA и узнайте, как мы можем помочь улучшить ваш мобильный продукт.

Поделиться статьей: