Создание собственного приложения — Часть 4: Тестирование приложения и юзабилити

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

Большинство разработчиков, конечно, хотят опубликовать свое приложение как можно скорее после его разработки и установления окончательного дизайна приложения — но прежде чем программа будет предложена в магазине приложений, важно проверить ее пригодность по различным категориям. Общими методами для определения этого являются тесты на производительность, совместимость и удобство использования. Эти и другие методы тестирования объединяются под термином «тестирование мобильных приложений» (или сокращенно «тестирование мобильных приложений»). На различных этапах этого процесса используются различные инструменты тестирования приложений.

Почему тестирование мобильных приложений важно?

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

Однако тестирование приложений становится все сложнее из-за одного фактора: адаптация к различным пользовательским устройствам для приложений значительно сложнее, чем для другого программного обеспечения. В первые годы разработки приложений с этой адаптацией было проще справиться из-за относительно небольшого выбора смартфонов на рынке. С тех пор появился огромный выбор мобильных устройств с самыми разнообразными функциями. Большинство моделей смартфонов и планшетов функционируют на примерно одинаковом по качеству аппаратном обеспечении, но установленные компоненты, такие как процессор (CPU), память (RAM), размер экрана и разрешение экрана, являются основными факторами, определяющими отображение приложения.

В дополнение к аппаратному обеспечению, программное обеспечение устройства также играет определенную роль. Программное обеспечение в основном включает в себя различные операционные системы платформы, которые влияют на отображение приложений. Старые операционные системы могут затруднять использование приложений из-за отсутствия обновлений, и распространенность старых операционных систем Android и iOS не стоит недооценивать. Разнообразие используемых операционных систем особенно заметно при рассмотрении систем Android: В целом, старые версии операционной системы Google используются чаще, чем текущая версия. Это связано с тем, что многие производители Android либо поздно выпускают обновления, либо не выпускают их вообще. В случае с iOS новая версия операционной системы обычно поставляется быстрее, но некоторые из самых старых устройств больше не получают обновлений от Apple, поэтому старые версии iOS все еще можно найти.

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

Как тестировать приложение?

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

Ручные и автоматизированные тесты приложений

Ручное тестирование приложений (проводится пользователями)

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

Помимо ручного тестирования мобильных приложений, еще одним классическим подходом является крауд-тестирование. Сервисы крауд-тестирования предлагают пул тестеров, что позволяет разработчикам выбрать целевых тестировщиков для тестирования приложения на их личных устройствах. Крауд-тестирование проводится не в специальной тестовой среде, а в естественной среде пользователей, что может повысить достоверность результатов тестирования. Для приложений для iOS (а также watchOS и tvOS) разработчики могут использовать сервис бета-тестирования TestFlight, чтобы пригласить до 2 000 пользователей для тестирования приложения и организовать собственные крауд-тесты. Google также предлагает разработчикам программного обеспечения различные варианты частного и публичного бета-тестирования приложений для Android.

Автоматизированные тесты приложений (выполняемые инструментами тестирования приложений)

В отличие от ручных тестов, автоматизированные используются в тех областях, где определенные процессы постоянно тестируются в различных условиях. Для проведения автоматизированных тестов приложений разработчикам необходимо использовать специальное программное обеспечение. Основным преимуществом является экономия времени — тестовые процедуры могут выполнять программы за долю того времени, которое потребовалось бы пользователю. Однако автоматизация подходит не для всех областей тестирования.

Физические мобильные устройства против симулятора/эмулятора

Тестирование на физических мобильных устройствах

Тестирование приложений на отдельных мобильных устройствах — идеальное решение, позволяющее понять работу приложения в сочетании с конкретным программным и аппаратным обеспечением. Однако это довольно дорого и долго, поскольку для проведения комплексных тестов требуется большое количество смартфонов и планшетов, а поведение приложения необходимо постоянно детально проверять на каждом устройстве. Проще всего проводить тестирование этим методом с помощью различных поставщиков услуг по тестированию мобильных приложений, которые предоставляют доступ к различным мобильным устройствам (часто называемым «лабораториями устройств» или «тестовыми лабораториями»), которые можно использовать для тестирования приложения.

Тестирование с помощью симулятора/эмулятора

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

