Приходилось ли тестировать deep links?

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

Ответ

Да, тестирование deep links — стандартная часть моей работы при проверке мобильных приложений. Deep link — это специальная ссылка, которая открывает приложение и ведет пользователя на конкретный экран или выполняет действие.

Мой подход к тестированию:

  1. Позитивные сценарии: Проверяю, что валидная ссылка корректно открывает нужный экран с правильными параметрами.

    // Пример теста на Espresso для Android
    @Test
    fun testDeepLinkToProductDetails() {
        val deepLinkUri = "myapp://products/details?id=123&source=email"
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLinkUri))
    
        activityScenario.launchActivity(intent)
    
        // Проверяем, что открылся экран деталей товара
        onView(withId(R.id.product_title)).check(matches(isDisplayed()))
        // Проверяем, что ID товара передан корректно
        onView(withId(R.id.product_id)).check(matches(withText("123")))
    }
  2. Негативные сценарии: Проверяю обработку битых или невалидных ссылок (например, с отсутствующим параметром id). Приложение должно либо показать понятную ошибку, либо открыть fallback-экран (например, главную).
  3. Сценарии с не установленным приложением: Проверяю, что веб-версия ссылки (App Links/Universal Links) корректно открывается в браузере, а также что есть редирект в магазин приложений.

Для тестирования я использую как ручные проверки, так и автоматизированные тесты, интегрированные в CI.