Доклад

🧙‍♂️ (Не)вероятный доклад! 🧙‍♂️ Тестирование UI в iOS с XCTest

  • На русском языке

Это фейковый спикер. И даже доклад нереальный. То есть из будущего.

Но зато это неслучайная страница — она здесь, чтобы привлечь ваше внимание.

Мысль такая:

Мы приложим все усилия, чтобы на конференции Mobius 2025 Spring в апреле — было выступление на похожую тему. Когда найдем такого спикера — обязательно включим его в программу конференции.

  • Если вы разбираетесь в этой теме — то давайте вы и выступите с похожим докладом на эту тему? Мы серьезно!

Вся конкретика и детали, нюансы и кейсы, интерпретация и презентации — все на ваш вкус!

➡️ Достаточно подать заявку на выступление. ⬅️

Со всем остальным мы (еще как!) поможем и ответим на все вопросы, если что.

Это ненастоящий план доклада — приходите со своим

Тестирование UI в iOS с XCTest

Введение

Цель доклада. Рассмотреть методы и техники тестирования пользовательского интерфейса (UI) в iOS-приложениях с использованием фреймворка XCTest.

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

1. Основы XCTest

Что такое XCTest?

  • Обзор фреймворка: интеграция с Xcode, поддержка Swift и Objective-C.
  • Основные возможности: создание модульных, интеграционных и UI-тестов.

Типы тестов в XCTest:

  • Модульные тесты.
  • Интеграционные тесты.
  • UI-тесты.
  • Тесты производительности.

2. UI-тестирование с использованием XCTest

Зачем нужно UI-тестирование?

  • Проверка функциональности интерфейса.
  • Устранение ошибок взаимодействия пользователя с приложением.

Создание UI-тестов:

  • Настройка проекта для тестирования: создание новой цели (Test Target) в Xcode.
  • Пример кода для записи простого UI-теста.

3. Низкоуровневые оптимизации в UI-тестах

Оптимизация производительности тестов:

  • Использование асинхронных методов и ожиданий (например, waitForExistence(timeout:)).
  • Избегание жестких задержек и использование встроенных механизмов ожидания.

Модульность тестов. Создание переиспользуемых компонентов тестов для упрощения поддержки и расширяемости.

4. Нетривиальные техники тестирования

Работа с динамическими элементами UI:

  • Использование XCUIElementQuery для поиска элементов.
  • Применение предикатов для более точного поиска элементов.

Обработка сложных сценариев:

  • Тестирование взаимодействий с алертами и модальными окнами.
  • Создание сценариев для проверки различных состояний приложения.

5. Новые возможности XCTest в последних версиях

  • Обновления в Xcode 16. Новые API для улучшения работы с ожиданиями (waitForNonExistence(withTimeout:)).
  • Интеграция с CI/CD системами. Автоматизация запуска тестов в процессе непрерывной интеграции.

6. Примеры успешного применения

Кейс из практики. Оптимизация процесса тестирования в компании:

  • Снижение объема ручного тестирования.
  • Улучшение качества приложения через автоматизацию.

Заключение

  • Выводы. Внедрение автоматизированного UI-тестирования с использованием XCTest значительно повышает качество приложений и ускоряет процесс разработки.
  • Вопросы и обсуждение. Открытое обсуждение, ответы на вопросы участников конференции.

Рекомендации по подготовке

  • Подготовить примеры кода для демонстрации.
  • Использовать визуальные графики для иллюстрации улучшений в процессе тестирования.
  • Рассмотреть возможность интерактивной части, где участники смогут задать вопросы по конкретным аспектам тестирования.

ИТОГО:

[Подать заявку]

Доклады