Пока нет оценок.
Пожалуйста, подождите...

Как известно, операционная система Mac OS за последние несколько лет, стала набирать очень большую популярность на рынке компьютерного софта.

Это в первую очередь продиктовано успешными и эффективными действиями разработчиков из Apple.

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

Данная динамика автоматически приводит к тому, что неуклонно растет количество официальных вендоров программного обеспечения, создающих сначала кроссплатформерные приложения для клиентов, чтобы максимально быстро покрыть потребительский рынок. Дополнительно, есть целый ряд утилит и приложений, созданных исключительно под операционку Mac OS: как правило, это особенные инструменты для создания определенного софта и профессионального взаимодействия с мультимедийным контентом.

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

Схема тестирования Mac OS приложений

Схема тестирования Mac OS приложений

Далее мы как раз и поговорим о специфике проверки утилит в Mac OS, что традиционно случается, когда у вас, к примеру, нет в распоряжении джейлбрейкового устройства, а срочно нужно разобраться с функционированием эксплоита. Дополнительно мы попробуем вычесть базовые возможности и ограничения, которые возникают в процессе тестирования веб продуктов в Mac OS и выделим наиболее «ходовые» инструменты для тестов.

К слову, все описываемые тесты мы будем проводить с установленным Xcode, а запускать утилиты в iOS-симуляторе.

Работа с iTunes-утилитами

К большому разочарованию, в Xcode нет возможности поставить IPA файлы из iTunes, ведь все приложения этой платформы компилируются под специализированную архитектуру ARM, а в симуляторе работают только те утилиты, которые были скомпилированы исключительно под системную архитектуру x86/x64. То есть можно говорить о том, чтобы проверить корректность тестирования приложения на Mac OS, нужно провести ряд исходных тестов.

К слову, для данной работы стоит вооружиться полезным софтом. В нашем случае это – Dam Vulnerable iOS app.

Проведение анализа локальной базы данных

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

Локальная база данных

Локальная база данных

Работа с системными логами

Логи, в которых могут храниться личные данные, разрабатываемые утилитами, можно свободно просмотреть в определенном разделе приложения Xcode.

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

Работа с отладчиком

Во время проведения тестирования утилит, вы всегда можете настроить отладчик к программе, которая работает у вас в симуляторе.

По нашему опыту в оказании услуг тестирования ПО, эффективнее применять LLDB, ведь данная система снабжена большим числом программ для работы в Xcode.

Проверяемое iOS-приложение, которое функционирует в симуляторе, будет автоматически отображаться в списке задач, с которыми можно ознакомиться с помощью запуска команды ps aux.

В процессе подключения отладчика в качестве главных значений используется имя (логин) или ID выбранного процесса.

Отладчик

Отладчик

Что же касается процесса трассировки методов, то ее тоже можно выполнить с помощью возможностей отладчика LLDB, который автоматически встроенный в приложение Xcode. Для того чтобы внести точку финиша, просто кликните на появившийся знак «+».

Команда objc msgSend

Команда objc msgSend

Теперь наша задача настроить точку завершения для быстрого вызова команды objc msgSend.

В ручном режиме добавляем новую функцию Debugger Command с функцией и галочкой отмечаем «Automatically continue after evaluating actions».

Теперь нам под силу выполнить абсолютно всю трассировку под вызов ранее указанного метода objc_msgSend.

Использование cycript

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

Утилита cycript

Утилита cycript

Операции по мониторингу сетевого трафика

Выполнение проверки трафика по используемым протоколам HTTP/HTTPS проводиться без каких-либо осложнений. Для этих целей подойдут приложения Charles или Burpsuite.

Чтобы выполнить анализ текущего HTTPS трафика, в используемом симуляторе стоит поставить SSL-сертификат (выполняется простым перетаскиванием файлов в окно симулятора с последующим нажатием кнопки Install).

Тестирование приложений под Mac OS на платформе iTunesConnect

Как известно, проверка созданной Вами утилиты на рассмотрение в систему Apple Review Team занимает около 1 недели, но если вам «подфартит» и вы скинули утилиту перед выходными или праздниками, то заветного одобрения Вам придется ждать около 2-3 недель.

Далее мы с вами узнаем, как ускорить и протестировать проверку приложений Mac OS в приложении AppStore, функционирующих на сегодняшний день. К слову, оба способа 100% действенны и бесплатные!

№1 – Expedition App Review

