Мобильные приложения собственной разработки мы тестируем вдоль и поперек. Этот этап входит в стоимость разработки и обязателен для любого приложения, хоть простого, хоть сложного. Рассказываем, как делаем тестирование мобильных приложений и что наши клиенты получают в итоге.
Функциональное тестирование
Главное здесь — проверить взаимодействие приложения с пользователем, а также узнать, соответствует ли функционал продукта его типу, целям, задачам и целевой аудитории. Для функционального тестирования мы составляем техническое задание по требованиям бизнес-процессов. На основе ТЗ делаются сценарии использования приложения. Они имитируют поведение обычных пользователей. В процессе смотрим:
- Работают ли поля ввода,
- Как отображаются поля обязательные и необязательные,
- Переходит ли приложение в фоновый режим при входящем,
- Как работают кнопки, навигация и переходы в социальные сети,
- Позволяет ли приложение принимать и отправлять SMS в процессе работы,
- Проходят ли транзакции через Visa, Мир, а также Mastercard,
- Как функционирует прокрутка,
- Выдаются ли ошибки сети,
- Разворачиваются ли списки, меняют ли цвет активированные кнопки, а также ссылки,
- Не отбирает ли приложение память у других сервисов,
- Как работает с сетями 2G, 3G — 4G,
- Доступность руководства пользователя.
Дополнительный блок тестирования
Дополнительно система тестируется по позитивным и негативным сценариям. Так, с позитивными мы пробуем выполнить действия т их варианты, предусмотренные функционалом. Например, зарегистрироваться, войти/выйти, восстановить пароль, сменить настройки и пр. Тестирование этого блока считается пройденным, если все действия выполняются корректно и без ошибок.
С негативными пытаемся обмануть систему и найти баги. Допустим, регистрируемся на один и тот же mail, создаем одинаковые контакты, пытаемся войти с неправильным паролем, дублируем информацию в полях и т.д. Здесь все с точностью до наоборот: если негативное действие выполняется успешно, приходится искать и исправлять ошибку.
В рамках функционального тестирования досконально проверяем пользовательский интерфейс. Смотрим, как ведут себя языковые локализации и как смотрится верстка на разных языках. Названия полей или пунктов навигации на русском и английском языках часто получаются разной длины и если этого не учесть, верстка будет выглядеть неряшливо.
В нативных приложениях проверяем работу нативных жестов. Все подряд свайпим и мультитачим, пока не отвалятся пальцы или не обнаружится ошибка.У приложений, у которых минут простоя чревата финансовыми, а также репутационными потерями, дополнительно делаем тестирование восстановления. Смотрим, как продукт ведет себя после системного сбоя или жесткой перезагрузки. Обязательно проверяем, как проходят транзакции в режиме экономии энергии батареи. Контролируем, насколько корректно восстанавливаются введенные данные после сбоя и отключения.
В целом, на этой стадии мы оцениваем два параметра. Первый — соответствует ли приложение своей категории (банковское, игровое, детское), а также целевой аудитории (дети, бизнес, 60+). И второй — удовлетворяет ли оно поставленным задачам.
Нагрузочное тестирование мобильного приложения
Представляем, что приложение работает с большими данными, с переключением на разные сети, при мультизадачной работе устройства…При тестировании под нагрузкой важно проверить все аспекты, которые могут влиять на подтормаживание системы:
- Оптимальная клиент-серверная конфигурация для нормальной производительности,
- Предельное число пользователей, работающих с приложением,
- Моменты, которые снижают производительность продукта,
- Стойкость работы при многозадачности устройства,
- Устойчивость работы при непостоянной сети,
- Скорость загрузки приложения при увеличении базы данных,
- Время отклика на различные варианты запросов.
Тестирование безопасности
Здесь проходимся по узким местам. Как правило, представляем себя на месте хакера. Что бы хотелось вытянуть из приложения и как это сделать? Обычно в базовый список тестирования безопасности приложения входит:
- Проверка безопасности логинов, паролей, а также данных банковских карт,
- Контроль доступа к личной информации путем подбора,
- Оценка таймаута сессии,
- Просмотр на предмет дыр и неполадок механизмов защиты от DoS — SQL-injection атак,
- Есть ли где-то неуправляемый код,
- Смотрим срок действия сертификатов безопасности,
- Убеждаемся, что управление сеансами защищено от неавторизованных пользователей.
Список большой и постоянно пополняется. Об этом неустанно заботятся профессиональные киберпреступники и хакеры-любители.
Тестирование совместимости
На разных устройствах одно и то же приложение может работать по-разному. А может не работать вообще. Был у нас один такой случай с приложением радио «Вера». Прямые эфиры, ради которых и затевался ремонт приложения, работали у всех. Кроме руководителя. Мы даже описали этот случай в своем Инстаграме.
Мы выяснили версию Андроида и все установленные на директорском телефоне приложения. Мы проэмулировали все в нескольких симуляторах. Все они ответили нам — прямой эфир тут. Работает, стримится, прекрасно себя чувствует. Мы на всякий случай еще кой-чего оптимизировали, докрутили и пришли к Директору еще раз. Он показал на своем телефоне полное отсутствие звука, стрима и хорошего настроения.
В итоге пришлось купить именно этот телефон, разобрать его и найти ту мерзкую штуку, которая только на этой модели только этих китайцев создавала проблемы со стримом.
Так что теперь не ограничиваемся эмуляторами, и стараемся тестировать приложения на всем, что звонит.
Возвращаясь к совместимости, проверяем конфигурацию: ОС, браузера, базы данных, самого устройства и сети. При четко очерченной аудитории ограничиваемся приоритетными операционными системами, устройствами и модельным рядом. Когда аудитория размыта, приходится использовать сразу несколько инструментов для тестов. Так получается чуть дольше, чем обычно.
Юзабилити-тестирование мобильного приложения
Разрабатывая приложение, мы делаем его интуитивно простым и соответствующим UX-стандартам интерфейсом. Теперь смотрим, все ли учли:
- Подходят ли кнопки для крупных пальцев настоящей мужской руки,
- Нет ли лишних полей,
- Хорошо ли виден текст,
- Не избыточны ли меню,
- Удобно ли ставить галочки и чек-боксы,
- Соответствует ли скорость отклика ожиданиям пользователей и пр. и др.
Для юзабилити-тестирования есть несколько неплохих сервисов. Однако ни один сервис не заменит живую целевую аудиторию — реальную бабушку со смартфоном или занятого менеджера, судорожно тыкающего в кнопки. Тестируем на людях.
В виде чек-листа тестирование мобильного приложения занимает несколько страниц. При переводе в человеко-часы — несколько дней. Но их не жалко, честное слово. Потому как от глубины тестирования зависит качество приложения и реакция пользователей. Хотите пять звезд в Google Play? Не игнорируйте этап тестирование приложения и повторяйте его после каждого релиза. Это работает, мы пробовали.