В чем разница нативных, гибридных и мобильных веб-приложений
Что проверяют
Понимаете ли вы, как тип приложения меняет стратегию тестирования: на чём гонять, какими инструментами, какие риски главные. Определения здесь только вход. Следом обычно спрашивают, как вы будете тестировать WebView внутри нативного приложения или чем PWA отличается от обычного сайта.
Как отвечать
Дайте короткие определения и сразу привяжите их к тестам:
- нативное: написано под платформу на Swift или Kotlin, ставится из магазина. Риски: фрагментация устройств и версий ОС, разрешения, прерывания (звонок, сворачивание, потеря сети), обновление поверх старой версии. Инструменты: Espresso, XCUITest, Appium, облачные фермы устройств;
- гибридное: веб-код (HTML, CSS, JS) внутри нативной оболочки через WebView, например Ionic с Capacitor или Cordova. Риски: версия WebView (на Android это отдельно обновляемый System WebView, на iOS
WKWebViewпривязан к версии системы), мост между JS и нативными плагинами, работа офлайн. Инструменты: Appium с переключением контекстаNATIVE_APP/WEBVIEW, отладка черезchrome://inspectи Safari Web Inspector; - мобильное веб-приложение: сайт в мобильном браузере, иногда оформленный как PWA. Риски: разные браузеры и движки, вьюпорты, адаптивная вёрстка, ограничения API браузера. Инструменты: Playwright или Selenium с эмуляцией устройств плюс проверка на реальных телефонах.
Отдельно упомяните React Native и Flutter. Их часто ошибочно называют гибридными, но интерфейс там рисуется нативными компонентами или собственным движком, без WebView, и тестируют их скорее как нативные.
Где спотыкаются
Приводят примеры популярных сервисов по памяти. Архитектура крупных приложений менялась много раз, и уверенное «Uber гибридный» легко опровергнуть.
Считают, что гибридное приложение достаточно проверить в десктопном Chrome. Баги как раз живут в WebView конкретной версии и в нативных плагинах.
Для мобильного веба ограничиваются эмуляцией в DevTools. Она не воспроизводит настоящий Safari на iOS, экранную клавиатуру, жесты и производительность слабых устройств.