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

Тестирования IOS приложений

Безопасность

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

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

  • Проверка возможности перехватить снифферами входящие или исходящие данные. Эта проверка может проводится для банковского ПО или корпоративных приложений, работающих по протоколу https, и имеющих высокие требования к политики безопасности.
  • Проверка безопасности передачи данных  между приложениями по Wi-Fi. В процессе возникает опасность уязвимости к атакам типа MITM (перехват данных).

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

In-App Purchase (Покупки в приложении)

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

Правила использования IAP:

  1. Приложения, которые используют IAP с целью покупки внутренней валюты, обязаны обеспечить использование расчетов в этой валюте только внутри себя.
  2. Если существует срок годности на внутреннюю валюту приложения, то IAP не используется для их покупки.
  3. Подписка на контент посредством IAP должна быть предоставлена пользователю на любых iOS-устройствах, принадлежащих ему, с учетом длительности, которая составляет не менее 30 дней.

В время тестирования функции In-App Purchase, следует обращать внимание на то, что объект покупки и цены, соответствуют тому, что видит пользователь. Не упускайте вариант восстановления покупок, совершенных пользователем, после обновления приложения.

Типы подключений

Основные виды интернет соединения:

  1. Сотовая связь для передачи данных: 2G, 2.5G, 3G, 4G;
  2. Wi-Fi;
  3. Mi-Fi – точка для передачи интернета, который был получен по сотовой связи.

Большинство смартфонов используют современные технологии для передачи мобильного трафика. С помощью настроек устройства можно получить доступ к типу устанавливаемого соединения (2G/3G/4G). Стоит отметить, что наложение ограничений связи касается не только мобильного трафика, но и Wi-Fi.

Тестирование на различных скоростях передачи данных

  1. Использование симуляторов/эмуляторов;
  2. Сторонняя прошивка роутера;
  3. Стороннее ПО (прокси).

Переключение типов соединения и отсутствие связи:

Что можно проверить в iOS приложениях? Например:

  • Выдвинуть «шторку» в нижней части и включить режим полета либо выключить Wi-Fi.
  • Выключить или перезагрузить точку доступа, тем самым отключив мобильный трафик.
  • Можно использовать роутер или «шторку», чтобы переключаться между видами связи. Обычно, настройки операционной системы позволяют при наличии сильного источника сигнала переключаться автоматически. Например:
  1. Переключение приложения на мобильный трафик (2G/2.5G/3G/4G) при выключении Wi-Fi;
  2. Автоматическое переключение на Wi-Fi при его включении и нахождении нужной сети.

Публичные сети с авторизацией

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

  1. Web-аутентификация сразу после установки Wi-Fi соединения. Данный тип подключения не дает право на доступ к сервисам, отличающихся от начального;
  2. Подключение к локальной сети роутера через привязку к MAC-адресу устройства. Данный тип соединения дает возможность подключения к Wi-Fi, однако ограничивает доступ к пользованию интернетом;
  3. Переход на Web аутентификацию при отправке запроса на любой публичный адрес.

Ресурсы устройства

Обязательна нужно проверять обработку в следующих ситуациях:

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

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

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

Разрядка батареи

Ресурсы телефона

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

Работа с прерываниями

Внешние прерывания

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

Тестирование размера экрана

Тестирование размера экрана

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

Сворачивание/разворачивание активного приложения

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

Резюме

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