Подтвердить что ты не робот

Вопросы для запоминания при тестировании приложения для Android

Каковы разные моменты для заметок во время тестирования приложений для Android? Каковы различные методы или тестовые примеры, используемые для Android?

4b9b3361

Ответ 1

Хороший вопрос. Вот некоторые списки вещей, которые следует учитывать, со ссылками на инструменты, которые могут помочь.

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

Типы тестов

Ниже приведен неполный список типов тестов, которые должны быть релевантны для тестирования приложения для Android.

  • Единичные тесты
    • Не-Android специфическая, т.е. бизнес-логика
    • Тестирование устройств Android, например. тестирование компонентов пользовательского интерфейса.
  • Функциональные тесты
    • Тесты на оборудование для Android
  • Интеграционные тесты
    • Тестирование взаимодействия компонентов приложения
  • Системные тесты
    • Тестирование Black-box, которое проверяет все приложение и его зависимости
  • Тесты пригодности
    • У компонентов пользовательского интерфейса есть правильные метки, описания и тексты подсказок?
    • Существуют ли какие-либо потенциальные проблемы, которые могут повлиять на людей, например. цветная слепота?
  • Тесты безопасности и надежности
    • Проверяются ли входные данные перед использованием, например. в локальной базе данных или перед отправкой на сервер?
    • Пользовательский интерфейс надежно обрабатывает все события, например. изменения конфигурации, аппаратные события?

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

Переменные

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

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

В общем, вы хотите включить как можно меньше графики, но используйте различные типы Drawable Android, которые часто позволяют вы определяете нужную вам графику через XML. Также хорошо используйте макеты и изображения, которые автоматически масштабируют себя, независимо от того, на каком устройстве они используются.

Это упростит тестирование на разных устройствах.

Инструменты

Написание тестов

  • Интегрированная JUnit поддержка модульного тестирования
  • TestCase классы для тестирования компонентов Android.
  • Robotium — библиотека, которая позволяет очень просто писать функциональные тесты "черного ящика", которые также могут пересекать несколько действий.

Использование mocks

Хотя Android предоставляет несколько mock objects, которые могут использоваться для подделки компонентов для тестовых целей, было бы полезно еще много.

По этой причине (и вообще), разработка вашего приложения с возможностью тестирования в уме - хорошая идея. Например, не обращайтесь напрямую к ConnectivityManager, а вместо этого создавайте интерфейс, который определяет вызовы методов, которые вам нужны. Затем напишите две реализации этого интерфейса: одну, которая обертывает Android ConnectivityManager и другую, макетную версию. Выберите реализацию, которую вы хотите использовать во время выполнения, в зависимости от того, выполняете ли вы модульные тесты или нет.

Запуск тестов

  • InstrumentationTestRunner — утилита по умолчанию для запуска автоматических тестов Android
  • Плагин для эмулятора Android для Jenkins — автоматизирует создание и выполнение эмуляторов Android с различными конфигурациями, поэтому вы можете очень легко протестировать один APK на нескольких типах устройств.
  • monkey — отправляет случайные команды в ваше приложение; форма fuzzing

Другие

Ссылка

Помимо всех вышеперечисленных ссылок, можно найти несколько конкретных статей: