В современном мире без мобильных приложений никуда. Их стабильная и правильная работа требует особого подхода к тестированию, особенно когда речь идёт о кросс‑платформенных приложениях, работающих в iOS и Android. В этой статье я поделюсь своим опытом и трудностями, которые могут встретиться в процессе тестирования приложений в упомянутых ОС.
Особенности тестирования в iOS и Android
Для проверки работы мобильных приложений в iOS и Android нужно знать особенности каждой из операционных систем. Они связаны с тем, как устроены сами системы, как выглядят программы на экране и какие функции доступны на разных устройствах.
Тестирование в iOS
iOS — закрытая экосистема Apple, где разработчики имеют ограниченный доступ к низкоуровневым функциям системы. Это связывает руки и накладывает определённые ограничения на процесс тестирования. Например, для запуска тестов на реальных устройствах необходимо использовать сертифицированные устройства от Apple, что может потребовать значительных затрат. Кроме того, тестирование в iOS часто включает в себя проверку специфических функций, таких как Siri, Assistive Touch и VoiceOver.
Тестирование в Android
Android, напротив, является открытой платформой, что предоставляет разработчикам больше свободы действий, но одновременно создаёт дополнительные сложности. Одной из главных проблем является фрагментация устройств и версий ОС. Android работает на огромном количестве различных моделей смартфонов и планшетов, каждая из которых может иметь свою уникальную конфигурацию аппаратного обеспечения и программного обеспечения.
Пример из практики: часто я сталкиваюсь с проблемами тестирования на устройствах Samsung. Нередко с ними происходят неочевидные версионные баги, которые порой приходится долго локализовать и впоследствии чинить. Когда до релиза остаётся мало времени, всегда пытаемся найти компромисс:
Разработка: «Редкий девайс, баг не критичен».
Бизнес: «Критично!! Надо фиксить ещё вчера».
Так и живём, в гармонии и балансе 😅
Для компаний с большим бюджетом на тестирование закупаются партии мобильных устройств с разными версиями ОС. На данный момент мы тестируем приложения в четырёх версиях iOS и семи версиях Android. А что делать, если денег нет, а тестировать нужно?
Можно закупить самые популярные устройства по статистике, которую публикует каждый год компания Google. По итогам 2023г. статистика выглядит следующим образом:
-
Android 13: 15% → 22,4%
-
Android 12: 16,3% → 15,8%
-
Android 11: 23,1% → 21,6%
-
Android 10: 17,8% → 16,1%
-
Android 9: 11,9% → 10,5%
-
Android 8.1: 6,1% → 5,4%
-
Android 8: 2,2% → 1,9%
-
Android 7.1: 1,5% → 1,3%
-
Android 7: 1,5% → 1,3%
-
Android 6: 2,3% → 1,9%
-
Android 5.1: 1,5% → 1,2%
-
Android 5: 0,3% → 0,2%
-
Android 4.4: 0,5 % → 0,4 %
Использование эмуляторов и симуляторов
Эмуляторы и симуляторы могут помочь и сэкономить как время, так и деньги в процессе кросс‑платформенного тестирования, позволяя разработчикам и тестировщикам быстро проверять функциональность приложений без необходимости использования реальных устройств.
Эмуляторы
Эмулятор — это программа, которая полностью имитирует работу целевого устройства, включая его аппаратное и программное обеспечение. Он позволяет тестировать приложения в условиях, максимально приближенных к реальным, и выявлять многие виды ошибок, связанных с взаимодействием с железом.
Однако следует учитывать, что эмуляторы не всегда идеально воспроизводят поведение реальных устройств. Например, они могут некорректно обрабатывать такие вещи, как датчики движения или работу с камерой.
Симуляторы
Симулятор — это инструмент, который имитирует только программную среду устройства, игнорируя его аппаратные характеристики. Он удобен для быстрой проверки функциональности и интерфейса приложения, но не подходит для тестирования производительности или взаимодействия с железом.
Несмотря на огромное преимущество в том, что можно запустить виртуальное устройство на любом ПК, у них есть и серьёзные недостатки. Приведу в пример некоторые из них:
-
Ограниченная производительность: эмуляторы часто работают медленнее реальных устройств, особенно когда дело касается сложных графических элементов или ресурсоёмких задач.
-
Отсутствие точного воспроизведения поведения устройства: симуляторы и эмуляторы не всегда точно воспроизводят поведение реального устройства, что может привести к пропуску некоторых багов или неправильной оценке производительности.
-
Неадекватная поддержка аппаратных функций: датчики движения, камеры или GPS могут работать иначе или вообще отсутствовать в эмуляторах и симуляторах.
-
Проблемы с сетью: виртуальные сети могут отличаться от реальных условий подключения, что затрудняет проверку работы приложения в условиях нестабильного соединения или слабого сигнала.
В нашей компании есть классное решение — ферма мобильных устройств.
Всё это похоже на майнинг‑ферму, только тут смартфоны подключаются к общему серверу, который транслирует экран и предоставляет удалённый доступ для пользователя. На всех устройствах активируется режим разработчика и включается отладка по USB. Тестировщики могут работать на общих устройствах, что существенно экономит бюджет и время на настройку каждого из устройств.
Вы спросите: «А как же быть, если нескольким тестировщикам нужен один и тот же смартфон на ферме?» Да, бывает, нужно подождать в очереди. Прокачиваем свои навыки коммуникации и терпения, узнаём, кто последний, и тестируем, тестируем и ещё раз тестируем! Хорошо, что такое бывает очень редко.
При кросс‑платформенном тестировании меня часто преследуют проблемы совместимости между различными операционными системами и устройствами. Ниже приведены примеры таких проблем и пути их решения на основе моего личного опыта.
Одна из самых известных проблем при разработке под Android — это фрагментация устройств и версий ОС. Каждый производитель модифицирует стандартную версию ОС, добавляя свои собственные настройки и компоненты. Если вы пользовались устройствами Pixel от Google, то знаете, что такое чистый Android и какое удовольствие его использовать.
Или же, например, Xiaomi со своими MIUI и HyperOS.
Samsung в своих устройствах использует OneUI.
EMUI от Huawei.
Эти оболочки можно перечислять очень долго, я показал всего лишь самые популярные из них. Каждый производитель старается персонализировать чистую версию под своё видение удобства для пользователя. Это приводит к тому, что одно и то же приложение может вести себя по‑разному на разных устройствах.
А ещё есть большое количество пользователей, которые любят кастомизировать ОС, устанавливая дополнительные лончеры, получают root‑доступ или ставят кастомные прошивки от сторонних разработчиков. Чем, собственно, я и занимался лет десять назад, когда Xiaomi и Meizu выпускали свои первые дешёвые устройства со слабым ПО, но хорошим железом. Это были времена «топ за свои деньги!».
Для iPhone это не свойственно, за что мы и любим компанию Apple. Одна ОС, которая меняется только с выходом новой версии. И на любом устройстве, которое поддерживается, она будет работать и выглядеть одинаково.
Оптимизация тестирования
Оптимизация кросс‑платформенного тестирования играет ключевую роль в повышении эффективности работы команды и снижении времени вывода продукта на рынок. Внедрение автоматизации и интеграция CI/CD‑процессов могут значительно ускорить разработку и улучшить качество конечного продукта.
Автоматизированное тестирование
Автоматизация тестирования позволяет выполнять повторяющиеся задачи быстрее и точнее, чем вручную. Она особенно полезна при проверке базовых функций приложения, которые остаются неизменными от релиза к релизу. Зачастую автоматизируют регресс‑сценарии, чтобы сэкономить время на ручное тестирование новых функциональностей.
Заключение
Кросс‑платформенное тестирование мобильных приложений — это многослойный процесс, требующий комплексного подхода и применения разнообразных инструментов. Основываясь на своем опыте, могу сделать вывод, что успешное тестирование зависит от правильного выбора эмуляторов, симуляторов и физических устройств, умения решать проблемы совместимости и оптимизации процесса тестирования.
Используя лучшие практики и опираясь на личный опыт, можно добиться высокого качества приложений, которые будут работать стабильно на различных устройствах и операционных системах.
Если статья была интересна, подпишись на мой телеграмм канал. Там я пишу посты про Сбер, работу в IT, личные мысли и опыт работы тестировщиком.
https://t.me/qaegor
ссылка на оригинал статьи https://habr.com/ru/articles/859546/
Добавить комментарий