Апрель, 2015

Чек-лист для тестирования IOS-приложений. Часть 1

Опубликовано: 27.04.2015 | 15629

Каждый уважающий себя клиент, заказывающий тестирование мобильных приложений на платформе iOS хочет получить в результате стабильное, надежное, «вылизанное» ПО. Однако, зачастую, не до конца понимает суть достижения цели, строит ложные иллюзии на тему того, что если тестировать приложение, то проводится проверка сугубо в рамках этого приложения. Не будем спорить: время является ценным ресурсом в современной жизни, да и копейка рубль бережет, и никому не охота выкидывать эти самые копейки на какие-то непонятные показатели и проверки.

Позвольте описать вам Топ-7 проверок, без которых нельзя отдавать iPhone приложение клиенту или, что еще более важно, пользователю.

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

#1. Безопасность.

Каждый пользователь приложения хочет, чтобы его данные или личная информация находилась в безопасности и не досталась злоумышленникам. Для этого при тестировании мобильных приложений под iOS мы проводим полный тест на проникновение (пентестинг). Одним из тестов является проверка возможности перехватить снифферами входящие/исходящие данные. Такая проверка проводится в том числе для банковского ПО и корпоративных приложений, работающих по протоколу https. Передача данных по Wi-Fi в мобильных приложениях создает для них же определенную степень уязвимости к атакам типа MITM (другими словами, «человек посередине»). Тестируя iPhone приложения с FireSheep, мы проверяем возможность похищения сессий пользователя, и проверки наличия конфиденциальной информации в сессиях.

#2. Проверка функции In-App Purchase (Покупка в приложении).

  • Проверить работу функции при установленных ограничениях в настройках:

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

  • Проверить работу функции при различных параметрах и настройках Apple ID:

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

  • Проверить цель использования IAP. Простые правила:

1. Приложения, которые используют IAP с целью покупки «кредитов» или другой валюты, обязаны обеспечить использование этих «кредитов» внутри себя же.

2. В случае ограничения срока годности на «кредиты» и другие валюты приложение не использует IAP для их покупки.

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

Следует заметить:

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

#3. Разные типы подключений.

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

1. Сотовая связь для передачи данных: 2G, 2.5G, 3G, 4G;

2. Wi-Fi;

3. Mi-Fi – точка для передачи интернета, который был получен по сотовой связи.

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

  • Способы тестирования iOS приложений при различных скоростях передачи данных:

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 аутентификацию при отправке запроса на любой публичный адрес.

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