Как компьютерное зрение помогает автоматизировать тестирование мобильных приложений
14 ноября 2018
Дата публикации
Тестирование ПО
Тестирование мобильных приложений
В условиях цифровой трансформации ключевыми факторами успеха становятся скорость и качество выпуска продукта. Автоматизация тестирования прочно вошла в жизненный цикл разработки ПО, однако классические подходы демонстрируют свою ограниченность, особенно в контексте кроссплатформенных мобильных приложений, насыщенных динамическими элементами.
Как осуществлять проверку визуального представления и поведения интерфейса, когда такие инструменты, как Appium, не могут «увидеть» элементы, лишенные уникальных идентификаторов? Решение заключается в технологии, наделяющей машины возможностью «видеть» и анализировать визуальный контент — в компьютерном зрении.
Данный материал представляет собой детальное руководство о принципах работы компьютерного зрения, о том, как оно трансформирует автоматизированное тестирование, и какие инструменты позволяют выйти за границы стандартных проверок.
Что такое компьютерное зрение
Компьютерное зрение (Computer Vision, CV) — это раздел искусственного интеллекта, наделяющий компьютеры и машины способностью извлекать ценную информацию из визуальных источников: изображений, видеопотоков и иных медиаформатов.
Что представляет собой компьютерное зрение на практике? Это не просто фиксация изображения, а способность системы анализировать его содержание, обнаруживать объекты, определять их местоположение, классифицировать и принимать решения на основе проведенного анализа. Его становление и эволюция вызваны желанием автоматизировать операции, интуитивно понятные человеку, — к примеру, идентифицировать лицо или интерпретировать текст.
Главная задача компьютерного зрения — не только повторить, но и превзойти возможности человеческого зрительного восприятия для решения комплексных проблем в промышленности, здравоохранении, безопасности и, безусловно, в сфере IT. К базовым функциям этой технологии относятся распознавание и детектирование объектов, категоризация изображений, семантическая сегментация и мониторинг перемещений.
Где используется компьютерное зрение
Где сегодня применяется компьютерное зрение? Области его использования обширны и многогранны. В повседневной жизни оно задействовано для разблокировки смартфонов по лицу, в социальных сетях — для автотегирования пользователей на фотографиях.
В медицинской диагностике компьютерный анализ изображений помогают врачам в раннем выявлении опухолей. В автомобилестроении беспилотные машины с применением CV распознают дорожные знаки, пешеходов и иные помехи. В розничной торговле системы на базе компьютерного зрения дают возможность автоматизировать расчеты в магазинах без кассиров (как в Amazon Go).
Пример применения компьютерного зрения в тестировании — это не просто обнаружение элементов на экране, но и подтверждение корректности отображения контента (к примеру, проверка соответствия рекламного баннера продвигаемому продукту), а также автообнаружение визуальных дефектов (таких как наложение компонентов интерфейса).
Доверьте тестирование ваших продуктов профессиональной команде экспертов
Возможности компьютерного зрения в автоматизации
В сфере автоматизации тестирования программного обеспечения компьютерное зрение решает принципиальную задачу — взаимодействие с графическим интерфейсом (GUI) на уровне его визуального представления, а не внутренней кодовой структуры. Это становится особенно важным для мобильных приложений, где элементы интерфейса часто не имеют уникальных идентификаторов или их свойства варьируются в зависимости от платформы (iOS/Android) и разрешения дисплея.
Процедура автоматизации мобильного тестирования с привлечением компьютерного зрения обычно основывается на комбинации нескольких инструментов. Например, интеграция Appium + OpenCV + Tesseract OCR позволяет выстроить стабильно работающее решение:
Автоматизированный тест создает скриншот экрана.
Алгоритмы компьютерного зрения (к примеру, из библиотеки OpenCV) обрабатывают изображение, обнаруживают контуры необходимых объектов (кнопок, текстовых полей) и вычисляют их координаты.
Когда требуется извлечь текст, подключается Tesseract OCR.
Найденные координаты передаются в 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-деревом, что может увеличивать время выполнения тестовых прогонов.
Сложность внедрения: Требует от специалиста глубоких познаний в компьютерном зрении и обработке изображений.
Обработка анимации: Элементы в движении крайне сложно корректно захватить и распознать.
Наши специалисты проведут комплексную оценку вашего приложения и предоставят подробный отчет с рекомендациями
Почему компьютерное зрение подходит не во всех случаях?
Как следует из перечня преимуществ и недостатков, основными сдерживающими факторами выступают:
Зависимость от визуального качества. Низкое разрешение, блики, шумы — все это негативно сказывается на точности работы алгоритмов.
Невозможность охватить все тест-кейсы. Это в особенности справедливо для сложной анимации и динамически изменяющегося контента, обработка которого представляет сложность.
Appium продолжает оставаться надежным инструментом для автоматизации мобильного тестирования. Тем не менее, для задач, связанных с визуальной верификацией и взаимодействием с динамическими элементами, его возможностей не всегда достаточно.
Комбинирование Appium с инструментами компьютерного зрения (OpenCV, Tesseract) позволяет создать стабильное и устойчивое к изменениям решение. Такой гибридный подход гарантирует точность результатов и может быть адаптирован для различных приложений и платформ с минимальными доработками
Закажите бесплатную консультацию по автоматизации мобильного тестирования с экспертами компании «Точка качества» и узнайте, как мы можем помочь улучшить ваш мобильный продукт.
Закрыть
Оставить заявку
Ваш запрос ценен для нас и будет обработан в кратчайшие сроки
Закрыть
Отправка резюме
Пожалуйста, заполните форму, и наш специалист свяжется с вами
Закрыть
Оставить заявку
Ваш запрос ценен для нас и будет обработан в кратчайшие сроки
Закрыть
Спасибо за заявку!
Наш менеджер свяжется с Вами в ближайшее время.
Закрыть
Ошибка
Произошла ошибка, пожалуйста, повторите запрос
Закрыть
Ошибка
Произошла ошибка, пожалуйста, повторите запрос
Мы используем файлы cookie, они помогают нам делать этот сайт удобнее для пользователя