Android Учебное пособие по тестированию приложений с использованием фреймворка автоматизации.
⚡ Умное резюме
Android Тестирование приложений проверяет сборку на разрозненных устройствах, сочетая модульные, интеграционные, операционные и системные проверки с помощью автоматизированных фреймворков, работающих либо на устройстве, либо непосредственно на JVM.
Почему Android Тестирование?
Android является крупнейшей операционной системой в мире. В то же время, Android Система фрагментирована: существует огромное количество устройств и Android версии, с которыми ваше приложение должно быть совместимо.
Неважно, сколько времени вы вложите в проектирование и реализацию, ошибки неизбежны, и баги будут появляться.
Android Стратегия тестирования
Правильный Android Стратегия тестирования должна включать следующее.
- Единичный тест
- Интеграционный тест
- Operaциональный тест
- Системный тест
Модульные тесты
Модульные тесты — это наборы программ, предназначенные для проверки атомарной единицы исходного кода, такой как метод или класс.
Android платформа поставляется с предустановленным модулем JUnit Фреймворк 3.0. Это фреймворк с открытым исходным кодом для автоматизации. Модульное тестированиеи это позволяет разработчикам писать эффективные программы модульного тестирования.
В дополнение к модульному тестированию существуют тесты пользовательского интерфейса (UI). Они охватывают компоненты пользовательского интерфейса целевого приложения и гарантируют, что оно возвращает правильный результат для последовательности действий пользователя на устройстве.
Наиболее распространенный способ проведения UI-тестирования на устройстве — это... Android Измерительные приборы. Но это имеет проблемы с производительностью. Один из лучших инструментов для тестирования пользовательского интерфейса. Android is Robotium.
⚠️ Примечание к версии: JUnit 3 класса, например Контрольно-измерительные приборы были признаны устаревшими в API 24; в текущих проектах используются AndroidX Тест, Espresso и UI Automator. Robotium С 2016 года не выпускался.
Интеграционные тесты
In Интеграционное тестированиеВсе модули, прошедшие модульное тестирование, объединены и проверены. Android Это часто означает проверку интеграции с такими компонентами, как Service, Activity и Content Provider.
Для проведения интеграционных тестов используется множество фреймворков. Androidтакие компании, как Troyd, Robolectric и Robotium.
Operaционные тесты
OperaФункциональные тесты, также называемые приемочными тестами, — это тесты высокого уровня, проверяющие полноту и корректность работы приложения.
In Android, Фитнес Это платформа с открытым исходным кодом, которая упрощает запуск операционных тестов целевого приложения.
Системные тесты
In Тестирование системы тестируется система в целом и проверяется взаимодействие между компонентами, программным и аппаратным обеспечением.
In Android, Тестирование системы обычно включает
- GUI тесты
- Юзабилити-тесты
- Тесты производительности
- Стресс-тесты
В приведенном выше списке Тестирование производительности уделяется больше внимания. Вы можете использовать такие инструменты, как Tracобзор проводить тесты производительности на AndroidЭтот инструмент поможет вам отлаживать приложение и анализировать его производительность. TracФункция eview теперь устарела и заменена на другую. Профилировщик ЦП.
Автоматический Android Тестирование
As Android Система фрагментирована, требуется тестирование на множестве устройств, а это стоит денег. Автоматизированная система Android Тестирование помогает снизить эти затраты.
Преимущества автоматизированного Android тестов
- Сократить время выполнения тестовых случаев
- Повысьте продуктивность вашего процесса разработки
- Раннее обнаружение ошибок, экономия средств на обслуживании программного обеспечения
- Быстро найти и исправить ошибки при реализации
- Обеспечить качество программного обеспечения
Мы изучим следующие 2 фреймворка
- Android Фреймворк для тестирования
- Система роботоэлектрического тестирования
Android структура тестирования
Одна из стандартных сред тестирования для Android приложения — это Android Тестовая среда. Она хорошо интегрирована с... Android SDK — это инструмент, архитектура которого состоит из трех частей.
- Пакет приложения — это целевое приложение, которое необходимо протестировать.
- InstrumentationTestRunner — это Тестовый кейс Программа-исполнитель, которая запускает тестовые сценарии в целевом приложении. Она включает в себя:
- Инструменты тестирования: SDK — это инструменты для создания тестов. Они интегрированы в IDE или запускаются из командной строки.
- ОбезьянаРаннер: Инструмент, предоставляющий API для написания программ, управляющих Android устройство или эмулятор за пределами Android код.
- Пакет тестирования организован в виде тестовых проектов и соответствует определенному соглашению об именовании. Если тестируемое приложение имеет имя пакета «com.mydomain.myapp», то пакет тестирования должен называться «com.mydomain.myapp.test». Пакет тестирования включает 2 объекта:
- Классы тестовых примеров: Укажите методы тестирования, которые будут выполняться в целевом приложении.
- Имитация объектов: Включите фиктивные данные, которые будут использоваться в качестве примеров входных данных для тестовых случаев.
Android Классы тестовых примеров
- Тестовый пример включает в себя JUnit методы для запуска JUnit тест
- TestSuite используется для выполнения набора тестовых случаев.
- InstrumentationTestSuite — это набор тестов, который внедряет инструментарий в InstrumentationTestCase перед их выполнением.
- InstrumentationTestRunner запускает тестовые сценарии для целевого приложения.
- AndroidTestCase extends JUnit Тестовый пример с методами для доступа к таким ресурсам, как контекст активности.
- ApplicationTestCase проверяет классы приложения в контролируемой среде.
- InstrumentationTestCase проверяет определенную функцию или поведение, например, вывод пользовательского интерфейса приложения.
- ActivityTestCase — это базовый класс, поддерживающий тестирование действий приложения.
- ProviderTestCase — это класс для тестирования отдельного ContentProvider.
- ServiceTestCase тестирует классы сервисов в тестовой среде и поддерживает жизненный цикл сервиса.
- SingleLaunchActivityTestCase используется для тестирования отдельной Activity с помощью InstrumentationTestCase.
- ActivityUnitTestCase Используется для проверки активности отдельных изолированных объектов.
- ActivityInstrumentationTestCase2 расширяет JUnit Класс TestCase позволяет подключиться к целевому приложению с помощью инструментирования, что дает возможность получить доступ к компонентам графического интерфейса и отправлять события пользовательского интерфейса, такие как нажатия клавиш или касания.
Ниже приведён пример ActivityInstrumentationTestCase. Он проверяет работу пользовательского интерфейса приложения «Калькулятор» и корректность выводимых данных.
Система роботоэлектрического тестирования
Тестирование с использованием Android Создание и запуск тестов с помощью устройства или эмулятора — сложная задача. Разработка и запуск тестов занимают много времени и требуют значительных усилий. Для решения этой проблемы есть другой вариант: тестовая платформа Robolectric.
Robolectric позволяет вам запускать Android Тестирование проводится непосредственно на JVM без необходимости использования устройства или эмулятора.
Классы робоэлектрических тестовых примеров
Робоэлектрик может выполнять следующие действия:
- Зарегистрируйтесь и создайте класс Shadow
- Перехватить загрузку Android класс
- Пользы Javaпомогает переопределять тела методов Android класс
- Привязать объект Shadow к Android класс
Это позволяет тестируемому коду выполняться без Android окружающей среды.
Другие фреймворки для тестирования
Помимо упомянутых выше фреймворков для тестирования, существует множество других, таких как:
- Android Отчет Юнита, специальный инструментарий для запуска тестов Android который генерирует отчеты XML для интеграции с другими инструментами.
- Espresso
- Appium
Мифы Android Тестирование
Многие предприятия развивают Android Тестирование стратегии, основанные на распространенных заблуждениях. В этом разделе рассматриваются несколько популярных мифов и реалий Android тестирование.
Миф №1: Все Android Устройства одинаковые, поэтому достаточно тестирования на эмуляторах.
Приложение может отлично работать на эмуляторах, но при этом аварийно завершать работу на некоторых реальных устройствах.
Для тестирования мобильного приложения недостаточно одних только эмуляторов. Вам необходимо тестировать приложение на реальных устройствах.
Миф №2: Тестирования на нескольких распространенных устройствах достаточно.
Ваше приложение выглядит по-разному на разных устройствах, поскольку различаются аппаратные характеристики, размеры экрана и объем памяти. Протестируйте его на различных устройствах, версиях ОС, в сетях операторов связи и в разных местах.
Миф №3: Достаточно провести исследовательское тестирование непосредственно перед запуском.
- В большинстве видов тестирования мы разрабатываем тестовые сценарии, а затем выполняем их; в исследовательском тестировании разработка и выполнение происходят одновременно.
- Нет никакого плана или подготовки, поэтому тестировщик запускает те тесты, которые сам выберет. Некоторые функции тестируются многократно, а другие — никогда.
Миф №4: Если в приложении есть ошибки, пользователи это поймут.
- Если приложение не работает и содержит ошибки, пользователи удаляют его.
- Проблемы с качеством являются основной причиной негативных отзывов. Google Играть — значит наносить ущерб своей репутации и терять доверие клиентов.
Поэтому крайне важно иметь надлежащий Android Стратегия тестирования разработана.
лучшие практики в Android Тестирование
- Разработчики приложений должны создавать тестовые примеры одновременно с написанием кода.
- Все тестовые примеры следует хранить в системе контроля версий вместе с исходным кодом.
- Используйте непрерывную интеграцию и запускайте тесты каждый раз при изменении кода.
- Не полагайтесь исключительно на эмуляторы и устройства с root-правами; подтвердите результаты на реальном оборудовании с помощью таких программ, как [название программы]. uiautomatorviewer





