Я искренне люблю мобильное тестирование, и в этой статье расскажу, что нужно знать, если вы решили погрузиться в эту область. Сделаю акцент на андроид, однако для ios большинство тезисов также применимы.
Начнем с девайсов
У ваших пользователей есть целый зоопарк устройств. Это могут быть планшеты и телефоны от различных производителей с разными версиями Андроида, разрешениями экрана, диагональю, прошивками и другими характеристиками. На Хабре есть хорошая статья про фрагментацию устройств на Андроид.
Как же учесть это, ведь невозможно протестировать приложение на всех вариантах устройств? Стоит выбирать наиболее популярные среди ваших пользователей девайсы, а еще тестировать на самой старой и самой новой из поддерживаемых ОС. Также важно проверять приложение девайсах с сильно кастомизированными прошивками. Например, xiaomi, huawei, samsung.
Перейдем к ui и ux
Для каждой из платформ существуют гайдлайны: Google Material Design для Android и Human Interface Guidlines для ios. В гайдлайнах описаны элементы интерфейса, их размеры, расположение на экране и не только. Гайдлайны нужны, чтобы создавать такой дизайн, который позволит пользователю не думать над простыми действиями. Например, над навигацией или выбором элементов.
Termux — Xaкеpфон без root прав | Что-то лучше чем Andrax и Kali Nethunter? | UnderMind
А еще гайдлайны пригодятся, чтобы один и тот же дизайн был одинаково функционален на разных девайсах и разных версиях платформы. Хорошее приложение должно следовать гайдлайнам, а тестировщик проверить это.
Кроме требований гайдлайнов, важно тестировать то, как пользователь взаимодействует с девайсом. Он может изменить размер шрифта, повернуть экран в ландшафтную ориентацию или свернуть приложение.
Рассмотрим разрешения
У каждого приложения на платформе Андроид есть список разрешений (permissions). Например, разрешения на доступ к файловой системе, местоположению или камере. В зависимости от функционала, приложение запрашивает их у системы. Для успешного тестирования стоит выяснить, при каких действиях приложение запрашивает разрешения, и протестировать эти действия с выданными разрешениями и без них.
Потестируем запросы
Приложение — это в первую очередь про фронтенд. Для взаимодействия с бекендом оно использует http-запросы. Запросы, как известно, могут возвращать разные коды ответа. Например, 400, 500 и другие. А также ответы могут приходить с таймаутом.
Тут важно протестировать реакцию приложения на различные коды ответа, таймауты разной длины и измененное body ответа. Для тестирования подобных ситуаций используются снифферы — инструменты для перехвата трафика и подмены запросов и ответов. Снифферы позволяют изменять запрос и ответ целиком или частично. Самые популярные — это Charles и Fiddler. О работе с ними я постараюсь рассказать подробнее в отдельной статье.
Обновим приложение
У приложения на Андроид есть своя база данных, которая хранится прямо на устройстве. Добавляя новые фичи, разработчик меняет и базу: удаляет, изменяет, добавляет поля и таблицы. Чтобы протестировать это, обновим приложение до версии, в которой база изменена. После обновления нужно проверить тот функционал, который был затронут при разработке.
Как Увеличить FPS и Ускорить Смартфон
Используем функции девайса
Кроме вашего приложения, пользователь совершает очень много действий на девайсе. Как отреагирует приложение, если пользователь изменит часовой пояс, дату или время? А если девайс перезагрузят? А если сеть станет не доступна на несколько минут, или пользователь переключится с wi-fi на мобильную сеть?
Казалось бы, это внешний функционал операционной системы, но он напрямую влияет на работу приложения. Протестируем поведение приложение в перечисленных условиях.
Давайте зарелизим
Если вы тестировали веб-приложения, то наверное знаете, что можно в любой момент выложить изменения в продакшн, используя пару нехитрых команд git. И буквально в считанные секунды ваши пользователи получат новый функционал. У мобильных приложений такие быстрые релизы невозможны.
Когда билд готов к релизу, его загружают в Play Market или App Store. Там приложение проходит ревью и становится доступным для скачивания. Однако пользователи получат новый релиз только когда обновятся. А это процесс не быстрый. У большинства пользователей может быть отключено автообновление, и они могут месяцами откладывать обновление вручную.
К счастью, в вашем приложении может присутствовать механизм принудительного обновления. Это может быть экран с просьбой обновиться и кнопкой или баннер с предупреждением. Все зависит от фантазии команды разработки.
Подытожим
Мобильные девайсы и платформы часто обновляются, Google меняет требования к разработке, а рынок мобильных приложений растет. Именно поэтому тестировать мобильные приложения всегда интересно!
Я описала лишь основные направления тестирования мобильных приложений. По каждому из них можно написать несколько более подробных статей, но я надеюсь, что мир мобильных приложений теперь стал для вас немного приветливей!
Источник: habr.com
6 шагов для успешного тестирования приложений под Android
В связи с большой популяризацией мобильных приложений мы все чаще и чаще начинаем пользоваться мобильными устройствами. Такси, погода, новости, заказ еды и прочее, практически для всего уже существуют свои мобильные сервисы.
А раз количество приложений растет, то растет и потребность в качестве выпускаемых приложений. Это факт! Все больше и больше организаций приходят к тому, чтобы тестировать свои мобильные приложения. Конечно, зачастую, это делаем не мы с вами (тестировщики), а пользователи, заказчики. Но тем не менее, если приложение имеет большую аудиторию, то цена дефекта растет, а значит нужно уже не просто тыкать кнопочки, а прикладывать голову и знания для своевременного нахождения дефектов.
Так к чему я это?
Ах да! Есть просто куча материала, который говорит нам о том, что такое мобильное тестирование, как его проводить, как должен быть устроен процесс и куча куча всякой мукулатуры . Но мы ведь не просто тестируем мобилки, мы тестируем их на различных платформах!
На фоне это мы поговорим, какие особенности есть в тестировании мобильных приложений и на что нужно обратить внимание в первую очередь, прежде чем приступать к тестированию. И нашим объектом будет платформа Android.
Ну и раз я начал говорить о шагах к качественному выпуску мобильного продукта, то одними из первых шагов будет подготовка мобильной лаборатории.
В связи с тем, что количество мобильных устройств под платформой Android постоянно растет, важной составляющей при тестировании является работоспособность приложения под большим количеством устройств. Согласно официальной статистике Android, сегодня более чем в 190 странах доступны устройства на платформе Android, а количество всех устройств достигает сотни миллионов. Естественно, при таком огромной популярности платформы, каждое устройство имеет свои собственные специфические требования, такие как физический дизайн и пользовательский интерфейс различных атрибутов.
Если вы тестируете, то помните, что ваш парк должен включать не одно, не два и даже не десять устройств.
Часто на собеседования ко мне приходят тестироващики мобилок, и, когда разговор заходит о парке мобильных устройств, в 90% случае я слышу максимум 4-5 устройств, на которых принято тестировать в их компании.
Нельзя отталкиваться при выборе устройств от версии платформы.
Многие же считают, что если мы проверили приложение на Android 5.0 Lollipop на SAMSUNG Galaxy S6, то значит приложение работает.
Помимо платформы, есть ряд составляющих, таких как CPU, диагональ и разрешение экрана, ОЗУ, которые могут серьезно влиять на работоспособность Вашего приложения.
В среднем по статистике, которую мы сделали в результате нашего исследования, для полноценного тестирования мобильных приложений на Android нужно порядка 69 устройств на платформе Android.
Полные результаты исследования можно посмотреть тут:
При этом нужно всегда помнить, что многие программы могут быть доступны на еще большем количестве устройств, в том числе на низкобюджетных смартфонах, которые все чаще и чаще начинают появляться во многих рынках, особенно в Китае.
Если у Вас есть планы по расширению и выходу на международный рынок, нужно обязательно учитывать этот фактор и постоянно проводить аналитику для расширения парка устройств.
Если про размер экрана все понятно, то обычные тестировщики не всегда сталкиваются с понятием плотности.
Итак, плотность экрана (Screen density) — это количество физических пикселей дисплея.
По сравнению с достаточно малым количеством экранов на iOS, вариаций по размеру экрана и его плотности для платформ Android добавляют дополнительную сложность в тестировании. Несмотря на то, что существует более 12 000 различных устройств, официально Android их разделяет на 4 класса по размеру экрана и 6 классов по плотности.
Как мы видим, самые популярным размером экрана является «Normal» с плотностью hdpi, xhdpi, xxhdpi и mdpi, что важно учитывать при подготовке парка устройств для тестирования мобильных приложений.
Также отмечу, что эти данные постоянно обновляются на официальном сайте разработчиков Android, поэтому периодически перед тестированием проверяйте актуальность информации, т.к. мобильный рынок растет постоянно.
Официально Android поддерживает 10 платформ/версий, начиная с «Froyo» 2.2 и заканчивая «Marshmallow» 6.0. Но если говорить о сегодняшнем дне, то не все мобильные приложения поддерживают все версии и платформы. Поэтому, если и планировать тестирование, то нужно обязательно учитывать выполнение тест-кейсов на нескольких версиях Android.
Так, например, если мы посмотрим на текущий рынок, то уже давно вышли такие версии, как «Lollipop» 5.0-5.1 (которая вышла еще в декабре 2014 года) и «Marshmallow» 6.0, но лидером по прежнему является «KitKat» 4.4.
В чем важности использования различных платформ?
С одной стороны, не стоит тестировать на последних версиях платформы, т.к. именно таким тестированием можно буквально изолировать большое количество пользователей от приятной работы с Вашим продуктом.
С другой, если у вас приложение не обновляется до новых версий платформ Android, то есть риск потерять текущих пользователей, после того, как они обновят свою версию платформы Android.
Я как то просматривал Play Market и меня удивило, что практически для каждого приложения пользователи пишут о том, что на том или ином устройстве их приложение работает не правильно!
И иногда это действительно вымораживает нервирует. Когда вы скачиваете приложение особенно не через wi – fi и метров под 900 , запускаете его, а в ответ приложение не открывается!
Отсюда могу сказать, что важно протестировать продукт как минимум на 4-х, а лучше 5-ти версиях Android.
На этом мое творческое повествование о формировании парка мобильных устройств закончено.
Можем идти дальше!
Все, о чем я рассказал ранее, было этапом подготовки. Теперь поговорим о самом приятном, о мобильном тестировании. Я расскажу об основных проблемах, с которыми можно столкнуться при тестировании мобильных приложений.
На самом деле, многие могут посчитать, что это обычные и легкие задачи. Я не скрываю, да, это так, но если мы не проведем качественное тестирования, то при выпуске/обновлении нас будет ждать полный крах.
Начнем по порядку.
- Регистрация и вход в систему.
Пожалуй, более явного кейса для тестирования не найти, но тем не менее я не могу не остановится на этом. Тестирование любого мобильного приложения должно полностью покрывать процессы регистрации и входа в систему. Особое внимание можно обратить на то, что при тестировании данных процессов нужно выполнять их от начала до конца, при этом максимально генерируя всевозможные негативные тесты, начиная с некорректного ввода пароля и заканчивая SQL –иньекциями.
Если рассматривать мобильное тестирование на множестве устройств с различными разрешениями экранов, то всегда можно столкнуться с ситуацией, когда стандартные пункты меню, такие как, Справка, О нас, и другое будет просто недоступны, как визуально, так и физически при нажатии пальцем. Особенно это касается устройств с небольшими экранами, когда пытаешь попасть своим широким пальцем на ссылку. В итоге приходится прицеливаться и аккуратно нажимать
Любые функции, которые особенно связаны с текстовым набором, скроллингом, кнопкой «Назад» и другие, без которых функционирование приложение просто невозможно для нормального пользователя, должны обязательно проверяться в ходе тестирования. Кроме того, необходимо обязательно проверить, что приложение будет корректно работать при последовательном использовании физических кнопок и тачскрина.
Недавно скачал себе приложение KFC. Моей злости не было предела! Мало того, что у меня просто не нажимались кнопки добавления в корзину, так он еще и загружается минуту! И ресторан я свой искал руками, т.к. приложение упорно говорило мне, что я нахожусь в противоположной части города!
Как ведет себя приложение, когда батарея телефона на полном, среднем и низком заряде? Может ли пользователь воспользоваться вызовами или тестовыми сообщениями? Вы всегда должны знать, насколько работа других приложений (зачастую стандартных) может повлиять на работу Вашего приложения. Для этого очень полезен анализ crashlog.
Например, у меня на Lenovo, когда работает музыка через Bluetooth, постоянно при повторном запуске Яндекс Навигатора и при нажатии на кнопку GPS перезагружается телефон. Это ужасно, особенно когда ты едешь на скорости 100км/ч и у тебя пропал GPS, а нужно его перезагрузить. Начинается паника, куда ехать… И напоследок разработчики Android будут аплодировать сто я, самое крутое, что перезагружается телефон вот в таком формате:
И тут начинается лотерея! Физически тачскрин работает в портретной ориентации, а экран обрезан на половину и отображается в альбомной ориентации. Когда я первый раз наткнулся на такой баг, я 30 минут пытался попасть по кнопке перезагрузить телефон!
Но вернемся к теме мобильного тестирования.
Очень важно помнить, что зачастую приложение возможно использовать не только в портретной ориентации, но и в альбомной. Многие пользователи зачастую используют портретную ориентацию, но, вот лично мне, использовать навигатор или видео проигрыватель удобнее в альбомном режиме. Поэтому, при тестировании необходимо проверять, что функциональность и юзабилити мобильного приложения не изменяются при переходе из портретного режима в альбомный. Ниже покажу пример на все том же яндекс навигаторе:
Как видно, клавиатура закрывает всю возможность выбрать предыдущие адреса! Поэтому либо выбираем первый адрес, либо вводим его. Ну или тратим 5 минут, на то, что бы попробовать прокрутить адреса, при этом не нажав случайно на адрес или клавиатуру.
При тестировании мобильного приложения обязательно нужно проверять влияние настроек приложения на его производительность, в том числе эффект мобильного приложения на заряд батареи. Многие пользователи хотят использовать свое мобильное устройство минимум один день, при этом используя любимые ими приложения. Если ваше приложение пользуется большой аудиторией, то вы обязательно должны знать, как оно влияет на ресурс питания телефона. Для этого рекомендуется проводить тесты эксплуатации.
- Влияние на работу устройства.
Говоря об эксплуатации, подразумевается работа приложения в обычном режиме. Для тестирования необходимо запустить приложение и использовать его в течении 6-12 часов. При использовании необходимо каждые 30 минут или 1 час измерять уровень заряда батареи. Зачастую такая проверка автоматизирована, чтобы не тратить время тестировщика на сбор данных. Если результаты теста показывают, что снижение уровня заряда батареи происходит раньше 6 часов при условии работы со всеми фоновыми функциями вашего телефона, то это явно указывает на проблемы в приложении.
Я думаю у каждого была ситуация, когда вы скачиваете приложение, а потом оно сжирает у вас за 30 минут 20% аккумулятора. Я не помню их названия, но такие были точно!
Помимо основной функциональности существует ряд проблем, с которыми можно столкнуться при тестировании мобильных приложений на Android. Обязательно при тестировании нужно обратить внимание на:
Спец символы. Если приложение, которые вы тестируете включает поля поиска или формы ввода, обязательно нужно проверить на возможность ввода спецсимволов.
Длительное нажатие на экран. Обязательно нужно проверить, что при нажатии и удерживании тачскрина в полях ввода работают стандартные функции Android на копирование и вставку. Нужно удостовериться, во-первых, что эти функции работают и они не перепутаны, а во-вторых, что долгое нажатие на экран приложения не приводит к сбоям.
Виртуальная клавиатура. В большинстве устройств, работающих на Android, клавиатуры виртуальные. Если пользователь изменяет размер и визуальную обложку клавиатуры нужно убедиться, что эти изменения не влияют использование мобильного приложения, и, что хуже, не искажают его до невозможности использования.
Дополнительно всегда ставьте себя на место реального пользователя и тестируйте приложение с точки зрения потенциально реальных ситуаций в работе пользователей.
Помните, что любые отказы ведут к недовольству пользователя приложения.
В целом я не считаю себя специалистом по тестированию безопасности, но тем не менее есть определенные проверки, которые нужно выполнять, чтобы обезопасить конечных пользователей.
Любая система должна обеспечивать соблюдение требований к информации:
- Конфиденциальность. Недоступны ли личные данные пользователей?
- Целостность. Нет ли возможности извне изменить личные данные при их передаче?
- Аутентификация. Как приложение проверяет, что именно я являюсь владельцем аккаунта?
- Доступность. Как и при каких условия возможность сломать/ сделать неработоспособным приложение?
- Отказоустойчивость. Как ведется учет всех отказов системы?
Если специалисты по безопасности предусмотрели все эти пункты, а также проверили методы шифрования информации при передаче, а также протестировали возможно подключения к стандартным функциям устройства через API (контакты, камера или GPS), то можно считать, что Ваше приложение пригодно для использования пользователями.
И помните, что излишняя навязчивость пользователю политики конфиденциальности тоже может отбить желание пользоваться мобильным приложением!
Ну и напоследок….
Мне пришлось изрядно порыться в Google Play, но это оказалось очень полезным.
Удалось относительно определить основные проблемы, с которыми сталкиваются пользователи:
- 55% жалуются на установку
- 24% жалуются на производительность
- 13% говорят об отказах приложения
- 5% пишут, что их приложение подтормаживает или зависает.
- 2% жалуются на UI
- 1% на проблемы с конфиденциальностью или безопасностью.
И как всегда негативных отзывов больше чем положительным, а это говорит о том, что очень мало в России компаний, которые полноценно тестируют свои мобильные продукты. Плохие отзывы могут просто слить выход приложения, прежде, чем оно начнет успешно работать.
Тестируйте мобильные приложения, как на эмуляторах на стадии разработки, так и на реальных девайсах на стадии полноценного тестирования. Такие функции, как акселерометр, использование сенсорного экрана или отображение расположения просто невозможно проверить на эмуляторах.
Не гонитесь за дешевыми эмуляторами, клавиатура и мышь никогда не заменит полноценного использования реального девайса руками.
Надеюсь было полезно!
Источник: www.performance-lab.ru
20+ инструментов для тестирования мобильных приложений
Боевой набор настоящего самурая-тестировщика, незаменимый в любой ситуации. Какие бы приложения вы ни тестировали, можете использовать один или несколько инструментов из подборки.
Автоматизированные инструменты для тестировщика
DeviceAnywhere
Инструмент для множественного кроссплатформенного тестирования устройств и приложений.
Ranorex
Для автоматизированного тестирования приложений для iOS, Android и Windows 8. Позволяет записывать проводимые тесты и их результаты.
eggPlant
Автоматическое тестирование для iOS, Android и Windows Mobile / Phone.
Silk Mobile
Инструмент автоматического тестирования веб-приложений, а также нативных приложений для iOS, Android, Blackberry и Windows Phone. Не требует джейлбрейка для устройств.
SeeTest
Позволяет записывать результаты тестирования приложений на физически существующих устройствах и может также использоваться для кроссплатформенного тестирования на основе подготовленного пакета тестов.
MonkeyTalk
Инструмент тестирования нативных, гибридных и веб-приложений на основе простых и комплексных тестов.
NativeDriver
Подходит больше для нативных приложений, чем для других. Совместим с приложениями для Android, iOS и Windows / Windows Phone.
Mобильные эмуляторы и инструменты тестирования
Дополнительная помощь тестировщику, у которого не все физические смартфоны / планшеты под руками, а тест нужно провести быстро. Большинство из инструментов в этой рубрике — веб-сервисы с интерактивным интерфейсом, работающим в практически любом современном браузере.
mobiReady
Инструмент верификации и оценки готовности сайтов и прототипов для мобильных устройств. Есть подсказки и рекомендации по тестированию и оптимизации сайтов и приложений под различные мобильные гаджеты.
BrowserStack
Веб-инструмент для сайтов и веб-приложений с использованием различных браузеров и полнофункциональной интерактивностью.
CrossBrowserTesting
Кроссбраузерное тестирование для iOS, Android и Blackberry.
Screenfly
Инструмент-эмулятор для готовых приложений, сайтов и интерактивных прототипов. Есть поддержка разных диагоналей экрана и устройств.
Mobile phone emulator
Эмулятор различных мобильных телефонов для проверки совместимости приложения.
Responsive
Инструмент тестирования приложений на предмет полноценной функциональности адаптивного дизайна.
ProtoFluid
Инструмент для тестирования адаптивного дизайна и «жидких» текстур.
Тестирование мобильных приложений для Android
Отдельная подборка инструментов для тех, кто тестирует приложения для мобильной ОС Android.
Testdroid
Автоматизация тестов и записть пользовательских действий.
robotium
Фреймворк для тестирования нативных и гибридных приложений. Позволяет записывать тесты, проводимые в режиме black-box.
scirocco
Инструмент для тестирования пользовательского интерфейса с возможностью составления отчетов со скриншотами.
Monkey
Эмулятор псевдорендомных потоков событий (клики, жесты, касания, события на уровне работы системы и т.д.)
Тестирование приложений для iPhone и iPad
iPhone Tester
Веб-инструмент для тестирования веб-интерфейсов на iPhone. Для использования рекомендован браузер Safari или иной браузер на базе Webkit.
iPad Peek
Тестирование приложений для iPad (приложения, сайты, интерактивные прототипы).
Appium
Автоматический инструмент тестирования гибридных и нативных приложений для iOS.
TestStudio
Позволяет записывать, строить и выполнять автоматизированные тесты для приложений под iPhone и iPad. Использует запись по объектам.
Онлайн-инструменты для тестирования
Помимо некоммерческих инструментов, перечисленных выше, есть и коммерческие решения для автоматизации тестирования приложений. Их рекомендуют использовать для проверки в интерактивных тестах большого количества приложений или сайтов.
Perfecto Mobile | Тестирование приложений | От $25 / час |
UserTesting.com | Проверка юзабилити | От $250 / 10 часов |
AppThwack | Комплексная платформа | От $20 / месяц |
Xamarin Test Cloud | Комплексная платформа | От $25 / месяц |
(Источник)
Источник: spark.ru