×

Шпаргалка для QA: как тестировать Flutter-приложения

Россия +7 (909) 261-97-71
Шрифт:
0 899
Подпишитесь на нас в Telegram

Привет! Меня зовут Юлия Андреева, я QA-специалист в AGIMA. Мы много работаем с Flutter-приложениями, и я заметила, что не все понимают их специфику. В этой статье расскажу о ключевых инструментах и подходах, которые применяются именно к тестированию Flutter.

Что важно знать о Flutter

Flutter – это кросс-платформенный фреймворк от Google. С его помощью можно разрабатывать приложения сразу для Android, iOS, Web и даже десктопа. Сегодня в Google Play уже более 700 тысяч Flutter-приложений. 

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

Особенности тестирования Flutter-приложений

Попробую суммировать, какие тонкости наша команда замечает при работе с Flutter-проектами. Я их объединила в три большие группы.

● Архитектура Flutter.

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

● Кросс-платформенность.

Можно сильно сэкономить время на тестировании приложения для каждой платформы. Платформенно-специфические функциональности тестируешь отдельно на iOS и на Android, всё остальное – на какой-то одной.

● Специфические инструменты тестирования.

Flutter предоставляет собственные инструменты для тестирования виджетов и интеграционного тестирования, например FlutterDevTools.

Проблемы и их решение при тестировании Flutter-приложений

Самая популярная проблема – отслеживание трафика. Dart обычно использует высокоуровневые библиотеки для HTTP-запросов. Библиотеки инкапсулируют низкоуровневые детали сетевого взаимодействия. И это затрудняет прямой доступ или мониторинг данных – как отправляемых, так и получаемых.

Проблема решается подключением прокси-сервера. Лучше всего добавить этот функционал в вашу инженерную панель.

При тестировании различий UI/UX на разных платформах чаще всего мы сталкивались с такими проблемами:

  • Проблемы с анимацией, обращайте внимание на переходы и скроллы, особенно на iOS-устройствах.
  • Работа с жестами при закрытии и свайпах экранов.
  • Отображение системных диалоговых окон.

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

Кроме того, в решении любых проблем помогает Flutter DevTools.

Flutter DevTools

Этот комплект инструментов для отладки и профилирования в экосистеме Flutter дает нам возможность глубоко анализировать и тестировать приложения. Мы можем использовать его для инспекции иерархии виджетов. Это помогает выявлять проблемы с UI, а также мониторить производительность и использование памяти приложения.

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

Flutter DevTools

Так выглядит интерфейс Flutter DevTools

Интеграция голден тестов в процесс разработки

Мы также активно внедряли голден тесты в наши процессы разработки. Команда тестирования участвовала в разработке сценариев для этих тестов.

Голден тесты – это специальные тестовые сценарии, которые записывают ожидаемые результаты выполнения приложения.

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

Пример реализации:

Пример реализации

Внедрение автоматизации

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

Что необходимо учитывать:

  • Flutter-совместимость. Наши тесты должны говорить на одном языке с Flutter, так что выбирайте инструмент, дружащий с Dart. Среди них Selenium, Patrol, утилиты integration_test (ex-Flutter Driver), библиотеки flutter_gherkin().
  • Кросс-платформенность. Flutter не знает границ, так что и наш фреймворк должен уметь работать и на Android, и на iOS.
  • Дружба с CI/CD. Хотите скорости и удобства? Убедитесь, что ваш фреймворк ладит с Jenkins, GitLab и прочими CI/CD-инструментами.
  • Популярность в индустрии. Выбирайте фреймворк, который имеет большое комьюнити.

Наш выбор пал на Appium – это открытый инструмент для автоматизации тестирования мобильных приложений, который поддерживает множество платформ, так же как и Flutter. Тесты для Appium можно писать на разных языках программирования. А еще он легко интегрируется с системами непрерывной интеграции и доставки (CI/CD).

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

В итоге с помощью Appium мы сильно сократили время на регрессионное тестирование. Ранее полный регресс в нашей команде занимал до 90 часов, а после автоматизации время сократилось до 33 часов. Среднее время выполнения одного теста ~1,5 минуты. Около 10% дефектов заводилось благодаря автотестам.

