Comments 17
Примите как данность — тестировать визуальную составляющую придется на костылях
Отсутствия адекватного инструмента, это прям сильно тормозящий фактор :/
Неужели вендоры Android и iOS не могут дать нормальной тулзы?
Они хотя бы делают что-то в этом направлении? :D
Вендоры Android и iOS пока не предлагают встроенных инструментов для глубокого визуального тестирования, так как фокусируются на базовой функциональности и безопасности платформ.
Однако экосистема мобильной разработки активно заполняет этот пробел через AI-платформы, облачные сервисы и кастомные решения, по аналогии с нашим, представленным в статье.
Проекты вроде Appium, которые поддерживается сообществом, постепенно добавляют функции для работы с графикой, но они всё ещё требуют доработки и имеют множество ограничений т.к. визуальные требования сильно варьируются между приложениями. Универсальный инструмент потребовал бы гибких настроек сравнения (например, допустимых отклонений в пикселях, исключение областей при сравнении и т.д.), что в целом сложно реализовать.
Со временем может что-то и появится универсальное и кросс-платформенное, но на текущий момент проще развивать свое и интегрироваться с AI в каких-то моментах чтоб снизить процент ручной работы
Appium этого просто не умеет, мир нативного
Уточнение - не Аппиум, а тотже XCUItest к примеру или UIAutomator2.
В iOS еще NSPredicate сильный локатор. Можете добавить как уточнение (на скрине он у вас кстати виднеется).
Про xPath можно добавить, что лучше забыть о нем. Особенно в iOS из-за сильного замедления при поиске элементов.
Flutter сейчас все больше и больше используют. Отдельная тема в мобильном направлении. Для Аппиума есть плагинчик для него.
Наконец можно упомянуть Espresso фраймворк для Андороида. Крайне мощный но бывает капризный в настройках. Тоже есть в Аппиуме поддержка.
Добрый день.
Спасибо за комментарий, правда есть неточности, исправлю.
Про xPath спорно, потому-что при условии наличия WebView забыть пока не получается, да и к сожалению, в нативе не всегда есть возможность оперативно разметку получить, поэтому в моменты безисходности, все равно случается его использование. =)
Тут плюс наверное в наличии осей. Если в ClassChain еще как-то можно интерпретировать, то UIAutomator2 c его .fromParrent() уже не на столько гибок.
Flutter, Espresso - да.
Можно отдельно ознакомиться, у нас в частности тоже ведутся работы по интеграции. Статья писалась на основании исторически сложившихся технологий, поэтому только то, что полноценно используется.
В качестве сниффера трафика порекомендую Proxyman, из личного опыта - он на порядок удобнее и "стабильнее" работает выше перечисленных
И ещё стоит помнить о том, что в мобильном тестирование процесс доставки приложение к конечному пользователю занимает намного больше времени, из-за необходимости аппрува со стороны сторов. Поэтому возрастает цена ошибки.
Несомненно, так и сторов сейчас прибавилось в кол-ве, не только Google и Apple, а скорость обработки обновлений везде разная.
Плюс сюда же, еще один не маловажный фактор, что даже если обновление и пройдет проверку, не все пользователи регулярно обновляют их на телефонах.
Можно даже выделить это, как еще одно отличие с веб 🙃
Если мы прямо хотим, чтобы все обновились, то для этого есть форс апдейты, которыми не стоит злоупотреблять, но стоит предусмотреть в своём приложении)
Это да, такие вещи присутствуют.
Я очень удивлюсь, если кто-то в целом не подразумевает такое в разработке, ведь бывают критичные обновления не сопоставимые со старыми версиями.
Я почему не добавлял информацию про подобные вещи?
Статья больше про тестирование в целом, как будто такие нюансы уже больше к разработке относятся или к углубленному пониманию жизненного цикла, что придет само в моментах обучения и работы как таковой.
Стоит ли это обсуждать конкретно в контексте данной статьи, как будто нет, но в общем и целом, согласен, что знание о такой возможности должно присутствовать =)
А ещё в мобилке (именно андроид) есть отдельная боль в виде китайских прошивок. Столько косяков выявляется именно на китайских телефонах... В такие моменты жаль, что не как у айфонов - пересели все на пиксель и от кучки багов избавились)
У меня есть личное устройство poco x3 nfc и, мне кажется, что когда разработчики в очередной раз видят замечание тестирования с заголовком "На устройстве Poco x3 nfc..." , они хотят меня прибить
А какая доля ваших пользователей на поко?)
Huawei, Honor - тоже проблем хватает самых разных, начиная от ADB взаимодействия заканчивая всевозможными отвалами в самых неожиданных местах =)
Почему у этой статьи средний уровень сложности?
Добрый день, я действительно выбирал между "Простым" и "Средним" уровнем сложности, смотрел доку хабра, по этой части, как по мне оно где-то между, поэтому остановился на среднем.
Приводятся аналогии и какие-то вещи в сравнение с веб-тестированием, кажется что без понимания процессов в целом, общее понимание статьи может пострадать.
Из веб-тестировщиков в мобильные: инсайты для тех, кто задумался о переходе