---
title: Инструменты тестирования
seo:
  title: Инструменты тестирования — QA
  description: Тема «Инструменты тестирования» для собеседования QA. Что такое ADB? Как снять логи с Android и iOS?
---

[Все темы QA](/qa)

## <strong>Что такое</strong> <code>ADB</code><strong>?</strong> [#q-14bee738d69b816ea56bf20f242f14b3]

<code>ADB</code> (Android Debug Bridge) — это утилита командной строки,
предоставляемая в составе Android SDK (Software Development Kit). Она позволяет
разработчикам взаимодействовать с устройством или эмулятором Android для
следующих целей&#58;

1. <strong>Установка и удаление приложений</strong>&#58; ADB может устанавливать
   и удалять приложения на устройствах напрямую с компьютера разработчика.

1. <strong>Доступ к файловой системе</strong>&#58; Позволяет копировать файлы
   между устройством и компьютером, просматривать файлы и директории на
   устройстве.

1. <strong>Отладка приложений</strong>&#58; ADB предоставляет доступ к консоли
   устройства для отслеживания системных логов и помощи в отладке приложений.

1. <strong>Управление устройством</strong>&#58; Включает перезагрузку устройства
   в различные режимы (например, режим восстановления), остановку и запуск
   процессов на устройстве.

1. <strong>Выполнение команд Shell</strong>&#58; Можно выполнять различные
   команды Linux shell на устройстве Android через ADB.

:::note[Ссылки для изучения]