Сразу скажем, что это 100% легальный вариант запуска быстрого типа проверки (тестирования) утилиты производства Apple.

Все что нам потребуется – это заполнить контактную форму и описать причину, почему Вам желательно провести ускоренную проверку.

Как правило, QA используют следующую формулировку – Critical fix bug, а в описании описывают, что нашли весьма серьезный баг, который может существенным образом повлиять на дальнейшую работу приложения.

Если ваша компания тестирует новую утилиту, а не апдейт старой, то желательно дополнительно отметить, что у вас стартовала маркетинговая кампания утилиты, и у вас «реально горят» сроки к финальному релизу.

Expedition App Review

Expedition App Review

Как правило, спустя всего 2 часа Вам на почту «упадет» расписанное решение по рассмотренному приложению.

Традиционно, в течение 1 суток, тестируемое приложение проходит стадию In Review, и если больше проблем не было обнаружено, автоматически зарабатывает статус Ready for sale.

Также хотелось бы отметить, что при такой «быстрой» проверке приложения служба Apple дополнительно «юзает» и внутренние компоненты для последующей реализации (inApp Purchases).

Важно! Существенный минус этого варианта проверки в том, что им нельзя пользоваться очень часто. Компания Apple настоятельно рекомендует использовать его только в тех ситуациях, когда вам как разработчикам нужна грамотно подтвержденная ускоренная проверка утилиты.

№2 – «Фокус»

Суть этой проверки заключается в том, что QA нужно получить много приложений со статусом «В ожидании проверки» в персональном аккаунте (согласно проведенным исследованиям – от 7 до 10 приложений одновременно).

Да как же сделать тест, если у вас всего 1 приложение, но самое важное и фундаментальное? Запросто.

Ваши действия:

• Разрабатываете и загружаете утилиту в платформу;
• Разрабатываете «липовые» утилиты и рандомными ID, добавляете заглушки иконки и скриншоты, создаете для них специализированные дистрибьютион сертификаты и монтируете их как для классического приложения;
• Меняете статус утилиты на «В ожидании к выгрузке»;
• Создаете пустое app, и редактируете его bundleid по разработанное вами «липовое» приложение и загружаете.

Как итог, у нас появляется сразу несколько утилит со статусом Waiting for review.

С данными уловками и проверками, у нас получилось максимально сократить время одобрения статуса приложения со стороны Apple с недели до 1-3 дней.

Сразу же после того, как все утилиты перешли в статус In Review, нам следует зайти в iTunesConnect и для всех ненастоящих приложений, выполнить команду Reject binary.

То есть одно из «липовых» перейдет из ревью в Developer rejected, и не будет проверяться. А тестируемая утилита пройдет всю необходимую модерацию буквально в этот же день.

Автоматизированное воспроизведение созданных тестов в Mac OS

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

Существует сразу 2 варианта проработки данной стратегии:

• Работа с тестом по логике обращения к экрану, без анализа данного экрана и доступных параметров и объектов интерфейса. Традиционно, данное воспроизведение проходит через систему жестов. Огромнейший плюс – нет надобности модифицировать утилиту. Минус – постоянная зависимость приложения от размеров экрана, дизайна программы и системной ориентации устройства;
• Проведение теста через набор интерфейсных объектов приложения. Перед проверкой указываются метки для форм, кнопочек, текстовых полей и остальной «верстки». Плюс – даже кардинальные перемены в дизайне не повлияют на воспроизведения тестового случая. Минус – нужно постоянно подключать дополнительные библиотеки.

Какие инструменты для тестов можно использовать?

UIAutomation – классическое решение от Apple, которое позволяет оперировать созданными тестами на основе JavaScript.

К слову, QA не нужно компилировать сторонние библиотеки. С выходом Xcode версии 4.3 есть возможность проводить записи тестовых случаев через команду рекордера.

Robot Framework – специализированный open-source фреймворк для выполнения автоматизированного приемного тестирования и создания базы приемочных тестов, обладающий большим техническим функционалом. Поддерживает массу дополнительных библиотек.

MoneyTalk – популярный инструмент для проведения тестов приложений на Mac OS. Обладает собственным мощным скриптовым языком, есть возможность создавать и сохранять собственные тестовые кейсы и тест сьюты. По словам разработчиков, отлично взаимодействует с Eclipse + обладает встроенным рекордером. Нужно вставлять собственные библиотеки в утилиту.

Оставить комментарий