Методы тестирования приложений сообщение

Обновлено: 05.07.2024

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

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

  • размером и разрешением экрана;
  • версией Android;
  • форм-фактор устройства;
  • системы команд процессора;
  • фронтальная камеры, NFC, внешняя клавиатура и т.д.

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

Автоматическое тестирование приложений для Android

Автоматическое тестирование приложений для Android

Рассмотрим несколько средств для автоматического тестирования функциональности, которые входят в состав Android SDK или распространяются с открытым исходным кодом.

Принцип автоматического тестирования приложений

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

  • Установить приложение на устройство
  • Запустить приложение
  • Протестировать приложение, используя выбранный метод
  • Удалить приложение
  • Сбросить устройство в исходное состояние
  • На каждом этапе нужно собирать и анализировать данные (журналы и снимки экрана). Ниже описываются средства для автоматизации этих действий.
  • Управление устройствами Android

Методы автоматического тестирования Android

Методы автоматического тестирования Android

Тестирование с помощью Monkey*

Основное преимущество Monkey в отсутствии затрат на обслуживание. К тому же нагрузочное тестирование может выявлять сложные и малозаметные ошибки.

Недостатки тестирования с помощью Monkey:

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

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

Тестирование с помощью MonkeyRunner

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

Тестирование с помощью getevent и sendevent

Программы getevent и sendevent позволяют пользователю записывать последовательность действий и затем воспроизводить ее. Для запуска этих программ не требуются права доступа root.

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

Тестирование с помощью Robotium

Robotium

  • Для каждого приложения требуется разрабатывать тестовый сценарий на языке Java*. Для этого требуется время и навыки программирования;
  • При смене интерфейса приложения потребуется переделать последовательность событий;
  • Создавать сценарии Robotium сложнее, чем записывать события с помощью getevent / sendevent;

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

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

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

Независимость от устройства.

Сложно воспроизводить последовательность действий, вызвавших ошибку, в отчетах об ошибках.

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

