Статьи из блога

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

Краткое резюме: - Рынок мобильной связи больше не является просто коммуникацией: это интернет, музыка, видео, социальные сети, навигация и все остальное. Теперь важно, чтобы ваше мобильное приложение предлагало абсолютно идеальный пользовательский интерфейс. И для этого ваш мобильный QA должен быть на высшем уровне, потому важно заказывать услуги тестирования только у надёжных фирм. Мы обращались за услугой мобильного и веб-тестирования в компанию Agilie, (а тут можно почитать подробней про их услуги https://agilie.com/en/blog/manual-vs-automation-testing-do-you-need-both). Работа выполнена качественно и найдены критические ошибки, которые были исправлены.

 

 

Помните, пользователи приложений непостоянны.

 

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

 

Мобильные приложения теперь являются неотъемлемой частью наших ежедневных микромоментов, люди там проводят в среднем 3-4 часа в день. Мобильные приложения играют ключевую роль как в профессиональной, так и в личной жизни. И помните, что это высококонкурентный рынок, если ваши пользователи удалят ваше приложение, у них всё ещё будет множество других вариантов на выбор.

 

В то время как хорошая репутация предшествует вам, плохая репутация будет следовать за вами долгое время.

 

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

 

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

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

 

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

Регрессионное тестирование

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

 

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

 

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

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

 

На стороне сервера он проверяет изменения времени ответа, потоковую передачу ресурсоемких пакетов, задержки доставки сообщений, сбои приложений и так далее.

 

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

 

Тестирование безопасности

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

 

Тестирование на проникновение - это подход, используемый для поиска слабых мест в безопасности приложения, которые позволяют получить доступ к его функциям и данным. На рынке есть несколько инструментов с открытым исходным кодом и корпоративных инструментов, с помощью которых можно протестировать приложение на наличие распространенных уязвимостей. Список распространенных инструментов тестирования безопасности можно найти на странице OWASP (Open Web Application Security Project).

 

Юзабилити-тестирование

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

 

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

 

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

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

 

Следующие методы тестирования совместимости помогают охватить максимальное количество устройств.

 

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

 

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

 

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

 

Сквозное тестирование

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

 

Приемочное тестирование пользователей (UAT)

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

 

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

Этот контрольный список специально разработан для проверки характеристик мобильного приложения.

 

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

 

Контрольный список разделен на пять категорий:

 

  1. Специфические характеристики устройства. Это характеристики, связанные с устройством, на котором установлено приложение.
  2. Проверки, специфичные для сети.
  3. Проверить функции, которые часто используются в приложении.
  4. Проверка пользовательского интерфейса приложения.
  5. Храните специальные чеки. Проверки необязательно выполнять в том порядке, в котором они даны.

 

Тестирование мобильной автоматизации

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

 

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

 

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

 

 

Инструменты тестирования мобильной автоматизации

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

 

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

 

Критерии выбора для выбора подходящего инструмента мобильного тестирования

 

  1. Возможности межгруппового сотрудничества (и QA, и Dev могут легко использовать одни и те же инструменты)
  2. Всегда выполняйте технико-экономическое обоснование инструмента, поскольку мобильные технологии и платформы разнообразны.
  3. Выбирайте инструменты, которые поддерживают как симуляторы платформ, так и устройства, потому что вы можете комбинировать устройства и симуляторы для оптимизации работы на разных платформах.
  4. Ищите автоматизацию в нефункциональных областях, таких как прерывание, аппаратные сценарии, такие как изменение состояния батареи и т. д.
  5. Всегда оптимизируйте поддержку платформы, в некоторых случаях может потребоваться один или несколько инструментов для автоматизации.
  6. Ищите поддержку нескольких устройств и версий.
  7. Ищите утилитарные и многоразовые функции, которые повысят ценность автоматизации.
  8. Интегрированное выполнение с помощью инструмента управления тестированием будет важным для успеха инструмента.
  9. Ищите поддержку автоматизации на основе данных, поскольку итерации в выполнении увеличивают охват и рентабельность инвестиций.

 

Тестирование мобильных приложений с помощью эмуляторов, симуляторов и реальных устройств

Существуют разные стратегии мобильного тестирования, но когда дело доходит до симуляторов / эмуляторов и реальных устройств, это не совсем подход «или-или». Каждое решение имеет свои преимущества и недостатки в зависимости от стадии жизненного цикла приложения. Посмотрим, где и когда использовать эмуляторы, симуляторы или реальные устройства.

 

Эмуляторы

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

 

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

 

Симуляторы

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

 

Реальные устройства

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

 

Тестирование устройства на облачной платформе

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

 

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

 

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

 

 

Фрагментация устройства

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

 

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

 

Несколько подключений к данным

Большинство приложений используют мобильные передачи данных (Edge, UMTS, 3G, 4G) и Wi-Fi (b, g, n). Когда пользователи перемещаются, есть вероятность, что их тип подключения изменится или оборвётся. К сожалению, некоторые операторы связи фильтруют Интернет по собственному желанию, что приводит к тому, что устройства подключаются без фактического подключения к определенной службе (обмен сообщениями или звонки через приложения). Реальная среда не может быть воспроизведена, и проблемы могут возникнуть, даже если API подключения на мобильных платформах были разработаны. Команде QA важно протестировать использование полосы пропускания, поскольку не многие операторы связи поддерживают неограниченные объемы данных.

 

Сложность приложения и сторонние интеграции

Многие мобильные приложения требуют сторонних интеграций для аналитики, отчетов о сбоях и службы SMS. Для обеспечения беспрепятственного взаимодействия с пользователем и функциональности эти приложения в значительной степени зависят от сторонних интеграций или аппаратных компонентов. Это заставляет группы тестирования переключаться между несколькими персонажами (или устройствами) на протяжении всего сценария тестирования. Эти сложные варианты использования увеличивают объем работы, необходимой для адекватного тестирования приложения.

 

Мощность процессора и время автономной работы

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

 

Заключение

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

 

Чтобы ваш бизнес был успешным, чрезвычайно важно создать удобное мобильное приложение без ошибок. В https://agilie.com/ предлагают услуги мобильного тестирования, с проверенным и признанным в отрасли подходом к тестированию, для всех клиентов.
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Оставьте комментарий!

(обязательно)

^ Наверх