QA_Bible
  • Введение
  • FAQ для новичков
    • Ответы на самые популярные вопросы новичков в чатах
    • Качества и навыки, которыми нужно обладать тестировщику?
    • Что должен знать и уметь Junior? Что спросят на собеседовании?
    • С чего начать обучение и куда развиваться?
    • Как составить резюме?
    • Где искать работу?
    • Как происходит процесс найма?
    • Как проходить собеседование?
    • Начало работы Junior-тестировщика
    • Ошибки в работе у начинающих тестировщиков
    • Как взаимодействовать с коллегами?
    • Перспективы профессии
  • Полезные ссылки
    • Список полезных ресурсов на разных платформах
    • Список ресурсов по инструментам тестировщика
  • Общее
    • QA/QC/Testing
    • Почему требуется тестирование ПО?
    • Качество ПО (Software Quality)
    • Принципы тестирования
    • Верификация и валидация (Verification and Validation)
    • Дефекты и ошибки
    • Серьезность и приоритет Дефекта (Severity & Priority)
    • Альфа- и бета- тестирование (Alpha Testing and Beta Testing)
    • Процесс тестирования (test process) (draft)
    • Техники оценки тестов/оценка трудозатрат на тестирование (Test Estimation)
    • Экономика тестирования/стоимость качества (Cost of quality)
    • Подход к тестированию (Test Approach)
    • Импакт анализ (анализ влияния, Impact Analysis)
    • Анализ первопричин (RCA - Root Cause Analysis)
    • Тестирование со сдвигом влево (Shift left testing)
    • Модель зрелости возможностей (CMM - Capability Maturity Model)
    • Тестовая среда и тестовый стенд (Test Environment/Test Bed)
    • Бизнес-логика (Business logic)
    • Политика отсутствия багов (ZBP - Zero Bug Policy)
    • Независимое тестирование (Independent testing)
    • Роли/должности в команде
    • Эвристики и мнемоники
  • Виды-методы-уровни тестирования
    • Методы тестирования (White/Black/Grey Box)
    • Тестирование методом черного ящика (Black Box Testing)
    • Тестирование методом белого ящика (White Box Testing)
    • Тестирование методом серого ящика (Grey Box Testing)
    • Статическое и динамическое тестирование (Static Testing, Dynamic Testing)
    • Пирамида / уровни тестирования (Test Pyramid / Testing Levels)
    • Модульное/юнит/компонентное тестирование (Module/Unit/Component testing)
    • Интеграционное тестирование (Integration testing)
    • Системное тестирование (System Testing)
    • Приемочное тестирование (AT - Acceptance testing)
    • Основные виды тестирования ПО
    • Функциональное тестирование (Functional/Behavioral testing)
    • Нефункциональное тестирование (Non-Functional testing)
    • Тестирование производительности (Performance testing)
    • Тестирование емкости (Capacity testing)
    • Нагрузочное тестирование (Load testing)
    • Стрессовое тестирование (Stress testing)
    • Тестирование масштабируемости (Scalability testing)
    • Объемное тестирование (Volume testing)
    • Тестирование выносливости/стабильности (Endurance/Soak/Stability testing)
    • Тестирование устойчивости (Resilience testing)
    • Тестирование надежности (Reliability Testing)
    • Тестирование на отказ и восстановление (Failover and Recovery testing)
    • Эталонное и базовое тестирование (Benchmark and Baseline Testing)
    • Тестирование хранилища (Storage testing)
    • Одновременное / многопользовательское тестирование (Concurrency/Multi-user testing)
    • Тестирование сервиса (Service Testing)
    • Тестирование безопасности (Security and Access Control testing)
    • Оценка уязвимости/защищенности (Vulnerability Assessment)
    • Фаззинг-тестирование (Fuzz testing)
    • Можно ли отнести тестирование безопасности или нагрузочное тестирование к функциональным видам тести
    • Тестирование совместимости/взаимодействия (Compatibility/Interoperability testing)
    • Конфигурационное тестирование (Configuration testing)
    • Инсталляционное тестирование (Installation Testing)
    • Тестирование на соответствие (Conformance/Compliance testing)
    • Тестирование удобства пользования (Usability testing)
    • Тестирование доступности (Accessibility testing)
    • Тестирование локализации, глобализации и интернационализации (Localization/ globalization/internatio
    • Исследовательское тестирование (Exploratory testing)
    • Свободное / Интуитивное тестирование (Adhoc, Ad-hoc Testing)
    • Тестирование поддержки (Maintenance testing)
    • Регрессионные виды тестирования (Regression testing)
    • Тестирование клиентской части и серверной (Frontend testing Vs. Backend testing)
    • Тестирование графического интерфейса/визуальное тестирование (GUI - Graphical User Interface testing
    • Тестирование API (API - Application Programming Interface)
    • A/B тестирование (A/B Testing)
    • Деструктивное и недеструктивное тестирование (DT - Destructive testing and NDT - Non Destructive tes
    • Выборочное/хаотическое тестирование (Random/monkey testing)
    • Тестирование рабочего процесса/воркфлоу (Workflow testing)
    • Тестирование документации (Documentation testing)
    • Как протестировать продукт без требований?
    • Кроссбраузерное тестирование (Cross-browser testing)
    • Тестирование, основанное на рисках (Risk-Based Testing)
    • Разница тестирования ПО и железа (Software Vs. Hardware testing)
    • Тестирование качества данных (Data Quality Testing)
  • Тест дизайн
    • Тест-дизайн и техники тест-дизайна (Test Design and Software Testing Techniques)
    • Static - Reviews
    • Static - Static Analysis
    • Dynamic - White box
    • Dynamic - Black box
    • Dynamic - Experience based
  • Тестовая документация и артефакты (Test Deliverables/test artifacts)
    • Виды тестовой документации
    • Политика качества и политика тестирования (Quality policy and Test policy)
    • Стратегия тестирования (Test strategy)
    • План тестирования (Test plan)
    • Тестовый сценарий (Test scenario)
    • Тест-кейс (Test case)
    • Чек-лист (Check List)
    • Баг-репорт (Defect/bug report)
    • Требования (Requirements)
    • Пользовательские истории (User stories)
    • Критерии приемки (Acceptance Criteria)
    • Виды отчетов (Reports)
    • Базис тестирования (Test basis)
    • Матрица трассируемости (RTM - Requirement Traceability Matrix)
    • Метрики тестирования (Software Test Metrics)
    • Тестовый оракул (Test oracle)
  • Мобильное тестирование
    • Android
      • Архитектура Android OS
      • Архитектура Android Application
      • Тестирование покупок в Android-приложениях
      • Android Developer Settings
      • Android Debug Bridge (ADB)
      • Android Studio для QA
    • iOS
      • Архитектура iOS
      • Архитектура iOS Application
      • Тестирование покупок в iOS-приложениях
      • iOS Developer Settings
    • Особенности в тестировании мобильных приложений
    • Покрытие девайсов
    • Типы мобильных приложений
    • Симуляторы и эмуляторы
    • Основные различия Android/iOS
    • Последнее обновление Android/iOS, что нового?
    • Основные проверки при тестировании мобильного приложения
    • Каким образом тестировщик получает приложение на тест?
    • Как успешно зарелизить продукт в App Store и Google Play
    • Тестирование требований к мобильным приложениям
    • Тестирование push-уведомлений
    • Тестирование дип линков (mobile deep links)
    • Тестирование сохраненных поисков
    • Тестирование рекламы
    • Тестирование просмотренных товаров
    • Middleware
    • Как проверить использование ресурсов на Android
    • Как протестировать приложение для другой страны?
  • Тестирование в разных сферах-областях (testing different domains)
    • Тестирование веб-сайта или веб-приложения (Web application)
    • Тестирование интернет-магазина (eCommerce)
    • Тестирование платежного шлюза (Payment Gateway)
    • Тестирование игр (Game testing)
    • Тестирование VR программного обеспечения
    • Тестирование мессенджера (Messenger)
    • Тестирование чат-бота (Chatbot)
    • Тестирование электронных писем (E-mail)
    • Тестирование интернета вещей (IoT - Internet of Things)
    • Тестирование облачных решений (Cloud testing)
    • Тестирование сервис-ориентированной архитектуры (SOA - Service Oriented Architecture)
    • Тестирование микросервисной архитектуры (MSA/Microservices)
    • Тестирование платформы электронного обучения (E-learning platform)
    • Тестирование систем розничной торговли (POS - Point Of Sale)
    • Тестирование банковского ПО (Banking domain applications/BFSI)
    • Тестирование страхового ПО (Insurance)
    • Тестирование в сфере телекоммуникаций (Telecom)
    • Тестирование планирования ресурсов предприятия (ERP - Enterprise Resource Planning)
    • Тестирование миграции данных (ETL)
    • Тестирование баз данных (Database)
    • Другое
  • SDLC и STLC
    • Жизненный цикл разработки ПО (SDLC - Software Development Lifecycle)
    • Жизненный цикл тестирования ПО (STLC - Software Testing Lifecycle)
    • Модели разработки ПО
    • Agile
    • Scrum
    • Подходы к разработке/тестированию (... - driven development/testing)
  • Сети и около них
    • База по сетям
    • Клиент - серверная архитектура (Client-Server Architecture)
    • Микросервисная архитектура (Microservice Architecture)
    • Эталонные модели OSI и TCP/IP
    • HTTP
    • Идентификация ресурсов в сети (Identifying resources on the Web)
    • Веб-сервис (WS - Web service)
    • REST/SOAP/gRPC
    • Socket / WebSocket
      • Сокет/веб-сокет (socket/websocket)
      • Тестирование WebSocket на клиентах
    • Хранилище на стороне клиента (Client-side storage)
    • Кэш (Cache)
    • Аутентификация и авторизация (Authentication and authorization)
    • Рендеринг в интернете (Rendering on the Web)
  • Практическая часть
    • Логические задачи
    • Тестирование полей и форм
    • Примеры задач на собеседованиях и тестовых заданий
    • Платформы для тренировок и квизы
  • Автоматизация (beta)
    • Общее
    • Полезные ссылки
    • Как стать автоматизатором и вопросы с собеседований
    • Что нужно автоматизировать?
    • Виды и инструменты автоматизации
    • Инфраструктура и пайплайн (CI/CD)
    • Процессы и автоматизация проекта с нуля
    • Лучшие практики автоматизации
    • Что такое flaky tests?
    • Мутационное тестирование (Mutation testing)
    • Параллельное тестирование (Parallel testing)
    • Подкожный тест (Subcutaneous test)
    • Разница между coupling и cohesion
    • Другое (ссылки)
  • Контакты
Powered by GitBook
On this page
  • Инструменты, которые будут рассмотрены ниже:
  • Сборка проекта и git
  • Logcat
  • Эмуляторы и Device Manager
  • Профайлер
  • App Inspection

Was this helpful?

Edit on GitHub
  1. Мобильное тестирование
  2. Android

Android Studio для QA

PreviousAndroid Debug Bridge (ADB)NextiOS

Last updated 8 months ago

Was this helpful?

Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android. Сама по себе она содержит огромное количество инструментов, которые могут использоваться для разработки, отладки и тестирования приложений на Android. Здесь же опишем основные инструменты, которые могут пригодиться в работе QA. Само приложение можно скачать здесь: https://developer.android.com/studio.

Инструменты, которые будут рассмотрены ниже:

Сборка проекта и git

Сборка проекта и работа с git чаще всего нужна, когда вы пишите автотесты. Однако, это не значит, что если в вашем проекты вы не занимаетесь автотестами, то вам не нужен доступ к коду. Хоть и многие и функции ниже работают без доступа к коду, однако, доступ к коду расширяет возможности инструментов. А система контроля версий позволяет проанализировать изменения внесённые разработчиком, подмечая какие места в приложении могли быть затронуты и на что нужно обратить отдельное внимание. Также у вас будет всегда возможность при необходимости самостоятельно собрать ветку проекта для тестирования.

* Примечание, Android Studio умеет работать не только с git, но и с другими системами контроля версий: . Здесь не привожу детальных инструкций по работе с git, если у вас возникли трудности попросите помочь разработчику или поищите ответ самостоятельно.

Для запуска сборки скачайте и откройте проект из вашего репозитория, переключитесь на нужную ветку, подключите девайс к компьютеру (убедитесь что разрешили отладку по usb) или создайте эмулятор, затем нажмите на зелёную стрелочку в верхней панели – run. Документация:

Logcat

Если говорить про важность доступа к коду, то когда именно ваш проект открыт в студии, то можно применять удобный фильтр package:mine, оставляющий логи всех ваших пакетов (особенно удобно, когда их много), а также в окне логов отображается информация о запуске и остановке вашего приложения.

Эмуляторы и Device Manager

Окно Running Devices позволяет видеть, что происходит на экране подключенного устройства (в том числе эмулируемого), а также удалённо управлять им с помощью мышки. Если открыт эмулятор, то в меню действий появится кнопка (выделено стрелкой), которая открывает дополнительные действия доступные для эмулятора. Здесь можно задать фейковое местоположение, уровень заряда аккумулятора, статус сети, позвонить на устройство и многое другое.

Профайлер

Профайлер позволяет следить в реальном времени за потреблением ресурсов смартфона вашим приложением. Вы можете следить за потреблением CPU и RAM, а также при необходимости записать детальную трассировку в которой будет даже информация о потреблении батареи и дампы памяти. Чтобы открыть расширенную статистику и иметь возможность записать её, необходимо нажать на соответствующий график (CPU или Memory). Профайлер позволяет следить не происходят ли нежелательные для пользователя расходование ресурсов, которое может вести к падению производительности приложения, либо его остановке.

У профайлера есть два режима работы, один – debuggble позволяет собрать более детальную информацию, однако debug сборка приложения сама потребляет много ресурсов, так что картина может отличаться от той, что у пользователей. Для того, чтобы решить эту проблему Android Studio рекомендует переключиться на второй режим – profileable, она работает начиная с 10 версии android. По сути это релизная сборка приложения со специальным параметром в манифесте.

Для того чтобы получить такую сборку вам надо иметь доступ к коду и выбрать в меню действий (троеточие) рядом со стрелкой запуска проекта пункт "Profile app with low overhead (profileable)" – проект соберётся с новыми параметрами. Либо вам нужно будет попросить разработчика собрать вам такую сборку или настроить ci/cd для сборки.

App Inspection

Logcat в Android Studio – один из основных инструментов QA инженера. Он позволяет смотреть в реальном времени и анализировать логи вашего приложения. С помощью них можно найти какие ошибки возникают в приложении, понять из-за чего происходит краш или почему какая-то функция не работает. А помогает в этом система фильтров и другие инструменты настройки визуализации. Записанные логи можно экспортировать для того, чтобы приложить к баг-репорту, а также импортировать, для удобного анализа с помощью фильтров. Logcat также содержит дополнительные инструменты позволяющие снимать запись экрана, останавливать процессы и др. Подробнее про возможности Logcat можно прочитать тут: .

Эмуляторы позволяют имитировать на вашем компьютере реальные устройства (подробнее: ). Android Studio позволяет создать эмуляторы множества различных устройств использующих Android, такие как часы, тв-приставки и так далее, а не только смартфоны. Эмуляторы можно использовать для тестирования, когда под рукой нет реального устройства с нужной версией Android или определёнными характеристиками. Либо при тестировании специфических кейсов, таких как работа с смс (на эмуляторы, с помощью adb, можно отправлять смс от любого номера). Создать виртуальное устройство можно в окне Device Manager, нажав иконку с плюсиком и выбрав Create Virtual Device. Далее мастер установки поможет вам выбрать характеристики устройства, скачать образ системы и задать остальные параметры, такие как объём доступной оперативной памяти, диска и разрешение и dpi экрана.

Официальная документация по созданию и запуску эмулятора: .

Device Manager – позволяет управлять подключенными к Android Studio девайсами. Здесь отображают как установленные эмуляторы, так и девайсы подключенные по adb (кабелем, по wifi или удалённо по сети), а также девайсы из фермы устройств предоставляемых Firebase (нужно зарегистрировать приложение в сервисе и вы получите бесплатные минуты для работы с ними (). Отсюда можно управлять параметрами эмуляторов: запускать и останавливать их, очищать память, редактировать параметры. Кроме управления эмуляторами, здесь можно открыть проводник файлов устройства, вывести демонстрацию экрана с подключенного устройства в окно Running Devices. Также отсюда вы можете подключить эмулируемые часы к смартфону.

Документация по работе с профайлером:

App Inspection включает в себя несколько инструментов для анализа вашего приложения. Он позволяет вам исследовать базы данных вашего приложения, отправлять sql запросы к ним и делать выборки, посредством . Также здесь есть возможность следить за фоновыми процессами – и за сетевым трафиком – . Однако, в случае последнего, всё же рекомендую пользоваться снифферами трафика, так как по моим наблюдениям Network Inspector может показывать не все сетевые запросы.

Подробное руководство по Logcat в Android Studio с примерами
Симуляторы и эмуляторы
Create and manage virtual devices
Квоты потоковой передачи на устройствах Android
Profile your app performance
Database Inspector
Background Task Inspector
Network Inspector
Version control basics
Build and run your app
Сборка проекта и git
Logcat
Эмуляторы и Device Manager
Профайлер
App Inspection