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

14 ноября 2018
Дата публикации
Как компьютерное зрение помогает автоматизировать тестирование мобильных приложений
  • Тестирование ПО
  • Тестирование мобильных приложений

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

Как осуществлять проверку визуального представления и поведения интерфейса, когда такие инструменты, как Appium, не могут «увидеть» элементы, лишенные уникальных идентификаторов? Решение заключается в технологии, наделяющей машины возможностью «видеть» и анализировать визуальный контент — в компьютерном зрении.

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

Что такое компьютерное зрение

Компьютерное зрение (Computer Vision, CV) — это раздел искусственного интеллекта, наделяющий компьютеры и машины способностью извлекать ценную информацию из визуальных источников: изображений, видеопотоков и иных медиаформатов.

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

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

Где используется компьютерное зрение

Где сегодня применяется компьютерное зрение? Области его использования обширны и многогранны. В повседневной жизни оно задействовано для разблокировки смартфонов по лицу, в социальных сетях — для автотегирования пользователей на фотографиях.

В медицинской диагностике компьютерный анализ изображений помогают врачам в раннем выявлении опухолей. В автомобилестроении беспилотные машины с применением CV распознают дорожные знаки, пешеходов и иные помехи. В розничной торговле системы на базе компьютерного зрения дают возможность автоматизировать расчеты в магазинах без кассиров (как в Amazon Go).

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

Доверьте тестирование ваших продуктов профессиональной команде экспертов

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

В сфере автоматизации тестирования программного обеспечения компьютерное зрение решает принципиальную задачу — взаимодействие с графическим интерфейсом (GUI) на уровне его визуального представления, а не внутренней кодовой структуры. Это становится особенно важным для мобильных приложений, где элементы интерфейса часто не имеют уникальных идентификаторов или их свойства варьируются в зависимости от платформы (iOS/Android) и разрешения дисплея.

Процедура автоматизации мобильного тестирования с привлечением компьютерного зрения обычно основывается на комбинации нескольких инструментов. Например, интеграция Appium + OpenCV + Tesseract OCR позволяет выстроить стабильно работающее решение:

  1. Автоматизированный тест создает скриншот экрана.
  2. Алгоритмы компьютерного зрения (к примеру, из библиотеки OpenCV) обрабатывают изображение, обнаруживают контуры необходимых объектов (кнопок, текстовых полей) и вычисляют их координаты.
  3. Когда требуется извлечь текст, подключается Tesseract OCR.
  4. Найденные координаты передаются в Appium, который эмулирует клик или ввод текста.
     Подобный принцип действия компьютерного зрения повышает устойчивость автотестов и делает их более универсальными.

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

Инструментарий компьютерного зрения в основном представлен открытыми библиотеками и фреймворками. Вот ключевые из них:

  • OpenCV: Фундаментальная библиотека с открытым исходным кодом для обработки изображений и анализа видео. Включает сотни алгоритмов для детекции объектов, распознавания лиц, трансформации изображений (бинаризация, сглаживание шумов). Написана на C++, но предлагает привязки для Python и Java, что делает ее прекрасным выбором для интеграции в тестовые фреймворки.
  • SikuliX: Кроссплатформенное решение, которое для взаимодействия с элементами применяет скриншоты. Как функционирует компьютерное зрение в SikuliX? Вы предоставляете ему изображение нужной кнопки, а он локализует ее на экране и выполняет клик по координатам. По своей сути, это надстройка, задействующая алгоритмы OpenCV.
  • Tesseract OCR: Открытая система для оптического распознавания символов (OCR). Ее предназначение — конвертировать текст с изображений в машиночитаемые данные. Методы компьютерного зрения и нейросетевые модели в актуальных версиях Tesseract обеспечивают высокую точность даже со сложными типами шрифтов.

Распознавание текста (OCR)

Оптическое распознавание текста, или Optical Character Recognition (OCR), — это технология, трансформирующая изображения текста (рукописного или печатного) в редактируемый и машиночитаемый формат.

Для чего оно требуется? В автоматизации тестирования OCR критически важна для валидации текстового содержимого на экране: проверки сообщений об ошибках, подтверждения корректности отображаемых данных, считывания ценовой информации и т.д.

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

