#swift #testing #images
How to test iOS app features that produce complex outputs like images | Live Dev Mentoring (33 минуты)
🗣 Знаете ли вы как тестировать фичи, которые создают такие данные, как например, картинки?
Caio и Mike регулярно проводят менторинг-сессии, в рамках которых разбирают интересные проблемы. Их можно смотреть и перенять предложенное решение. А возможно, иногда и увидеть, какой путь тебе не подходит, не расходуя время на его реализацию.
How to test iOS app features that produce complex outputs like images | Live Dev Mentoring (33 минуты)
🗣 Знаете ли вы как тестировать фичи, которые создают такие данные, как например, картинки?
Caio и Mike регулярно проводят менторинг-сессии, в рамках которых разбирают интересные проблемы. Их можно смотреть и перенять предложенное решение. А возможно, иногда и увидеть, какой путь тебе не подходит, не расходуя время на его реализацию.
Essential Developer
How to test iOS app features that produce complex outputs like images | Live Dev Mentoring — Essential Developer
Testing simple outputs like Strings or Integers is easy in Swift. What about testing iOS app features that produce complex outputs like images?
👎3👍1
Внедрение Allure (отчётность) в UI-тесты (swift, XCTest)
Преимущества связки xcresults с Allure (фреймворк для отчётности) при автоматизации UI тестов:
👉 процентное соотношение пройденных, проваленных, скипнутых и др. тестов
👉 таймлайн
👉 графики с количественной статистикой по статусам, длительности, ретраям и др.
👉 подробная информация по каждому тесту (название теста, ссылка на кейс, шаги, скриншот, длительность теста и каждого шага, ретраи, уровень критичности и др.)
👉 Allure используется при автоматизации других направлений (web, API)
#testing
Преимущества связки xcresults с Allure (фреймворк для отчётности) при автоматизации UI тестов:
👉 процентное соотношение пройденных, проваленных, скипнутых и др. тестов
👉 таймлайн
👉 графики с количественной статистикой по статусам, длительности, ретраям и др.
👉 подробная информация по каждому тесту (название теста, ссылка на кейс, шаги, скриншот, длительность теста и каждого шага, ретраи, уровень критичности и др.)
👉 Allure используется при автоматизации других направлений (web, API)
#testing
🔥2👎1
Как провести эффективное тестирование мобильных приложений? Стратегия пятиуровневой пирамиды тестов
Взяв за основу тестовую пирамиду Мартина Фаулера, авторы создали свой вариант пирамиды, состоящий из 5 уровней. Двигаясь от нижнего к верхнему уровню, все меньше зависимостей должно быть заменено моками и все сильнее растет стоимость реализации теста (вторая картинка).
#testing
Взяв за основу тестовую пирамиду Мартина Фаулера, авторы создали свой вариант пирамиды, состоящий из 5 уровней. Двигаясь от нижнего к верхнему уровню, все меньше зависимостей должно быть заменено моками и все сильнее растет стоимость реализации теста (вторая картинка).
#testing
👍6👎1
unit-тестирование здорового человека ч.1
Основной смысл модульного тестирования заключается в том, чтобы избежать накапливания ошибок в будущем, а также исключить регрессию уже отлаженных модулей.
Плюсы юнит-тестов:
👉 Выгода на долгой дистанции
👉 Рефакторинг проще
👉 Скорость поддержки
👉 Переиспользование кода
👉 Документация кода
👉 Дополнительные гарантии. Особенно, когда возвращаешься через пол года к коду и сомневаешься была ли выполнена проверка должным образом
#testing
Основной смысл модульного тестирования заключается в том, чтобы избежать накапливания ошибок в будущем, а также исключить регрессию уже отлаженных модулей.
Плюсы юнит-тестов:
👉 Выгода на долгой дистанции
👉 Рефакторинг проще
👉 Скорость поддержки
👉 Переиспользование кода
👉 Документация кода
👉 Дополнительные гарантии. Особенно, когда возвращаешься через пол года к коду и сомневаешься была ли выполнена проверка должным образом
#testing
🔥6👎5👍1🤔1
A Better Way To Test Reference Cycles in iOS
Как реализовать тестирование на цикл сильных ссылок:
1️⃣ В тестовом классе добавляем
2️⃣ Определяем вспомогательный метод, который инициализирует тестируемый объект и присваивает
3️⃣ В методе
4️⃣ В методах с тестами инициализируем тестируемый объект с помощью метода из 2 шага
Если обнаруживается цикл сильных ссылок, то в методе tearDown будет ошибка
#testing #memory
Как реализовать тестирование на цикл сильных ссылок:
1️⃣ В тестовом классе добавляем
weak var weakSUT
на тестируемый объект2️⃣ Определяем вспомогательный метод, который инициализирует тестируемый объект и присваивает
weakSUT
его значение 3️⃣ В методе
tearDown
добавляем проверку, что weakSUT
имеет значение nil4️⃣ В методах с тестами инициализируем тестируемый объект с помощью метода из 2 шага
Если обнаруживается цикл сильных ссылок, то в методе tearDown будет ошибка
#testing #memory
👍5👎1
Test Plans — теперь по умолчанию для новых проектов с Xcode 14.3 (2 мин)
В Xcode 14.3 для новых проектов по умолчанию используется Test Plan. Данный план тестирования по умолчанию в редакторе Test Plan помечен как Autocreated (создан автоматически), он может быть просмотрен и изменен, как и обычный. Для нового проекта, если вы откроете схему по умолчанию, план тестирования будет указан в разделе Test, а кнопка преобразования не появится
#testing
В Xcode 14.3 для новых проектов по умолчанию используется Test Plan. Данный план тестирования по умолчанию в редакторе Test Plan помечен как Autocreated (создан автоматически), он может быть просмотрен и изменен, как и обычный. Для нового проекта, если вы откроете схему по умолчанию, план тестирования будет указан в разделе Test, а кнопка преобразования не появится
#testing
👎1🤩1
[iOS] Make your app suitable for UI auto-testing (10 мин)
Можно добавить в свое приложение бекдоры, скрытые от пользователя, такие как изменения API URL, работу с фича тогглами, пропуски онбордингов и т.д. Это поможет сделать тестирование более атомарным, уменьшить время прогона, улучшить стабильность и поработать с тестовым покрытием.
В статье приведены инструменты и примеры их работы для контроля и работы с UI тестами:
👉 launchArguments and launchEnvironment
👉 SBTUITestTunnel
👉 mac host — test app tunnel
#testing
Можно добавить в свое приложение бекдоры, скрытые от пользователя, такие как изменения API URL, работу с фича тогглами, пропуски онбордингов и т.д. Это поможет сделать тестирование более атомарным, уменьшить время прогона, улучшить стабильность и поработать с тестовым покрытием.
В статье приведены инструменты и примеры их работы для контроля и работы с UI тестами:
👉 launchArguments and launchEnvironment
👉 SBTUITestTunnel
👉 mac host — test app tunnel
#testing
👍2👎1
Forwarded from Android Broadcast (Кирилл Розов)
Инженеры AvitoTech разработали инструмент для ускорения автотестов мобильных приложений — Emcee
Тест-раннер раскидывает тесты на несколько воркеров, параллелит их и формирует единый файл с результатами. Время полного тестирования сокращается в разы, а разработчики освобождаются от рутины.
Можно попробовать бесплатно или сразу разогнать тестирование на полную мощность.
Больше подробностей — в официальном канале Emcee @runner_emcee, а обсудить можно в чате
#testing #tooling
Тест-раннер раскидывает тесты на несколько воркеров, параллелит их и формирует единый файл с результатами. Время полного тестирования сокращается в разы, а разработчики освобождаются от рутины.
Можно попробовать бесплатно или сразу разогнать тестирование на полную мощность.
Больше подробностей — в официальном канале Emcee @runner_emcee, а обсудить можно в чате
#testing #tooling
👍3👎3
Forwarded from Android Broadcast (Кирилл Broadcast)
Вышел новый релиз Emcee - решения для ускорения прогонов тестов для Android и iOS. Что нового (иконкой помечена категория)
🤖 Реализовали новый способ запуска тестов - через командную строку с помощью JAR
🤖 Поддержали запись видео прогонов тестов.
🍎 Поддержали новый механизм дискаверинга тестов — runtimeXCTest.
🍎 Теперь можно запускать тесты таких альтернативных фреймворков, как Quick, Kiwi и других.
🍎 Улучшили управление ресурсами и процессами очистки и поменяли уровень подробностей логов с trace на debug. Без лишней детализации проще находить и анализировать проблемы в коде. А чем больше свободных ресурсов, тем быстрее скорость следующих запусков
☁️ Поддержали запуск Appium-тестов
☁️ Выкатили Emcee.cloud Actions - интеграция Emcee Cloud в GitHub Actions
Emcee для iOS можно скачать из GitHub , а для Android - образ на Docker Hub. Как вариант попробовать все через Emcee Cloud.
#tooling #testing
☁️ Поддержали запуск Appium-тестов
☁️ Выкатили Emcee.cloud Actions - интеграция Emcee Cloud в GitHub Actions
Emcee для iOS можно скачать из GitHub , а для Android - образ на Docker Hub. Как вариант попробовать все через Emcee Cloud.
#tooling #testing
Please open Telegram to view this post
VIEW IN TELEGRAM