×

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

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

Привет! Меня зовут Юлия Андреева, я 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% нашего трафика с удовольствием пользуются данными функциями.
Накрутка ПФ vs Бизнес: как накрутка поведенческих факторов «убьет» ваш бизнес в интернете
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Вообще бред несут-пункт позиции и там и там суотрудничать,банов нет,риски и остальные пункты просто смешно,пф гораздо эффективнее чем платить в пиксель)))
Что будет с SEO в 2026: эксперты рынка подводят итоги и делают прогнозы на этот год
Марал Гаипова
142
комментария
0
читателей
Полный профиль
Марал Гаипова - Дмитрий, спасибо, эксперты и правда - топ)
Мы сократили рутину SEO-специалиста на 95% – вот архитектура, которая это сделала
Гостьkorayaskin
2
комментария
0
читателей
Полный профиль
Гостьkorayaskin - Можно также посмотреть разбор инструментов типа KeywordKick — помогает быстрее понять, где именно конфликт сигналов.
GEO-продвижение: гайд повышения видимости бренда (сайта) в нейросетях
dayitrix
3
комментария
0
читателей
Полный профиль
dayitrix - Спасибо за разбор. Сейчас как раз в процессе изучения GEO-продвижения, хочется разобраться, как вообще попадать в ответы нейросетей. Ну и смотрю, уже услуги по такому продвижению начали появляться, типа Zenlink Geo. Но пока по большей части информацию собираем, что это и стоит ли в это лезть. Но учитывая то, что люди сейчас в основном через нейронной информацию ищут, было б неплохо, чтоб нейросети нас упоминали)
Где взять данные о GEO-видимости: 9 инструментов в одной статье
Евгений Молдовану
1
комментарий
0
читателей
Полный профиль
Евгений Молдовану - Хороший список, но используя подобные чекеры помните, что в GEO важен консенсус и если его нет, то на каждый запрос может формироваться свой ответ.
Конференция GEO 2026: как брендам попасть в ответы нейросетей
Дмитрий Севальнев
0
комментариев
0
читателей
Полный профиль
Дмитрий Севальнев - Мощно, мощно!
Что прямо сейчас можно сделать сайту регионального СМИ, чтобы получить мощный приток органического трафика
Дмитрий Севальнев
0
комментариев
0
читателей
Полный профиль
Дмитрий Севальнев - Максим, молодец! Хороший материал
ЦИПР 2026: МегаФон и IVA Technologies будут разрабатывать видеоконференцсвязь и корпоративный мессенджер для бизнеса
Гость
1
комментарий
0
читателей
Полный профиль
Гость - kGcphuFqEaLtvbAmlAYArEMX
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
393
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
142
Комментариев
130
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
66
Комментариев
60
Комментариев
59

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