Параметризацией и оптимизацией тестовых сценариев удалось уменьшить количество тест-кейсов с 1334 до 483 – более чем в два раза! Параметризация позволила сделать тесты более гибкими и адаптировать их под различные условия. В итоге мы стали эффективнее распределять наши ресурсы и уделять больше внимания новым функциям и улучшениям.

End-2-end тест

End-2-end тест на 6 страниц проходит всего за полторы минуты

Заключение

Тестирование Flutter-приложений требует специфического подхода, учитывающего уникальные особенности фреймворка.

Раннее тестирование с использованием голден тестов, оптимизация процессов, применение автоматизации с параметризацией на основе Appium и интеграция с CI/CD позволяют повысить эффективность и точность тестирования для вашего продукта. В этом мы убедились на собственном опыте.


Есть о чем рассказать? Тогда присылайте свои материалы в редакцию.


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Как ИИ усиливает маркетинг и помогает общаться с пользователем
Иван
1
комментарий
0
читателей
Полный профиль
Иван - Классная статья, забрал Хотелось бы услышать еще от эксперта мнение про модели в таком случае и дисперсию
Тренды e-commerce 2026: рынок ждет отток с маркетплейсов?
Арина
1
комментарий
0
читателей
Полный профиль
Арина - Мы пробовали разные сервисы, но уже давно используем этот сервис tryon.mall-er.com у них есть и Визуальный поиск и Виртуальная примерка. Мы пользуемся Виртуальной примеркой очков и поиском и внедрили себе на сайт, сейчас порядка 80% нашего трафика с удовольствием пользуются данными функциями.
Что будет с SEO в 2026: эксперты рынка подводят итоги и делают прогнозы на этот год
Марал Гаипова
142
комментария
0
читателей
Полный профиль
Марал Гаипова - Дмитрий, спасибо, эксперты и правда - топ)
SEO-анализ сайта – новый сервис для технического аудита сайта
Олег Алексеев
1
комментарий
0
читателей
Полный профиль
Олег Алексеев - Сюда t.me/obivaaan или сюда t.me/olegalexeyev
Лучшие бесплатные редакторы видео
Сергей
22
комментария
0
читателей
Полный профиль
Сергей - По-моему, тут в минусах явно не хватает пункта о наложении водяного знака - можно все минусы стерпеть, но если у видео будет водяной знак, то зачем вообще таким приложением пользоваться? Если только для тестирования. А вы много тестируете? Вряд ли. Поэтому непонятно почему авторы статьи не внесли самый важный пункт в список недостатков. Лишь пару раз это всплывает во писаниях, а должно быть везде!
Лучшие шаблоны сайтов на 1С-Битрикс: обзор топ-10 готовых решений
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Как только увидел в первых двух "лучших" Аспро и INTEC дальше читать не стал. О первых очень наслышан, со вторым имел годовой опыт счастливого общения после покупки шаблона.
Что прямо сейчас можно сделать сайту регионального СМИ, чтобы получить мощный приток органического трафика
Дмитрий Севальнев
128
комментариев
0
читателей
Полный профиль
Дмитрий Севальнев - Максим, молодец! Хороший материал
Пользователи смогут создавать видео на основе изображений в приложении Алиса
ангелина
1
комментарий
0
читателей
Полный профиль
ангелина - сгенерируй видео где пожилой мужчина больших размеров танцевал балет и резко вылетел в окно
MAX прошел хакерскую проверку на ZeroNights
Игорь
2
комментария
0
читателей
Полный профиль
Игорь - Когда нужно быстро понять, что происходит с каналами в MAX можно зайти на сервис maxdash.ru/ Пользоваться очень удобно: видно рост подписчиков, охваты, вовлечённость, какие каналы сейчас реально растут. Всё собрано в одном месте, без лишней возни с таблицами. Помогает трезво оценивать результаты и принимать решения не «на глаз», а по цифрам.
GEO-продвижение: гайд повышения видимости бренда (сайта) в нейросетях
Дмитрий Севальнев
128
комментариев
0
читателей
Полный профиль
Дмитрий Севальнев - Вай, кайф!
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
393
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
142
Комментариев
128
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
66
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!