Как тестировать приложение на iphone
Чек-лист тестирования мобильных приложений
У многих начинающих специалистов в области тестирования возникает вопрос: «А как же протестировать мобильное приложение. С чего начать, какие проверки стоит осуществить?» Данный вопрос актуален, когда они приходят в компанию, где нет документации на проекте, либо это только что появившийся стартап. Чтобы ответить на эти вопросы была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого приложения.
В данный чек-лист вошли только общие характеристики. Естественно, в тестируемом приложении может быть функциональность, для которой нужно применять отдельный подход и создать отдельные сценарии. То же самое верно для производительности, удобства использования, безопасности и прочего тестирования, которое необходимо вашему приложению.
Чек-лист для тестирования мобильных приложений состоит из восьми разделов:
Функциональное тестирование
В данном пункте нам важно убедиться, что наш продукт соответствует нужной функциональной спецификации, упомянутой в документации по разработке.
Что проверяем?
1. Установка/удаление/накатка версий
2. Запуск приложения (отображение Splash Screen)
3. Работоспособность основного функционала приложения
3.1 Авторизация (по номеру телефона/через соц. сети/e-mail)
3.2 Регистрация (по номеру телефона/через соц. сети/e-mail)
3.3 Онбординг новых пользователей
3.4 Валидация обязательных полей
3.5 Навигация между разделами приложения
3.6 Редактирование данных в профиле пользователя
3.7 Проверка оплаты
3.8 Тестирование фильтров
3.9 Бонусы
4. Корректное отображение ошибок
5. Работа с файлами (отправка/получение/просмотр)
6. Тестирование тайм-аутов
7. Тестирование заглушек (не соединения с интернетом/нет, например, товаров и т.д)
8. Тестирование pop-up, алертов
9. Тестирование WebView
10. Скролл/свайп элементов
11. Тестирование PUSH уведомлений
12. Сворачивание/разворачивание приложения
13. Разные типы подключений (сотовая связь/Wi-Fi)
14. Ориентация экрана (альбомная/портретная)
15. Темная/светлая темы
16. Реклама в приложении
17. Шаринг контента в соц. сети
18. Работа приложения в фоне
19. Пагинация страниц
20. Политики конфиденциальности и прочие ссылки на документы
Тестирование совместимости
Тестирование совместимости используется, чтобы убедиться, что ваше приложение совместимо с другими версиями ОС, различными оболочками и сторонними сервисами, а также аппаратным обеспечением устройства.
Что проверяем?
1. Корректное отображение гео
2. Информации об операциях (чеки и т.д.)
3. Различные способы оплаты (Google Pay, Apple Pay)
4. Тестирование датчиков (освещенности, температуры устройства, гироскоп и т.д.)
5. Тестирование прерываний (входящий звонок/смс/push/будильник/режим «Не беспокоить» и т.д.)
6. Подключение внешних устройств (карта памяти/наушники и т.д.)
Тестирование безопасности
Данная проверка нацелена на поиск недостатков и пробелов с точки зрения безопасности приложения.
Что проверяем?
1. Тестирование разрешений (доступ к камере/микрофону/галерее/и т.д.)
2. Данные пользователя (пароли) не передаются в открытом виде
3. В полях, с вводом пароля и подтверждением пароля, данные скрываются астерисками
Тестирование локализации и глобализации
Тестирование интернационализации/глобализации приложения включает тестирование приложения для различных местоположений, форматов дат, чисел и валют, а также замену фактических строк псевдостроками. Тестирование локализации включает тестирование приложения с локализованными строками, изображениями и рабочими процессами для определенного региона.
Что проверяем?
1. Все элементы в приложении переведены на соответствующий язык
2. Тексты зашиты внутри приложения и пользователь в настройках приложения может выставить необходимый язык
3. Тексты зависят от языка в системных настройках
4. Тексты приходят с сервера
5. Корректное отображение форматов дат (ГОД — МЕСЯЦ — ДЕНЬ или ДЕНЬ — МЕСЯЦ — ГОД.)
6. Корректное отображение времени в зависимости от часового пояса
Тестирование удобства использования
Тестирование удобства использования помогает удостовериться в простоте и эффективности использования продукта пользователем, с целью достижения поставленных целей. Иными словами, это не что иное, как тестирование дружелюбности приложения для пользователя.
Что проверяем?
1. Корректное отображение элементов на устройствах с различными разрешениями экранов
2. Все шрифты соответствуют требованиям
3. Все тексты правильно выровнены
4. Все сообщения об ошибках верные, без орфографических и грамматических ошибок
5. Корректные заголовки экранов
6. В поисковых строках присутствуют плейсхолдеры
7. Неактивные элементы отображаются серым
8. Ссылки на документы ведут на соответствующий раздел на сайте
9. Анимация между переходами
10. Корректный возврат на предыдущий экран
11. Поддерживаются основные жесты при работе с сенсорными экранами (swipe back и т.д.)
12. Пиксель-перфект
Стрессовое тестирование
Стрессовое тестирование направлено на определение эффективности производительности приложения в условиях повышенной нагрузки. Стресс-тест в этом контексте ориентирован только на мобильные устройства.
Что проверяем?
1. Высокая загрузка центрального процессора
2. Нехватка памяти
3. Загрузка батареи
4. Отказы
5. Низкая пропускная способность сети
6. Большое количество взаимодействий пользователя с приложением (для этого может понадобиться имитация реальных условий состояния сети)
Кросс-платформенное тестирование
Важный вид тестирования, который необходимо проводить для понимания того, будет ли должным образом отображаться тестируемый продукт на различных платформах, используемых целевой аудиторией.
Что проверяем?
— Работоспособность приложения на различных устройствах разных производителей
Тестирование производительности
Если пользователь устанавливает приложение, и оно не отображается достаточно быстро (например, в течение трех секунд), оно может быть удалено в пользу другого приложения. Аспекты потребления времени и ресурсов являются важными факторами успеха для приложения, и для измерения этих аспектов проводится тестирование производительности.
Что проверяем?
1. Время загрузки приложения
2. Обработка запросов
3. Кэширование данных
4. Потребление ресурсов приложением (например расход заряда батареи)
Тестирование приложений IOS через TestFlight
В отличии от тестирования приложений для Android, где тестовое приложение представляет собой установочный файл, с IOS дела обстоят несколько сложнее. Подход централизованного тестирования является фактически единственным возможным методом для быстрой доставки приложения от разработчика до тестировщика (или заказчика).
Тестирование проводится при помощи приложения TestFlight, которое обеспечивает доставку и установку тестовых программ. Время тестовой версии с момента ее отгрузки составляет 60 дней, после чего ожидается загрузка обновленной версии. Если новая версия не отгружена, то тестирование прекращается.
Тестирование разделяется за внутреннее и внешнее. В обоих случаях, составляется список тестировщиков. В случае внешнего тестирования, приложение должно пройти дополнительную «beta»-проверку. Из практики, данная проверка проводится от 1 до 2-х дней. Внутренняя проверка рассчитана на сотрудников компании, которые доверяют разработчикам. Мы склонны применять именно внутреннее тестирование из-за его быстрой динамики.
Этап 1
Список адресов AppleID необходимо передать разработчикам (или организатору тестирования). Внимание! требуется только AppleID и желательно Фамилия и имя, пароль сообщать НЕ требуется. Если мы являемся Вашими разработчиками, то отправьте нам список через форму внизу статьи или на почту dev@ios-lab.ru
Этап 2
После регистрации Вашего AppleID, на почту Вам придет письмо примерно следующего содержания:
Перейдите по ссылке из письма. В открывшемся окне браузера, Вам необходимо согласиться с условиями и подтвердить намерения.
Этап 3
Для ускорения процесса, Вы можете сообщить разработчику о том, что все тестировщики уже подтвердил свое участие (через форму в конце статьи или на почту dev@ios-lab.ru)
Теперь Вам необходимо установить приложение TestFlight из AppStore.
Этап 4
После подтверждения, разработчик подключает Вас к конкретному тестируемому приложению, после чего Вы получаете следующее письмо
Перейдите по приглашению из письма и Вы установите целевое приложение. С этого момента Вы можете начинать тестирование.
Обновление
Если разработчик выкатил новый релиз, то Вам потребуется выполнить обновление через TestFlight практически так же, как и любое другое обновление в AppStore.
По истечении срока тестирования, приложение останется работать на Вашем устройстве. Удалить его можно точно так же, как и любое другое.
Не допускайте наличия тестовой и релизной версии приложений на Ваших устройствах. Перед скачиванием релиза, рекомендуется удалить тестовую.
Отзыв о тестовой версии
Вы можете оставить отзыв или сообщить об обнаруженной уязвимости. Для этого Вам необходимо перейти в приложение TestFlight
Отзыв составляется в виде письма разработчикам, на указанный ими адрес для связи.
Тестирование для мобильных устройств: эмуляторы, симуляторы и удалённая отладка
В давние времена разработки мобильных сайтов и приложений отладка была сложной задачей. Да, можно было заполучить устройство и быстренько проверить работу – но что было делать, если ты обнаруживал баг?
При отсутствии инструментов отладки приходилось полагаться на разные хаки. В целом они сводились к попыткам воспроизвести баг в десктопном браузере и затем отловить его при помощи Chrome Developer Tools или где-то ещё. К примеру, можно было уменьшить размер окна браузера или поменять user agent.
Грубо говоря, эти хаки не работали. Если ты правишь баг на десктопе, ты не уверен, что он исправлен на мобильном устройстве (МУ). Поэтому приходилось постоянно метаться между устройством и десктопом.
Теперь же у нас есть набор инструментов, позволяющих получать осмысленные данные прямо с МУ. Кроме того, можно использовать десктопные инструменты для отладки прямо на МУ.
В этой статье мы разберём несколько эмуляторов и симуляторов, которые позволяют быстро и легко тестировать сайты и приложения. Затем посмотрим на инструменты для удалённой отладки, позволяющие подключаться к МУ.
Эмуляторы и симуляторы
Тестирование на физических устройствах – штука оправданная. Но это не значит, что не нужно тестировать на эмуляторах и симуляторах. Они позволяют расширить тестируемый набор устройств и проверять изменения на лету.
Симулятор iOS
Для тестирования яблочных устройств, айфонов и айпадов, есть несколько вариантов. Первый среди них – официальный Apple iOS Simulator, входящий в поставку Xcode. Позволяет тестировать разные комбинации софта и железа – но только на Mac.
Установите и запустите Xcode. Потом ПКМ и выберите «Show Package Contents». Затем пройдите “Contents” → “Applications” → “iPhone Simulator.”
Хотя найти его нелегко, использовать симулятор просто. Откройте Safari в симуляторе и тестируйте свой сайт. Можно переключаться между разными устройствами iPhone и iPad, менять версию iOS, поворачивать устройство и т.п.
Если у вас нету Mac’а, придётся заморачиваться. Можно взять iPadian, симулятор iPad для Windows. Кроме него существует ещё несколько вариантов, в частности онлайновые. Но, честно говоря, они не особенно хороши.
Эмулятор Android
У андроида эмулятор кросс-платформенный. К сожалению, он сложен в настройке.
Для начала, скачайте подборку, включающую Android Development Tools (ADT) для Eclipse и Android software development kit (SDK). Затем следуйте инструкциям по установке, не забудьте кроме настроек по-умолчанию установить и “Intel x86 Emulator Accelerator (HAXM installer)”. Также вам понадобится установить HAXM (IntelHaxm.dmg на Маке и IntelHaxm.exe на PC).
Затем создайте Android virtual device (AVD) для тестируемого устройства. В менеджере AVD есть список готовых устройств в “Device Definitions”. Для начала выберите одно из них и нажмите “Create AVD”
Выберите любой CPU, и поставьте “No skin“ и “Use host GPU”. Теперь можно запускать виртуальное устройство и использовать браузер Android для тестирования.
Не помешает подучить клавиатурные команды для более удобного взаимодействия с эмулятором.
Как альтернативу, можно использовать Manymo – эмулятор, встраиваемый в браузер. Его даже можно встроить в страницу.
Другие симуляторы и эмуляторы:
Удалённое тестирование
Эмуляторы и симуляторы полезны, но не на 100% достоверны. Всегда нужно пытаться проводить тестирование на максимальном количестве реальных устройств.
Но это не означает, что вам нужно их все покупать. Можно воспользоваться услугами сервисов удалённого тестирования, которые предлагают веб-интерфейс для тестирования на удалённых устройствах. Можно будет взаимодействовать с телефоном и видеть его экран.
Для тестирования устройств от Samsung, таких, как Galaxy S5, можно бесплатно воспользоваться услугами Samsung Remote Test Lab – они предоставляют для тестирования большой выбор своих устройств.
Также можно пользоваться ресурсами Keynote Mobile Testing. Они недёшевы, но количество доступных устройств поражает, и некоторыми можно пользоваться бесплатно.
Если вам нужны физические устройства, можно обратиться в Open Device Lab, где есть список ближайших доступных лабораторий тестирования.
Удалённая отладка
Удалённая отладка на МУ выявляет множество трудностей. К примеру, как получить осмысленные данные от небольшого, сравнительно дохленького устройства?
Инструменты удалённой отладки предоставляют интерфейс для подключения к МУ с десктопа. Таким образом, мы работаем с данными с реальных устройств на мощном десктопном компьютере.
С выходом 6-й версии Apple представила инструмент для отладки МУ через Safari Web Inspector.
Для начала надо разрешить удалённую отладку на устройстве. “Settings” → “Safari” → “Advanced” и разрешить “Web Inspector”
Затем подключите устройство к компьютеру через USB. Потом откройте Safari (версии не ниже 6) и в “Preferences” → “Advanced” выберите “Show Develop menu in menu bar”.
В этом меню вы увидите ваше устройство и несколько страниц с настройками.
На каждой из страниц представлено много инструментов, DOM Inspector и подобные.
Кроме DOM Inspector, iOS’ вы можете использовать:
— временной график для просмотра сетевых запросов, раскладки и рендеринга страниц, работы JavaScript
— отладчик с возможностью установки точек останова
— консоль JavaScript
Как и в случае с симулятором iOS, удалённой отладкой можно заниматься только с Мака.
Android
В случае с Андроидом инструменты удалённой отладки позволяют работать с десктопа при помощи Chrome’s Developer Tools. Кроме того, инструменты эти опять-таки кросс-платформенные.
Сначала, на телефоне пройдите в “Settings” → “About Phone” (для Android 4.4+), или “Settings” → “About Tablet”. Затем нужно нажать на “Build Number” семь раз. Кроме шуток. После этого вы увидите сообщение насчёт разработчика.
Затем обратно в основных настройках “Developer Options” нужен пункт “USB debugging”.
В адресной строке браузера Chrome наберите about:inspect. Разрешите “Discover USB devices”, и вы увидите в меню своё МУ.
Также вы должны увидеть открытые закладки в мобильном браузере. Выберите нужную, и вам будут доступны:
DOM Inspector,
Сетевая панель с внешними ресурсами
Панель исходного кода, для отладки JavaScript
Консоль JavaScript
Подробности можно найти в тьюториале “Introduction to Chrome Developer Tools, Part One.”
Также можно заниматься удалённой отладкой в эмуляторе Андроида.
Weinre
Если вам приходится отлаживать устройство с iOS на Windows, или Linux, или отлаживать устройство, работающее под Windows Phone или BlackBerry – попробуйте Weinre (web inspector remote). Работает везде.
Настройка weinre сложновата, т.к. его надо устанавливать и на сервере, и на странице. Сначала вам понадобится установить Node, а затем установить модуль Weinre:
npm install –g weinre
Затем запустите сервер отладки (подставляем ip-адрес компьютера):
Наконец, кликните на ссылке вверху user interface for debugging clients (http://localhost:8080/client/#anonymous). Теперь, когда вы откроете страницу на устройстве, её можно будет увидеть в списке целей (targets).
После этого можно использовать инструменты для отладки.
Weinre позволяет тестировать любое устройство, но он не настолько продвинутый, как родные решения для iOS и Android. К примеру, нельзя пошагово отлаживать JavaScript.
Ещё один вариант удалённого тестирования называется Ghostlab.
Заключение
В этой статье мы научились устраивать тестовую лабораторию при помощи комбинации из реальных устройств, эмуляторов, симуляторов и инструментов удалённого тестирования. С их помощью вы сможете тестировать сайты и приложения на различных МУ.
Также мы познакомились с различными инструментами удалённой отладки, которые открывают доступ к отладочным данным МУ, без которых отладка сильно затруднена.
Что ещё почитать перед сном:
“Mobile Emulators and Simulators: The Ultimate Guide,” Maximiliano Firtman
“Introduction to Chrome Developer Tools, Part One,” Seth Ladd, HTML5 Rocks
“About Safari Web Inspector,” Safari Developer Library, Apple
“Enable Remote Debugging With Safari Web Inspector in iOS 6” Dave Ackerman, Modus Create
“Remote Debugging on Android With Chrome,” Chrome Developer Tools
“Weinre as Remote Debugger,” Mozilla Developer Network
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. Использует запись по объектам.