Симуляторы и эмуляторы, конечно, не могут заменить тесты на физических устройствах, хотя они являются хорошим дополнением и особенно подходят в качестве инструмента автоматизированного тестирования. С их помощью можно быстро протестировать функциональность приложения с различными комбинациями аппаратного и программного обеспечения. Многие симуляторы и эмуляторы также доступны бесплатно — например, те, которые содержатся в программах Android Studio и Apple Xcode.

Различные поля для тестирования

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

Тестирование функциональности

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

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

Помимо самого приложения, тесты должны проверять поведение приложения в некоторых следующих сценариях:

  • Могут ли другие приложения и функции устройства выполняться, когда приложение свернуто?
  • Автоматически ли приложение сворачивается при поступлении вызова?
  • Принимаются ли SMS и другие уведомления и сохраняются ли они во время использования приложения?

Тестирование удобства использования

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

  • Является ли работа приложения в основном понятной? Даются ли пояснения для более сложных функций?
  • Хорошо ли расположены элементы приложения, и легко ли пользователю найти важные функции?
  • Организовано ли размещение элементов и компоновка пользовательского интерфейса таким образом, чтобы они были интуитивно понятны и просты для восприятия?
  • Оптимально ли расположены кнопки и достаточно ли они крупные, чтобы подходить пользователям с более широкими пальцами?
  • Ясно ли написаны тексты, отформатированы ли они таким образом, чтобы их можно было легко прочитать, и имеют ли они соответствующий размер?

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

Тестирование на совместимость

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

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

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

Тестирование производительности

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

Если один или несколько компонентов будут подвергаться высокой нагрузке, то используется нагрузочный тест (или стресс-тест). Одним из примеров является стресс-тест сервера, когда поведение приложения проверяется в условиях высокой нагрузки на сервер. Для приложений, требующих подключения к Интернету, проводится нагрузочный тест сети, чтобы увидеть, как слабое подключение к Интернету влияет на функциональность приложения. Стресс-тесты предназначены для того, чтобы показать, какую нагрузку могут выдержать определенные компоненты, прежде чем их производительность будет ограничена.

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

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

Appium

Appium — это кроссплатформенная программа с открытым исходным кодом для автоматизации тестирования, доступная для бесплатной загрузки. Этот инструмент не только тестирует нативные приложения для Android и iOS, но и поддерживает автоматизацию тестирования гибридных приложений и веб-приложений.

Appium использует один и тот же интерфейс программирования как для iOS, так и для Android, что позволяет легко повторно использовать ранее написанный код. Созданные тесты можно проводить на физических устройствах, симуляторах или эмуляторах. Appium — невероятно полезное программное обеспечение для выполнения автоматизированных тестов приложений, однако программа требует от пользователя определенного уровня предварительных знаний.

TestFairy

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

Ubertesters

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

Исправление ошибок приложения

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

Когда причина неправильной работы приложения выяснена, необходимо решить, насколько важно решить проблему, и в какой степени ее решение возможно без ущерба для функциональности приложения. Общие программные ошибки, конечно, не должны отображаться в финальной версии приложения — все фундаментальные функции (такие как навигация или отображение содержимого приложения) должны работать всегда.

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

Насколько высокими должны быть требования к хард- и софту?

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

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

Итог: Тестирование приложений — ключ к обеспечению качества

Обширное тестирование приложений — это последний шаг в разработке приложений. Конечно, это требует много работы, но в конечном итоге она оправдывает себя во всех отношениях: Тестирование мобильных приложений способствует тому, чтобы как можно больше пользователей могли оптимально использовать приложение. Важно обеспечить баланс в тестировании между использованием физических устройств и симуляторов и/или эмуляторов.

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

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

Кроме того, установка приложения в магазинах приложений Google и Apple также требует немалых усилий. Сначала приложение необходимо зарегистрировать для распространения в магазинах, что приводит к пятой статье в этой серии: она подразделяется на регистрацию в Apple App Store и регистрацию в Google Play Store. Кроме того, после публикации приложения можно провести работу по улучшению его рейтинга в Google Play Store и Apple App Store — это заключительная часть цикла статей, включающая всю важную информацию о работе с магазинами приложений Apple и Google.

Оцените статью
cdelat.ru
Добавить комментарий