Скрипт может не зависеть от разрешения и ориентации экрана.

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

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

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

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

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

  • Установка и запуск приложения, выход из приложения, повторный вход, удаление приложения с мобильного устройства;
  • Мультитач и размер экрана. Корректность удаления 2-х элементов или просмотр двух элементов, нажатием на них одновременно. Проверка многократного быстрого нажатия на кнопку – часто при этом может случиться падение приложения. В приложении должны отсутствовать пустые экраны, чтобы пользователь не оказался в ситуации, в которой не очевидно, что делать. Также все элементы должны быть такого размера, чтобы пользователь мог однозначно нажать на них.
  • Стабильность. Работа приложения при множестве запущенных приложений и долгое время, а также в случае недостатка места для установки или работы приложения. Поведение приложения при отсутствии в некоторых устройствах поддерживаемых приложением функций.
  • Адаптация приложения к портретной и альбомной ориентациям устройства.
  • Стресс. Реакция приложения на внешние прерывания:
    • входящие и исходящие SMS, MMS, звонки, оповещения других приложений;
    • переход устройства в режим ожидания;
    • выключение устройства, разрядка устройства;
    • зарядка устройства;
    • отключение интернета;
    • переход в другое приложение.

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

    Особенности альфа/бета тестирования в консоли разработчика Google Play

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

    Что нужно знать перед началом тестирования

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

    Мы рекомендуем начать с маленькой группы альфа-тестировщиков, а затем перейти к бета-тестированию с участием большего количества пользователей. Файлы дополнений можно тестировать с помощью альфа-канала распространения в консоли разработчика. Для тестирования нельзя использовать черновики, то есть файл APK должен быть опубликован как альфа-, бета- или рабочая версия. Файлы дополнений нельзя добавлять для первого загруженного файла APK нового приложения.

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

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


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

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

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

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

    Можно конкретный пример?
    Допустим, пользователю нужно зарегистрироваться и авторизоваться в приложении. Возможны варианты авторизации с паролем и через соцсети.
    Позитивный сценарий: пользователь регистрируется в системе, затем может авторизоваться любым удобным для него способом. Его данные корректно заполнены в профиле.
    Негативные сценарии: пользователь пытается зарегистрироваться повторно на тот же email, хочет авторизоваться в системе с неправильным паролем.

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

    Нагрузочное тестирование

    Для чего нужно?
    Цель — проверить, корректно ли функционирует приложение при разном количестве пользователей и при переходе из Wi-Fi в мобильную сеть. Найти участки приложения, которые могут тормозить его работу. Убедиться, что приложение не съедает всю батарею смартфона. Важность этого тестирования переоценить невозможно — если приложение не справится и начнет тормозить или вовсе вылетать, разработчики получат дозу пользовательского гнева в карму.

    В чем суть?
    Нагрузочное тестирование проходит в автоматическом режиме путем имитации действий нужного количества пользователей.

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

    Конфигурационное тестирование

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

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

    Как проводится?
    Приложение тестируют в соответствии с техническим заданием:

    • на различных гаджетах: планшеты, смартфоны, декстоп и др.
    • в разных конфигурациях: типы процессора, разрешение экрана, оперативная память
    • на разных версиях операционных систем iOS, Android
    • в разных типах сети: GSM, Wi-Fi

    Тестирование безопасности мобильного приложения

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

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

    Как проводится?
    Варианты сценариев тестирования:

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

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

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


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

    • Какими бывают мобильные приложения;
    • Чем отличается тестирование таких программных продуктов;
    • Какие инструменты необходимо освоить тестировщику;
    • Как справляться с наиболее распространёнными дефектами.

    Типы мобильных приложений

    Прежде чем мы расскажем о классификации ПО, стоит оценить масштабы этой индустрии. К началу 2020 года уже более 5,19 миллиардов человек активно использовали мобильные устройства ежедневно. Прирост пользователей всего за год составил 124 миллиона.

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

    Только во втором квартале 2020 года из Google Play и App Store скачали 37,8 млрд приложений. Это рекордный показатель, флагманами которого стали TikTok и Zoom.

    Так что же из тебя представляет мобильное приложение? Это программа, которая написана на языке высокого уровня и позволяет ускорить выполнение действия в соответствии со своим функционалом. ПО создаётся под конкретную платформу (Android, iOS, Windows 10 Mobile, BlackBerry и прочие).

    Mobile testing

    Все приложения делятся на три типа.

    Мобильные веб-приложения

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

    Нативные приложения

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

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

    Гибридные приложения

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

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

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

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

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

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

    Ещё один вид проверок – оценка качества различного вида соединений. Такое тестирование проходит в лабораторных условиях, где возможно воссоздать максимально реалистичные условия связи. Этот вид проверки демонстрирует, как приложение будет вести себя в нестандартных ситуациях, например, когда сигнал Wi-Fi едва уловим.

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

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

    Инструментарий QA-инженера достаточно богат: эмуляторы, сервисы бета-тестирования, программы для сбора статистических данных и прочее. Рассмотрим их подробнее.

    Эмуляторы

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

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

    Android SDK and AVD Manager

    Конечно, есть и альтернативные варианты эмуляторов, например, MobiOne Developer или Electric Mobile Studio 2012, но такие решения платные.

    Сервисы для бета-тестирования

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

    Сбор статистики

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

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

    Flurry

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

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

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

    Остановка работы приложения

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

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

    Ошибки в поддержке разных версий ОС, браузеров и устройств

    Рекомендуется проводить тестирование на различных операционных системах (Windows, Android, macOS, Linux) и в разных браузерах (Chrome, IE, Opera, Firefox, Safari, Konqueror и другие). Однако объем тестирования, конечно, зависит от требований заказчика.

    Сбои при отображении на экранах разного разрешения

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

    Дефекты в локализации приложения

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

    К процессу локализации можно отнести не только перевод текста на другой язык. Здесь важно учитывать и присущие каждой конкретной культуре особенности перевода. Например, корректная передача аббревиатур, имён, валют, форматов даты и времени. Даже цвет может иметь значение. Например, в западной культуре традиционным цветом траура считается чёрный, а вот в Индии, Японии и Корее его место занимает белый.

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

    Рекомендации

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

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

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

    Кроме того, существуют различные гайдлайны, например, Human Interface Guideline от Apple, где содержатся требования к мобильным приложениям по различным аспектам. Изучайте их.

    И ещё один совет. Устанавливайте на свой смартфон различные приложения, обращайте внимание на их работу и на те дефекты, о которых вы бы сообщили разработчикам.

    И, конечно, пытайтесь получить бесценный опыт работы с реальными продуктами. Фриланс, краудтестинг или начальные позиции в ИТ-компаниях – вариантов много. Подбирайте лучший для вас и дерзайте!

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

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

    Обеспечение качества (QA, от английского - Quality Assurance) является неотъемлемой частью жизненного цикла разработки любых приложений, включая мобильные. К сожалению, многие упускают из виду критические особенности тестирования мобильных приложений, которые часто приводят к сбоям, ошибкам в работе приложения и плохому качеству обслуживания клиентов.

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

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

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


    Цикл жизни спринтов

    Этап 1: Планирование

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

    • Взаимодействует ли ваше приложение с другими приложениями?
    • Насколько функциональны все возможности приложения?
    • Является ли тестируемое мобильное приложение нативным, Mobile-web или гибридным?
    • Ограничена ли задача тестирования приложения тестированием только внешнего интерфейса?
    • Стоят ли задачи на тестирование бэкенда?
    • Какова должна быть совместимость с различными беспроводными сетями?
    • Как сильно данные приложения и свободное пространство, занимаемое им, зависят от особенностей использования приложения?
    • Насколько быстро загружается ваше приложение, насколько быстро происходит серфинг по меню приложения и его функциям?
    • Как будет обрабатываться возможное увеличение нагрузки на приложение?
    • Влияют ли различные изменения в статусе и состоянии телефона на работу мобильного приложения?

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

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

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

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

    Тема связана со специальностями:

    Определите, на какие целевые устройства направлено данное приложение, и какие требования к функционалу следует проверить.

    Вы также должны определить, какие целевые устройства нужно включить в список тестирования.

    Вы можете сделать это следующим образом:

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

    • Выявить наиболее популярные модели мобильных устройств у целевой аудитории;
    • Определить набор не основных (дополнительных) устройств с экранами разных размеров, потенциально поддерживаемых приложением;
    • Решить, будете ли вы использовать для тестирования физические устройства или их эмуляторы.


    Этап 3: Тестовые случаи и разработка сценариев тестирования приложения

    Подготовьте документ, описывающий тестовые случаи (test cases) для каждой тестируемой функции и функциональности.

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

    • Особенность использование батареи;
    • Скорость работы приложения;
    • Требования к данным;
    • Объем используемой памяти.

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

    При необходимости подготовьте отдельные наборы ручных тестовых случаев и сценариев для автоматического тестирования и адаптируйте их согласно требованиям проекта.

    Этап 4: Ручное и автоматическое тестирование

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

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

    Этап 5: Тестирование юзабилити и бета-тестирование

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

    Пример матрицы поддержки разных версий платформы iOs

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

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

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

    Тестирование пользовательского интерфейса

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

    Тестирование интерфейса

    Тестирование пунктов меню, кнопок, закладок, истории, настроек и навигации по приложению.

    Тестирование внешних факторов

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

    Тестирование доступности

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

    Видео курсы по схожей тематике:


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

    Web Testing automation on Java

    Web Testing automation on Java

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

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

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

    В рамках этого этапа важно пройти и нагрузочное тестирование мобильного приложения.

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

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

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

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

    Этап 7: Аттестационное тестирование и тестирование безопасности приложения

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

    Убедитесь, что тестируемое приложение надежно защищено. Выполните проверку на возможность внедрения SQL инъекций, на возможность перехвата сеансов, анализа дампов данных, анализа пакетов и SSL трафика.

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

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

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

    Этап 8: Тестирование устройства

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

    Этап 9: контрольный этап и резюме

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

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

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

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

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

    Этот отчет должен включать:

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

    Следует также указать в отчете, что:

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

    Бесплатные вебинары по схожей тематике:

    Паттерны автоматизации тестирования.

    Паттерны автоматизации тестирования.

    Как стать Automation QA специалистом? Часть 1.

    Как стать Automation QA специалистом? Часть 1.

    Средства автоматизации тестирования REST API.

    Средства автоматизации тестирования REST API.

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

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

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

    Важно помнить, что тестирование приложений перед представлением на рынке – важный этап в разработке любых приложений. И, конечно же, тестирование мобильных приложений имеет свои особенности и важные моменты.

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

    Читайте также: