Большой гайд по тестированию Android-приложений

Даже не глядя в статистику, Android-разработчики знают, что гугловский Play Market заполнен приложениями, их там уже около 3,5 миллионов, из этого понятно, что конкуренция жесточайшая.

Поэтому тема тестирования на Android очень релевантна. И высок спрос на Android-тестировщиков, в том числе Junior.

Учитывая конкуренцию, разработчикам нельзя — никак и нигде — подводить пользователей. Этого реально добиться, если QA-отдел выкладывается на все сто. 

Если софт для тестирования Android — слабое место, или вообще новичок в этой теме, попробуем разобраться с самыми базовыми вещами.

Содержание

Что такое мобильное тестирование?

Начнем с простого, рассмотрим мобильное тестирование “в целом”.

Мобильное тестирование — это процесс проверки мобильных приложений, то есть программ для смартфонов, планшетов, и других мобильных устройств (больше о тестировании мобильных приложений можно почитать в нашей статье). Проверяется функциональность, производительность, безопасность, удобство. Тестирование может быть ручным или автоматизированным. Цель тестировщика и всей QA-команды: убедиться, что приложение отвечает прописанным бизнес-требованиям, и ожиданиям пользователей.

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

  • Нативные приложения разрабатываются “под платформу”, то есть под одну из двух основных платформ, на соответствующем языке программирования, и с соответствующим SDK. Приложение устанавливается на смартфон из официального магазина. 
  • Веб-приложения пишутся с применением server-side-технологий, и работают, грубо говоря, через мобильный браузер. Существуют “адаптивные” (или “responsive”, мобильные версии сайтов) и “прогрессивные” (progressive) мобильные веб-приложения.
  • Третий тип — гибридные приложения. Они устанавливаются из магазинов, но работают на веб-технологиях. Разница с «классическими» веб-приложениями в том, что современные гибридные приложения получают широкий доступ к встроенным возможностям смартфона и продвинутым функциям операционки.

Автоматизация или ручное тестирование?

Автоматизированное тестирование важнее день ото дня. Во многих командах стоит вопрос, автоматизировать ли? Быстрый ответ: это зависит от особенностей приложения.

Скорее всего, для небольших и простых Android-приложений (а они составляют видимо бОльшую часть приложений в маркете) нет большой потребности в автоматизации тестов. Автоматизация может быть полезна, если например жесткие дедлайны; очень широкое таргетирование аудитории; большой предполагаемый парк девайсов. Ну и, производительность вряд ли получится качественно протестировать автоматизированным способом.

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

Выбор инструментов автоматизированного тестирования уже очень широк. Среди этих инструментов выделяется Appium; инструменты семейства Android Studio; Selendroid; Espresso; Roboelectric; список в конце.

В целом, в тестировании на Android в 2022 году принято, что автоматизировать тесты достаточно на 70%-80%. Ручное тестирование (все еще) незаменимо в некоторых сферах; поэтому автоматизация — не причина как-то пренебрегать ручным тестированием.

Этапы тестирования Android-приложений

Чтобы хорошо, качественно протестировать приложение, надо правильно составить “стратегию тестирования”, и построить хороший рабочий процесс (workflow). 

Итак, какие этапы будут в тестировании Android-приложения?

Планирование

Написание правильного плана тестирования — уже половина успеха. Важно с самого начала сосредоточиться на правильных вещах; прописать ту самую “стратегию тестирования”. На этом, самом первом этапе, QA-отдел описывает “масштаб/охват тестирования”; тестовое покрытие; покрытие девайсов; ресурсы, нужные для тестирования; примерные дедлайны; и, возможно, другие вещи, зависящие от уже конкретного проекта. Затем решается, в каком объеме будет автоматизация; и какие из тестовых сценариев будут автоматизировать.

Настройка тестового окружения

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

Написание тест-кейсов и сценариев

Когда уже решено, какая функциональность будет покрыта тестами, QA-отдел пишет тест-кейсы. В широком смысле, тест-кейс — это список этапов проверки, ведет ли себя приложение “как положено” в некой ситуации. Тестовые сценарии автоматизации пишутся, если QA-команда все-таки решила автоматизировать (некоторые) сценарии.

