Опубликован: 06.05.2014 | Доступ: свободный | Студентов: 2634 / 611 | Длительность: 10:33:00
Лекция 3:

Основы тестирования и отладки приложений на смартфоне

Особенности тестирования и отладки мобильных приложений

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

Рассмотрим основные моменты, на которые необходимо обратить особое внимание именно при тестировании мобильных приложений.

Размер экрана и touch-интерфейс.

  • Необходимо проверить размеры всех элементов графического интерфейса пользователя, при этом обратить особое внимание на возможность использования всех элементов.
  • Также следует проследить, за тем, чтобы в ходе работы приложения не возникало пустых экранов, так как появление пустого экрана часто ставит пользователя в тупик.
  • Необходимо удостовериться, что многократное быстрое нажатие на кнопку не вызовет падения приложения, так же необходимо проследить, чтобы приложение корректно обрабатывало нажатие нескольких кнопок одновременно. Дело в том, что такие ситуации с кнопками часто встречаются при работе с сенсорным экраном.
  • Необходимо проверять использование в приложении так называемых "нативных" жестов (например, pinch-to-zoom, doubletap), если необходимо, то соответствующий жест должен использоваться по умолчанию, а если над каким-то элементом действие, соответствующее жесту не предусмотрено, то жест использоваться не должен. Например, в случае поддержки увеличения части приложения, pinch-to-zoom должен использоваться по умолчанию, если же нет необходимости выделять какой-то элемент, то doubletap не должен ее выделять.

Ресурсы устройства.

  • Необходимо проконтролировать возможные утечки памяти. Часто это случается в приложениях с окнами, содержащими большое количество информации, например, длинные списки. Память также может теряться во время длительной работы приложения, а также при некорректно работающем кэшировании изображений.
  • Необходимо проверить корректность обработки ситуаций нехватки памяти для функционирования операционной системы, во время работы приложения в активном или фоновом режиме.
  • Обязательно нужно проверить на целевом устройстве наличие всех поддерживаемых приложением функций (например, 3G, SD-карта и т. д.).

Различные разрешения экрана и версии ОС.

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

Реакция приложения на внешние прерывания.

  • Необходимо проверить работу приложения в условиях эксплуатации мобильного устройства, а для таких устройств характерны частые изменения состояния: входящие и исходящие звонки, SMS, MMS; выключение/разрядка устройства; переход в режим ожидания (в том числе и с защитой паролем); смена ориентации устройства в режиме ожидания; отключение и включение сети, Bluetooth, авиарежима, GPS; потеря связи с сервером или прокси (подключение есть, но пакеты не проходят); отключение и подключение SD-карты, дополнительных устройств; зарядка устройства; работа с акселерометром; работа с физической клавиатурой (если в списке поддерживаемых моделей есть такие).

Рассмотрим основные отличия, характерные для мобильных приложений, в некоторых типах тестирования.

Тестирование обновлений. Частые обновления операционной системы (по сравнению с персональными компьютерами) требуют обновления приложений, которое должно проходить просто и не требовать от пользователя специфических знаний. Необходимо проверять различные возможные пути установки приложения (Wi-Fi, 3G, установка с ПК, на SD).

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

Тестирование удобства пользования (usability) . Этот вид тестирования является одним из самых важных, так как в условиях высокой конкуренции юзабилити приложения входит в список основных параметров, влияющих на популярность продукта. Позволяет выявить части приложения, которые недостаточно привлекательны, а может даже вызывают затруднения в навигации или использовании на сенсорных экранах. Следует так же убедиться, что модель потребления ресурсов приложением соответствует целевой аудитории, например, приложения-напоминания не должны вызывать чрезмерное потребление энергии.

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

Случайное тестирование (fuzzy testing, "monkey" testing) . Приложение должно корректно реагировать на возникновение случайных и непредсказуемых событий. Мобильные устройства чаще других попадают в условия, в которых получают хаотичную бесполезную информацию (например, не заблокированное устройство в кармане), поэтому приложение должно адекватно реагировать на подобные потоки данных.

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

Лабораторное тестирование. Предполагает имитацию реальных условий качества связи и окружающей среды, позволяет проверить как поведет себя приложение при нестабильном сигнале Wi-Fi или с нулевым балансом на счету в сети 3G.

Аттестационное тестирование. Используется для подтверждения соответствия приложения стандартам, лицензионным соглашениям и условиям использования. Рассмотрим требования к приложениям, разработанным для мобильных устройства, работающих под управлением Android.

  • Установочный файл приложения (.apk) должен быть согласован с Program Policies (http://play.google.com/about/developer-content-policy.html).
  • В случае публикации обновленной сборки желательно придерживаться порядка управления версиями (например, принятого порядка нумерации версий).
  • Приложение не должно противоречить документу UIG (http://developer.android.com/design/index.html).

Для отдельных магазинов приложений (Amazon App Store, Samsung Apps, Yandex.Store и подобных) могут существовать свои собственные требования и гайдлайны.