1. [Использование ADB](https://4pda.to/forum/index.php?showtopic=383300)
   :::

---

## Как снять логи с Android и iOS? [#q-14bee738d69b8178b51de47db343bdac]

Снятие логов с устройств Android и iOS может быть осуществлено следующими способами&#58;

#### Для Android (через <code>ADB</code>)&#58;

{/* prettier-ignore */}
1. <strong>Использование ADB Logcat</strong>&#58;

    - Подключите устройство Android к компьютеру через USB.

    - Включите режим разработчика на устройстве и разрешите отладку по USB.

    - Откройте командную строку или терминал на вашем компьютере.

    - Введите команду <code>adb devices</code> для проверки подключения устройства.

    - Запустите Logcat с помощью команды <code>adb logcat</code>. Эта команда начнет отображать системные логи в реальном времени.

    - Для сохранения логов в файл, используйте команду <code>adb logcat &#62; filename&#46;txt</code>.

#### Для iOS (через <code>Xcode</code>)&#58;

{/* prettier-ignore */}
1. <strong>Использование консоли Xcode</strong>&#58;

    - Подключите ваше устройство iOS к Mac через USB.

    - Откройте Xcode и выберите ваше устройство в списке доступных устройств.

    - Запустите приложение на устройстве через Xcode для отладки.

    - Используйте окно консоли (Debug area) в Xcode для просмотра логов в реальном времени.

1. <strong>Использование инструмента Console на macOS</strong>&#58;

    - Подключите устройство iOS к Mac.

    - Откройте приложение "Console" на вашем Mac.

    - Выберите ваше устройство в боковом меню.

    - Логи с устройства начнут отображаться. Вы можете фильтровать или искать конкретные сообщения логов.

Оба метода позволяют эффективно собирать и анализировать логи для диагностики и отладки приложений на устройствах Android и iOS.

:::note[Ссылки для изучения]

1. [Как снять логи с AOS/IOS](https://kaze.gitbook.io/qa-theory/mobile/kak-snyat-logi-s-aos-ios)
   :::

---

## <strong>Что нужно проверять при использовании сканера отпечатка/</strong><code>Face ID</code><strong>?</strong> [#q-14bee738d69b81d18ba7caa546202dea]

При тестировании функциональности сканера отпечатков пальцев или <code>Face ID</code> необходимо уделить внимание следующим аспектам&#58;

{/* prettier-ignore */}
1. <strong>Точность распознавания</strong>&#58;

    - Проверьте, насколько эффективно устройство распознает и верифицирует легитимные отпечатки пальцев или лица. Убедитесь, что нет частых ложных отклонений.

1. <strong>Безопасность</strong>&#58;

    - Убедитесь, что данные биометрии защищены и не могут быть извлечены или скомпрометированы.

    - Проверьте, что система не подвержена обходу с использованием поддельных отпечатков пальцев или фотографий.

1. <strong>Время отклика</strong>&#58;

    - Оцените скорость распознавания. Устройство должно быстро реагировать на попытки аутентификации.

1. <strong>Удобство использования</strong>&#58;

    - Проверьте, насколько просто и удобно для пользователей настраивать и использовать биометрическую аутентификацию.

1. <strong>Восстановление после ошибок</strong>&#58;

    - Проверьте механизмы восстановления доступа в случае неудачной биометрической аутентификации. Например, предложение ввести PIN-код или пароль.

1. <strong>Многократная аутентификация</strong>&#58;

    - Проверьте поведение приложения при отсутствии зарегистрированной биометрии, добавлении нового отпечатка, блокировке после неудачных попыток, отмене и возврате из фона. Биометрические шаблоны регистрирует и хранит ОС; приложение обычно получает только результат проверки.

1. <strong>Совместимость с разными условиями и пользователями</strong>&#58;

    - Проверьте работу в различных условиях освещения для Face ID и на чистоту поверхности сканера для отпечатков.

    - Убедитесь, что система эффективно работает с биометрическими данными разных возрастных групп и этнических групп.

1. <strong>Отклик на изменения во внешности</strong>&#58;

    - Для Face ID важно проверить, как система реагирует на изменения во внешности пользователя, такие как рост бороды, ношение очков или шляпы.

1. <strong>Уведомления и сообщения</strong>&#58;

    - Проверьте, насколько четко и понятно система информирует пользователя о результате аутентификации или ошибках.

:::note[Ссылки для изучения]

1. [Что нужно проверять при использовании сканера отпечатка](https://kaze.gitbook.io/qa-theory/mobile/chto-nuzhno-proveryat-pri-ispolzovanii-skanera-otpechatka-face-id)
   :::

---

## <strong>Как я могу запускать тесты Android без</strong> <code>Appium</code><strong>?</strong> [#q-14bee738d69b81a086bfd3f519757454]

Для запуска тестов Android без использования <code>Appium</code> вы можете использовать следующие инструменты и фреймворки, предоставляемые Google и сообществом&#58;

{/* prettier-ignore */}
1. <code>Espresso</code>&#58;

    - Официальный фреймворк от Google для тестирования пользовательского интерфейса в приложениях Android.

    - Интегрирован в Android Studio.

    - Позволяет писать консистентные и надежные UI тесты.

1. <code>UI Automator</code>&#58;

    - Также предоставляется Google.

    - Подходит для тестирования функций на уровне системы, таких как настройки, входящие вызовы и многозадачность.

    - Позволяет тестировать взаимодействие между различными приложениями.

1. <code>Robolectric</code>&#58;

    - Фреймворк для модульного тестирования, который позволяет запускать тесты Android на JVM (Java Virtual Machine) без необходимости эмулятора или физического устройства.

    - Идеально подходит для быстрого выполнения тестов.

1. <code>AndroidJUnitRunner</code>&#58;

    - Это тестовый исполнитель, который используется вместе с JUnit для выполнения тестов на Android устройствах.

    - Поддерживает интеграцию как с Espresso, так и с UI Automator.

1. <code>Monkey</code> <strong>и</strong> <code>MonkeyRunner</code>&#58;

    - <code>Monkey</code> — это инструмент командной строки, который генерирует случайные пользовательские события для тестирования стабильности приложений.

    - <code>MonkeyRunner</code> — более сложный инструмент для написания программных скриптов для автоматизации тестов на Android.

1. <code>Gradle</code>&#58;

    - Используйте систему сборки Gradle, интегрированную в Android Studio, для автоматизации запуска тестов как часть процесса сборки.

Эти инструменты и фреймворки позволяют выполнять широкий спектр тестирования, от модульного и интеграционного до функционального и системного, без необходимости использования <code>Appium</code>.Выбор конкретного инструмента зависит от ваших требований к тестированию и настройки проекта.

:::note[Ссылки для изучения]

1. [Запуск Android тестов без Appium](https://kaze.gitbook.io/qa-theory/mobile/kak-ya-mogu-zapuskat-testy-android-bez-appium)
   :::

---

## <strong>Объясните концепцию дизайна</strong> <code>Appium</code><strong>.</strong> [#q-14bee738d69b812b9723e3230f216aac]

<code>Appium</code> — это открытый инструмент для автоматизации тестирования
мобильных приложений, который позволяет тестировать как нативные, так и
гибридные мобильные приложения, а также мобильные веб-сайты на различных
платформах (iOS, Android, Windows) с использованием одного API. Вот основные
концепции дизайна <code>Appium</code>&#58;

{/* prettier-ignore */}
1. <strong>Основан на</strong> <code>WebDriver</code>&#58;

    - Appium расширяет протокол Selenium WebDriver для обеспечения совместимости с мобильными API. Это означает, что он использует стандартный протокол WebDriver для коммуникации с мобильным приложением, что позволяет использовать стандартные команды WebDriver для взаимодействия с мобильными приложениями.

1. <strong>Кроссплатформенность</strong>&#58;

    - Appium предоставляет общий WebDriver API, но локаторы, capabilities и отдельные команды зависят от платформы и драйвера. Общую логику можно переиспользовать, однако перенос без изменения кода не гарантирован.

1. <strong>Клиент-серверная архитектура</strong>&#58;

    - Appium работает как сервер, который принимает и обрабатывает запросы от клиентских библиотек. Тесты взаимодействуют с Appium сервером через HTTP запросы, что позволяет легко интегрировать Appium в процесс непрерывной интеграции и развертывания.

1. <strong>Не требует модификации приложения</strong>&#58;

    - Для тестирования приложений с Appium не требуется внесение изменений в код приложения или его компиляция в специальный тестовый режим. Это значительно упрощает процесс интеграции и поддержки тестирования.

1. <strong>Поддержка реальных устройств и эмуляторов/симуляторов</strong>&#58;

    - Тесты, написанные с использованием Appium, могут быть запущены как на реальных устройствах, так и на эмуляторах или симуляторах, что обеспечивает гибкость при выборе среды тестирования.

1. <strong>Сеансы</strong>&#58;

    - Каждый тестовый прогон в Appium запускается в рамках сессии. Управление сессиями позволяет управлять жизненным циклом тестирования, включая установку приложения, запуск, выполнение действий и завершение работы приложения.

:::note[Ссылки для изучения]

1. [Концепция дизайна Appium](https://kaze.gitbook.io/qa-theory/mobile/obyasnite-koncepciyu-dizaina-appium)
   :::
