Рубрики
Без рубрики

Тестирование в Android. Основы

Введение Теперь, когда я официально выпустил свое первое приложение, которое можно найти ЗДЕСЬ… Помечен как java, android, тристан.

Тестирование в Android (Серия из 6 частей)

Вступление

  • Теперь, когда я официально выпустил свое первое приложение, которое можно найти ЗДЕСЬ в магазине Google Play. Я хочу добавить больше функций в свое приложение, однако, я думаю, что следующий лучший шаг – добавить несколько тестов. Итак, эта серия будет практической серией, посвященной пониманию тестирования в рамках Android. Всю информацию, которую я нашел для этого поста в блоге, можно найти здесь

Зачем писать тесты?

  • Если вы все еще разрабатываете небольшое приложение, как я, вы можете подумать, что тесты – пустая трата времени. Однако по мере роста наших приложений ручное тестирование просто не может идти в ногу. Тесты дают нам быструю обратную связь о сбоях, а сбои, обнаруженные ранее, гораздо легче исправить, чем те, которые возникают в процессе производства. Благодаря хорошему набору тестов мы можем свободно проводить рефакторинг и оптимизировать код на радость нашим сердцам. Кроме того, для создания стабильной и зрелой кодовой базы обязательны тесты

Виды тестирования

  • При тестировании в Android наши тесты будут попадать в одну из 3 категорий:

1) Модульные тесты 2) Комплексные тесты 3) Сквозные тесты

  • При написании тестов команда тестирования Google рекомендует использовать принцип Пирамиды . Это означает, что 70% наших тестов должны быть единичными , 20% должны быть интегрированными и 10% сквозной . Конечно, эти цифры не обязательно должны быть точными.

Модульные тесты

  • Модульный тест должен быть очень сфокусированным и быстрым, это тесты, которые всесторонне проверяют функциональность и контракты каждого класса в нашем приложении. Когда мы добавляем и изменяем методы в определенном классе, мы создаем и запускаем модульные тесты для них. Модульные тесты рекомендуется запускать как локальные модульные тесты . Это означает, что тесты будут выполняться на вашем локальном компьютере. Так что никакого эмулятора или физического устройства не требуется. Недостатком этих типов тестов является то, что, поскольку мы не проводим их в реалистичной среде, тесты имеют низкую точность . Это означает, что все еще существует небольшая вероятность того, что код может выйти из строя в процессе производства. Это связано с тем, что при использовании модульных тестов мы обычно создаем множество макетов и подделок для системных или сторонних API-интерфейсов. не волнуйтесь, то, чего не хватает одному типу тестов, восполняют другие.

Интегрированные тесты

  • В дополнение к тестированию каждого модуля нашего приложения путем выполнения модульных тестов, мы также проверяем поведение нашего приложения на уровне модуля. Для этого мы пишем интеграционные тесты , которые проверяют совместную работу и взаимодействие группы подразделений. Рассматриваются комплексные тесты Инструментальные тесты которые предназначены для выполнения на физическом устройстве. Эти тесты менее сфокусированы, поэтому для выявления причины сбоя в одном из них может потребоваться больше времени. Поскольку мы используем физическое устройство, меньше издевательств и подделок, эти тесты считаются более точными , чем модульные тесты. Интегрированные тесты также имеют более низкую скорость выполнения. Поскольку наше приложение собирает несколько компонентов, создает их, упаковывает и отправляет на устройство, где проводятся тесты. Очевидно, что это займет дополнительное время.
  • Вот некоторые примеры того, когда следует использовать интеграционное тестирование:

1) Взаимодействия между представлением и моделью представления, такие как тестирование объекта фрагмента, проверка XML-макета или оценка логики привязки данных объекта модели представления.

2) Тесты на уровне репозитория приложения, которые проверяют, что ваши различные источники данных и объекты доступа к данным (DAO, база данных комнат) взаимодействуют должным образом.

3) Тестирование взаимодействий на определенном экране

4) Тесты с несколькими фрагментами, которые оценивают определенную область нашего приложения. Для этого типа теста нам требуется реальное устройство, поскольку тестируемые взаимодействия включают в себя несколько элементов пользовательского интерфейса.

Сквозные тесты

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

Где писать тесты?

  • Типичный проект в Android Studio содержит два каталога для написания тестов:

1) тест Android: Этот каталог должен содержать тесты, выполняемые на реальном или виртуальном устройстве (инструментальные тесты).

1) тест: Этот каталог должен содержать тесты, выполняемые на вашем локальном компьютере (локальные модульные тесты).

Разработка на основе тестирования (TDD)

  • При разработке, основанной на тестировании, идея заключается в том, что вы начинаете с написания своих тестов, а затем внедряете код, чтобы эти тесты прошли. Наконец, когда тесты пройдут, мы сможем запустить этот код в производство. TTD заставляет нас заранее подумать о дизайне нашего приложения, это заставляет нас думать об API и структуре вашего кода. С TTD мы на самом деле пишем меньше кода, потому что мы пишем код только для прохождения тестов. Что заставляет нас чаще создавать более надежный код.
  • Google рекомендует тестовую мантру красный, зеленый, рефакторинг . это означает, что мы начинаем с неудачного теста, внедряем код, чтобы он прошел, а затем проводим рефакторинг кода.

  • Вот и все для этого поста в блоге, в следующем посте мы погрузимся глубже и фактически напишем несколько модульных тестов

  • Спасибо, что нашли время в свой день, чтобы прочитать этот мой пост в блоге. Если у вас есть какие-либо вопросы или проблемы, пожалуйста, прокомментируйте ниже или свяжитесь со мной по адресу Твиттер .

Тестирование в Android (Серия из 6 частей)

Оригинал: “https://dev.to/theplebdev/testing-in-android-fundamentals-lmi”