Выполнение тестов

Следующий этап — выполнение тестов и баг-репорты. Основной, самый трудоемкий этап. Обычно этап непосредственно тестирования начинается с функционального тестирования; здесь проверяется, что вся ключевая функциональность приложения работает как положено. Сначала лучше сделать ручное исследовательское тестирование; и если тестируемое приложение (AUT на жаргоне тестировщиков, Application Under Test) достаточно стабильное, то тогда переходят к автоматизированному тестированию.

Тестирование интерфейса и тестирование юзабельности. Важная часть процесса: QA проверяют user experience и удостоверяются, что AUT простое в использовании; интуитивное; то что называется юзер-френдли; и что по крайней мере в интерфейсе нет явных дефектов. 

Тестирование compatibility проверяет, корректно ли работает AUT на предполагаемых “целевых” смартфонах/операционках. Здесь также “шлифуют” user experience.

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

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

Кроме упомянутых тестов, еще может быть: инсталляционное тестирование; тестирование обновлений; тестирование прерываний; тестирование восстановления; тестирование ресурсов устройства; тестирование сетевых конфигураций.

Отчеты

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

Особенности тестирования Android-приложений

На Android-платформе есть особенности, о которых нужно знать. 

Необходимость тестировать на большом количестве девайсов

Android — открытая платформа, и это значит, что ее используют “на свое усмотрение” все производители смартфонов (и не только). Помимо этого, производители “железа” имеют возможность глубоко модифицировать операционную систему “под себя”, что тоже добавляет сложностей в тестирование. Поэтому QA-отдел должен гарантировать, что приложение будет работать на самых распространенных смартфонах (хотя бы), что user experience не пострадает.

Размер и пропорции экрана

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

Характеристики железа

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

Обратная совместимость

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

Много альтернативных каналов распространения 

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

Тестировщик Android — Советы

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

Тестировать на самых “ходовых” смартфонах

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

Сейчас “общемировой” список Android-производителей выглядит примерно так: Samsung, Google, Xiaomi, OPPO, и Vivo. (В России, Беларуси, Украине и Казахстане список примерно такой же). 

Тестировать на разных версиях Android

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

В ручном тестировании нежелательны эмуляторы

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

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

Особое внимание проблемам с памятью

“Пожирание памяти” это частая проблема мобильных приложений. Случаются ситуации, когда приложения и игры не могут запуститься или вылетают на самых распространенных Android-девайсах именно из-за аномально и необъяснимо высокого потребления памяти. Как правило, самые популярные, топ-рейтинговые приложения в Google Play таких проблем не имеют (потому что их тщательно протестировали в свое время!). Чтобы убедиться, что тестируемое приложение будет таким же надежным как топовое, важно протестировать работу с памятью на самых ходовых девайсах, включая как дорогие, так и дешевые.

Гайдлайны Google Play Store

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

Не игнорировать бета-тестирование

Бета-тестирование делают реальные пользователи на реальных устройствах в реальной обстановке. “Бета” дает QA-команде полезную вещь — отзывы, которые позволяют исправить приложение до его официального выпуска. Бета-тестеры дают фидбек по своим девайсам в разных условиях покрытия мобильной сети — от 2G до 5G, и в Wi-Fi. Они каким-то волшебным образом находят баги, найти которые QA-команда оказалась не способна. Бета-тестеры дают первую, общую оценку user experience.

Инструменты тестирования на Android

Тестирование — “холистический”, целостный и непрерывный процесс, охватывающий все этапы создания приложения. Существуют специализированные, качественные инструменты. Желательно хотя бы поверхностно ознакомиться с ними; чем раньше тем лучше.

Почему тестирование Android это сложно

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

Итоги

Нынешний пользователь Android избалован, он привык к качественным, надежным и красивым приложениям «по умолчанию».

Огромная, сложная, открытая экосистема Android — это большие челенджи для тестировщиков, но: слушая советы и накапливая опыт, челенджи можно решать! Постепенно продвигаясь к должности старшего тестировщика или главы QA-отдела.

***

Если Android все же “не твое”, то возможно будет интересен Обзор фреймворков для iOS тестирования. Об этапах тестирования мобильных приложений можно почитать здесь.

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас