Приходилось ли тестировать push-уведомления?

«Приходилось ли тестировать push-уведомления?» — вопрос из категории Мобильное тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, тестировал push-уведомления многократно. Это критичная функциональность, и ее проверка включает несколько аспектов.

Что именно я проверяю:

  • Доставка и отображение: Получает ли устройство уведомление при разных состояниях приложения (запущено, свернуто, закрыто). Проверяю текст, иконку, звук и вибрацию.
  • Действие по тапу: Корректно ли уведомление открывает приложение и ведет на нужный экран (часто через deep link).
  • Логика триггеров: Правильно ли уведомление отправляется в ответ на нужное событие бэкенда (например, новое сообщение, статус заказа).
  • Группировка и управление: Как уведомления группируются (на iOS) и можно ли их очистить.

Пример автоматизации:

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

# Пример упрощенного скрипта для проверки (используя Appium и запрос к API)
import requests
from appium import webdriver

def test_scheduled_push():
    # 1. Через API бэкенда запланировать отправку push
    api_response = requests.post("https://api.example.com/send_push", 
                                 json={"userId": "test_user", "type": "reminder"})
    assert api_response.status_code == 200

    # 2. Подождать и проверить появление уведомления на эмуляторе
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    # ... код для открытия шторки уведомлений и проверки текста

Особое внимание уделяю пограничным случаям: отключение уведомлений в настройках, режим "Не беспокоить", отсутствие сети в момент отправки.