Поиск изображений

Поиск изображений в контексте CV — это процедура обнаружения заданного графического объекта (шаблона) на целевом изображении.

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

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

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

Модерирование изображений

Модерирование изображений — это автоматизированный процесс анализа визуального контента на предмет его соответствия установленным правилам и нормам.

В чем его необходимость? В мобильных приложениях, особенно в соцсетях и онлайн-маркетах, крайне важно автоматически проверять фотографии, загружаемые пользователями, на предмет наличия недопустимого контента (насилие, спам, обнаженная натура).

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

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

Технологии компьютерного зрения

Технологии компьютерного зрения — это комплекс алгоритмов и моделей, позволяющих решать конкретные задачи. Условно их делят на классические и современные, основанные на глубоком обучении:

Классические алгоритмы: Эти методы доминировали до широкого распространения нейросетей. В их число входят:

  • Фильтрация и преобразования: Смена цветового пространства (RGB в Grayscale), размытие, повышение резкости для подготовки данных.
  • Поиск особенностей (Feature Detection): Алгоритмы вроде SIFT, SURF или ORB находят на изображении уникальные ключевые точки (углы, границы), по которым можно идентифицировать объект.
  • Сегментация: Разделение изображения на смысловые области для упрощения его анализа. К примеру, выделение контуров объектов.
  • Распознавание образов: Классификация объектов при помощи методов машинного обучения (например, Support Vector Machines — SVM).

Глубокое обучение и нейронные сети: Как работает современное компьютерное зрение? Его движущей силой являются высокоточные нейронные сети (CNN). Нейросеть обучается на огромных массивах данных (таких как ImageNet) и самостоятельно учится выделять иерархические признаки из изображений — от простых граней и текстур до сложных объектов. Это позволило радикально повысить точность в задачах:

  • Детекция объектов: Модели like YOLO или SSD обнаруживают и классифицируют множественные объекты на изображении в режиме реального времени.
  • Семантическая сегментация: присваивает каждый пиксель изображения определенному классу (к примеру, дорога, человек, небо).
  • Генерация изображений: Нейросети способны создавать и модифицировать изображения.

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

Сильные стороны компьютерного зрения в автоматизации тестирования:

  • Платформенная независимость: Тесты взаимодействуют с тем, что фактически отображается на экране, а не с внутренней реализацией кода приложения.
  • Устойчивость к изменениям: Если визуальное представление кнопки остается прежним, тест продолжит работать, даже если ее внутренний ID в коде был изменен.
  • Тестирование визуального аспекта: Позволяет автоматизировать проверки, которые ранее выполнялись только вручную: корректность отображения шрифтов, цветовых схем, элементов.
  • Работа с динамическими и кастомными элементами: Идеально подходит для приложений со сложной графикой (игры, кастомные UI-киты).

Слабые стороны и ограничения:

  • Зависимость от качества изображения: Разрешение, освещение, визуальные шумы — все это напрямую влияет на точность распознавания.
  • Высокая стоимость обработки: Обработка изображений потребляет значительно больше ресурсов, чем работа с DOM-деревом, что может увеличивать время выполнения тестовых прогонов.
  • Сложность внедрения: Требует от специалиста глубоких познаний в компьютерном зрении и обработке изображений.
  • Обработка анимации: Элементы в движении крайне сложно корректно захватить и распознать.

Наши специалисты проведут комплексную оценку вашего приложения и предоставят подробный отчет с рекомендациями
Узнать подробнее

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

Как следует из перечня преимуществ и недостатков, основными сдерживающими факторами выступают:

  1. Зависимость от визуального качества. Низкое разрешение, блики, шумы — все это негативно сказывается на точности работы алгоритмов.
  2. Невозможность охватить все тест-кейсы. Это в особенности справедливо для сложной анимации и динамически изменяющегося контента, обработка которого представляет сложность.

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

Комбинирование Appium с инструментами компьютерного зрения (OpenCV, Tesseract) позволяет создать стабильное и устойчивое к изменениям решение. Такой гибридный подход гарантирует точность результатов и может быть адаптирован для различных приложений и платформ с минимальными доработками

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