Как известно, операционная система Mac OS за последние несколько лет, стала набирать очень большую популярность на рынке компьютерного программного обеспечения.
Это в первую очередь продиктовано успешными и эффективными действиями разработчиков из Apple.
Выпуская на постоянной основе большое разнообразие компьютеров под управлением операционной системы 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.
В ручном режиме добавляем новую функцию Debugger Command с функцией и галочкой отмечаем «Automatically continue after evaluating actions».
Теперь нам под силу выполнить абсолютно всю трассировку под вызов ранее указанного метода objc_msgSend.
Использование cycript
Данная утилита позволит вам быстро проанализировать слабые места вашего приложения и по возможности указать, какие нужно выполнить действия, чтобы избавиться от них на операционной системе Mac OS и на других устройствах и системах.
Операции по мониторингу сетевого трафика
Выполнение проверки трафика по используемым протоколам HTTP/HTTPS проводиться без каких-либо осложнений. Для этих целей подойдут приложения Charles или Burpsuite.
Чтобы выполнить анализ текущего HTTPS трафика, в используемом симуляторе стоит поставить SSL-сертификат (выполняется простым перетаскиванием файлов в окно симулятора с последующим нажатием кнопки Install).
Тестирование приложений под Mac OS на платформе iTunesConnect
Как известно, проверка созданной вами утилиты на рассмотрение в систему Apple Review Team занимает около 1 недели, но если вам «повезло» и вы скинули утилиту перед выходными или праздниками, то заветного одобрения вам придется ждать около 2-3 недель.
Далее мы с вами узнаем, как ускорить и протестировать проверку приложений Mac OS, функционирующих на сегодняшний день, в приложении AppStore. К слову, оба способа на 100% действенны и бесплатные!
№1 – Expedition App Review
Сразу скажем, что это абсолютно легальный вариант запуска быстрого типа проверки (тестирования) утилиты производства Apple.
Все что нам потребуется – это заполнить контактную форму и описать причину, почему вам желательно провести ускоренную проверку.
Как правило, QA используют следующую формулировку – Critical fix bug, а в описании пишут, что нашли весьма серьезный баг, который может существенным образом повлиять на дальнейшую работу приложения.
Если ваша компания тестирует новую утилиту, а не обновление старой, то желательно дополнительно отметить, что у вас стартовала маркетинговая кампания утилиты и у вас осталось очень мало времени к финальному релизу.
Как правило, спустя всего 2 часа вам на почту придет расписанное решение по рассмотренному приложению.
Традиционно в течение суток, тестируемое приложение проходит стадию In Review, и если больше проблем не было обнаружено, автоматически зарабатывает статус Ready for sale.
Также хотелось бы отметить, что при такой быстрой проверке приложения служба Apple дополнительно использует и внутренние компоненты для последующей реализации (inApp Purchases).
Важно! Существенный минус этого варианта проверки в том, что им нельзя пользоваться очень часто. Компания Apple настоятельно рекомендует использовать его только в тех ситуациях, когда вам как разработчикам нужна грамотно подтвержденная ускоренная проверка утилиты.
№2 – «Фокус»
Суть этой проверки заключается в том, что QA нужно получить много приложений со статусом «В ожидании проверки» в персональном аккаунте (согласно проведенным исследованиям – от 7 до 10 приложений одновременно).
Но как же сделать тест, если у вас всего 1 приложение, но самое важное и фундаментальное? Запросто.
Ваши действия:
• Разрабатываете и загружаете утилиту в платформу;
• Разрабатываете ненастоящие утилиты со случайными ID, добавляете заглушки иконки и скриншоты, создаете для них специализированные сертификаты распространения и монтируете их, как для классического приложения;
• Меняете статус утилиты на «В ожидании к выгрузке»;
• Создаете пустое приложение, редактируете его bundle id под разработанное вами ложное приложение и загружаете.
Как итог, у нас появляется сразу несколько утилит со статусом 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 + обладает встроенным рекордером. Нужно вставлять собственные библиотеки в утилиту.
Оставить комментарий