Какие инструменты и языки используются для разработки мобильных приложений
Что проверяют
Понимаете ли вы, на чём написано приложение, которое тестируете, и как это влияет на вашу работу. Тестировщику не нужно писать на Swift, но стек определяет, чем вы будете автоматизировать и где искать баги. Следом часто спрашивают, чем тестирование нативного приложения отличается от кроссплатформенного.
Как отвечать
Разложите ответ на платформы и инструменты тестировщика:
- iOS: Swift и SwiftUI, в старом коде Objective-C и UIKit, среда Xcode, симуляторы, логи в Console;
- Android: Kotlin и Jetpack Compose, в старом коде Java и XML-вёрстка, среда Android Studio, эмуляторы,
adbиlogcat; - кроссплатформа: Flutter на Dart, React Native на JavaScript или TypeScript, Kotlin Multiplatform, .NET MAUI. Поддержка Xamarin закончилась в 2024 году, его место занял MAUI;
- автоматизация: нативные Espresso и XCUITest, Appium поверх драйверов UiAutomator2 и XCUITest, Maestro со сценариями на YAML;
- окружение тестировщика: прокси для трафика вроде Charles, Proxyman или mitmproxy, фермы устройств, раздача сборок через TestFlight и Firebase App Distribution, сбор крашей в Crashlytics.
Сильный ход: связать стек с тестированием. У Flutter интерфейс рисуется собственным движком, и Appium видит его элементы только через семантику доступности или через отдельный драйвер. В React Native разработчиков просят проставлять testID, иначе локаторы будут хрупкими. Приведите пример из своего проекта: на чём было приложение и чем вы его проверяли.
Где спотыкаются
Называют Selenium инструментом для мобильных приложений. Для нативного интерфейса он не подходит, для этого есть Appium, который лишь использует тот же протокол WebDriver.
Упоминают Xamarin как актуальный выбор. В 2026 году это признак устаревших знаний.
Перечисляют языки, но не могут сказать, что меняется для тестировщика: локаторы, способ снять логи, работа с разрешениями, поведение при сворачивании приложения.