8. Тестирование жестов и сенсоров в мобильных приложениях

Братишка, сегодня разберём одну из самых хардкорных тем в мобильном тестировании — жесты и сенсоры. Если кнопки можно просто понажимать, то тут уже начинается магия: свайпы, мультитач, акселерометр, гироскоп, приближение... И всё это нужно тестить, чтобы юзеры не страдали от глюков.

🤔 Почему это важно?

📱 Мобильные приложения ≠ десктоп. Тут интерфейс взаимодействует не только с тачем, но и с железом: наклоны, встряхивания, приближения, жесты пальцами.
🔄 Нестабильное поведение. Разные телефоны могут интерпретировать одно и то же движение по-разному.
🎮 Игры и AR/VR. Тут вообще без сенсоров и жестов никуда.

📌 Тестирование жестов

1 Основные жесты

8. Тестирование жестов и сенсоров в мобильных приложениях

📌 Как тестить?

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

Автоматизация: Appium + MultiTouch

from appium.webdriver.common.multi_action import MultiAction from appium.webdriver.common.touch_action import TouchAction action1 = TouchAction(driver).press(x=100, y=100).move_to(x=200, y=200).release() action2 = TouchAction(driver).press(x=200, y=200).move_to(x=100, y=100).release() multi = MultiAction(driver) multi.add(action1, action2) multi.perform()

📌 Эмуляторы и ручное тестирование

  • Android Studio Emulator — умеет эмулировать свайпы, пинч, масштаб.
  • Xcode Simulator (iOS) — можно тестить базовые жесты.
  • Физическое устройство — потому что эмуляторы не всегда ведут себя как реальные телефоны.

📌 Тестирование сенсоров

2 Акселерометр и гироскоп (наклоны, встряхивания, ориентация экрана)

📌 Как тестить?

✅ Переключение экрана (Portrait / Landscape).
✅ Реакция на встряхивание (например, отмена действия).
✅ Игры и AR — работают ли повороты?

Ручное тестирование

  • Android Studio → Extended Controls → Sensors (можно эмулировать наклоны).
  • Xcode Simulator → Features → Shake Gesture (встряхивание).

Appium: тест смены ориентации

driver.orientation = "LANDSCAPE" assert driver.orientation == "LANDSCAPE" driver.orientation = "PORTRAIT" assert driver.orientation == "PORTRAIT"

3 Датчик приближения (Proximity Sensor)

Используется для отключения экрана во время звонка или взаимодействия с приложениями, требующими приватности (банкинг).

📌 Как тестить?

✅ Закрыть датчик рукой (или использовать инструмент эмуляции).
✅ Проверить, включается ли экран обратно после убирания руки.
✅ Тестить на реальных девайсах, т.к. эмуляция бывает кривоватой.

Эмуляция на Android

adb shell dumpsys sensorservice | grep Proximity

4 Датчик освещённости (Light Sensor)

Используется для автояркости экрана и ночных режимов.

📌 Как тестить?

✅ Проверить адаптацию яркости в темноте и при ярком свете.
✅ Эмулировать разные уровни освещения через специальные инструменты (или просто фонарик 🤷‍♂).

5 GPS и геолокация

Приложения с картами, доставками, геометками (Instagram, Uber).

📌 Как тестить?

✅ Менять координаты и проверять реакцию приложения.
✅ Подставлять фейковые локации через ADB / Xcode.
✅ Отключать GPS и смотреть, как ведёт себя приложение.

Эмуляция локации на Android

adb shell am startservice -a com.android.location.service.v2.FAKE_LOCATION --es lat 59.9342802 --es lon 30.3350986

Эмуляция локации в Xcode

  • Debug → Location → Custom Location.

📊 Логирование и мониторинг жестов и сенсоров

Чтобы понять, какие жесты чаще всего используют юзеры, нужно логировать события.

📌 Firebase Analytics (Android)

val bundle = Bundle() bundle.putString("gesture", "swipe_left") firebaseAnalytics.logEvent("gesture_event", bundle)

📌 Heap / UXCam – записывают видео сессий юзеров.

🛠 Инструменты для тестирования жестов и сенсоров

8. Тестирование жестов и сенсоров в мобильных приложениях

📌 Итоги

🔥 Жесты и сенсоры — это сложная, но важная часть мобильного UX.
📡 Тестируем не только клики, но и свайпы, наклоны, встряхивания.
🛠 Лучшие инструменты: Appium, Android Studio, Xcode, Firebase Analytics.
🚀 Без тестов юзеры будут страдать, а мы – получать багрепорты.

Начать дискуссию