Учебное пособие по тестированию приложений для iOS: руководство & Автоматизация

Содержание:

Anonim

Что такое тестирование приложений для iOS?

Тестирование приложений iOS - это процесс тестирования, в ходе которого приложение iOS тестируется на реальных устройствах Apple, чтобы проверить, работает ли оно должным образом или нет для определенных действий пользователя, таких как время установки, пользовательский интерфейс, взаимодействие с пользователем, внешний вид, поведение, функциональность, время загрузки и т. д. производительность, список в App Store, поддержка версий ОС и т. д.

Почему именно тестирование приложений для iOS?

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

Это частый вопрос, когда разработчик создает приложение для iOS.

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

  1. Сбой приложения

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

  1. Несовместимость приложений

Ваше приложение iOS может отлично работать с текущей версией iOS, но если iOS будет обновлена, оно может не работать из-за проблем несовместимости.

  1. Уязвимость безопасности

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

  1. Утечки памяти

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

В этом руководстве вы узнаете:

  • Почему тестирование iOS?
  • iOS тестирование MindMap
  • Контрольный список тестирования iOS
  • Стратегия тестирования iOS
  • Автоматизированное тестирование
    • Модульное тестирование с OCUnit
    • Тестирование пользовательского интерфейса с помощью UIAutomation
  • Ручное тестирование
    • Исследовательское тестирование
    • Пользовательское тестирование
      • Концептуальное тестирование
      • Юзабилити-тестирование
      • Бета-тестирование
      • A / B тестирование
  • Лучшая практика тестирования iOS
  • МИФЫ о тестировании iOS

iOS тестирование MindMap

Как показано на рисунке выше, iOS Testing MindMap показывает все элементы, которые тестировщик должен учитывать при проведении тестирования на iOS.

Контрольный список для тестирования приложений iOS

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

  • Проверьте время установки приложения на устройство. Убедитесь, что приложение установлено в приемлемое время.
  • После установки приложения проверьте, есть ли у него значок и имя приложения. Кроме того, убедитесь, что и значок, и имя говорят сами за себя, отражая основную цель приложения.
  • Запустите приложение и проверьте, отображается ли заставка.
  • Проверьте время ожидания экрана-заставки и время, необходимое для загрузки главного экрана. Главный экран приложения должен загрузиться в течение приемлемого времени. Если для загрузки главного экрана требуется больше времени, у пользователя больше шансов выйти или даже удалить само приложение. Также проверьте, как содержимое загружается на главном экране.
  • Основная функция приложения должна быть очевидна сразу. Это должно говорить само за себя.
  • Убедитесь, что приложение поддерживает как альбомную, так и портретную ориентацию. Если да, проверьте приложение в обеих ориентациях. Пользовательский интерфейс приложения должен быть настроен соответствующим образом.
  • Без подключения к Интернету запустите приложение. Убедитесь, что приложение ведет себя так, как задумано / желательно. Есть вероятность, что приложение может вылететь при запуске или может просто отображать пустой экран.
  • Если приложение использует службы определения местоположения, проверьте, отображается ли предупреждение о разрешении местоположения. Это предупреждение следует запрашивать у пользователя только один раз.
  • Если приложение отправляет push-уведомления, проверьте, отображается ли предупреждение о разрешении push-уведомлений. Это предупреждение также следует запрашивать у пользователя только один раз.
  • Запустите приложение, выйдите из него и перезапустите. Проверьте, работает ли приложение так, как задумано / желательно
  • Закройте приложение, нажав кнопку «Домой» на устройстве, и снова откройте приложение. Проверьте, работает ли приложение так, как задумано / желательно.
  • После установки проверьте, указано ли приложение в приложении настроек iPhone.
  • После того, как приложение будет запущено, проверьте, можно ли найти приложение в «App Store». Будет ли поддерживаемая версия ОС для приложения. Итак, убедитесь, что приложение можно найти в «App Store» устройства с поддерживаемой версией ОС. Кроме того, приложение не должно быть указано в «App Store» устройства с неподдерживаемой версией ОС.
  • Проверьте, переходит ли приложение в спящий режим при работе в фоновом режиме, чтобы предотвратить разрядку батареи.
  • Если приложение работает медленно или когда содержимое загружается, проверьте, есть ли значок состояния выполнения («Загрузка…»), желательно с конкретным сообщением.
  • Найдите приложение по его названию в строке поиска устройства. Проверьте, есть ли приложение в списке
  • Проверьте, не изменился ли в приложении внешний вид кнопок, которые выполняют стандартные действия (например: обновить, упорядочить, удалить, ответить, вернуться и т. Д.)
  • Проверьте, не используются ли стандартные кнопки для других функций, тогда как они обычно используются для

Стратегия тестирования iOS

На приведенном ниже рисунке представлены некоторые распространенные типы стратегии тестирования iOS.

Автоматизированное тестирование

Автоматическое тестирование - это главное преимущество тестирования iOS. Это позволяет быстро обнаруживать ошибки и проблемы с производительностью. Преимущества автоматизированного тестирования показаны ниже:

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

Модульное тестирование с OCUnit

Когда был выпущен оригинальный iOS SDK, в нем отсутствовали возможности модульного тестирования. Поэтому Apple вернула решение для модульного тестирования OCUnit в iOS SDK версии 2.2.

OCUnit - это среда тестирования C-Objective в Mac OS. Самыми большими преимуществами платформы OCUnit являются тесная интеграция со средой разработки XCode, как показано ниже.

Некоторые из преимуществ OCUnit показаны на рисунке ниже.

Тестирование пользовательского интерфейса с помощью UIAutomation

UI Automation - это библиотека JavaScript, предоставленная Apple Inc, которую можно использовать для выполнения автоматизированного теста на реальных устройствах и в iOS Simulator. Этот фреймворк добавлен в iOS SDK4.0. Используя UI Automation, вы можете автоматизировать тестирование приложения не только на симуляторе, но и на реальном устройстве.

UIAutomation дает вам следующие преимущества:

  • Снижение затрат на ручное тестирование
  • Используйте меньше памяти для выполнения всех ваших тестов
  • Упростите процедуру тестирования пользовательского интерфейса (просто нажмите одну или три кнопки и запустите все свои тестовые наборы)

Инструмент UIAutomation работает из скриптов, написанных на JavaScript. Он имитирует пользовательские события в целевом приложении iOS.

UIAutomation Минусы против плюсов

Плюсы Минусы
1. Хорошая поддержка жестов и вращения Это не с открытым исходным кодом, меньше поддержки со стороны разработчика
2. Может запускать тесты UIAutomation на устройстве, а не только на симуляторе. Не может очень хорошо интегрироваться с другими инструментами
3. Разработанный на JavaScript, это популярный язык программирования.

На приведенном выше рисунке представлены некоторые общие классы в платформе UIAutomation.

  • Класс UIAElement - это суперкласс для всех элементов пользовательского интерфейса в контексте автоматизации.
  • Класс UIATarget представляет высокоуровневые элементы пользовательского интерфейса тестируемой системы.
  • Класс UIALogger предоставляет информацию о тестах и ​​ошибках при поиске.
  • Класс UIAActivityView обеспечивает доступ к представлениям действий в вашем приложении и управление ими.
  • Класс UIAActionSheet обеспечивает доступ и управление листами действий в вашем приложении.
  • Действие пользовательского события
    • UISlider класс
    • UIAButton класс
    • UIAKey класс
    • UIAKeyboard класс

Другие фреймворки автоматизированного тестирования

  • MonkeyTalk: инструмент для автоматического тестирования приложений iOS, Android, HTML5 и Adobe. Это интегрированная среда для управления и запуска наборов тестов.
  • Фрэнк: Система автоматизированных приемочных испытаний для iPhone и iPad
  • KIF: это платформа для тестирования интеграции iOS . Это позволяет легко автоматизировать приложения iOS, используя атрибуты доступности, которые ОС делает доступными для людей с нарушениями зрения.

Ручное тестирование

Исследовательское тестирование

Это тестирование без формального плана тестирования. Исследовательское тестирование - это недорогой метод тестирования, но он может упустить потенциальные ошибки в вашем приложении iOS.

Исследовательское тестирование: минусы и плюсы

Плюсы Минусы
1. Требуется меньшая подготовка, раннее обнаружение серьезных ошибок. Требуется высокая квалификация тестировщика
2. Не нужен план тестирования, чтобы ускорить обнаружение ошибок. Покрытие тестами низкое. Это не гарантирует, что все ваши требования будут проверены.
3. Большинство ошибок обнаруживаются на ранней стадии с помощью какого-либо исследовательского тестирования. Отсутствие тестовой документации

Пользовательское тестирование

Пользовательское тестирование - это разновидность ручного тестирования на iOS. Цель этого тестирования - создавать лучшие приложения, а не только приложения без ошибок . На рисунке ниже показаны четыре типа пользовательского тестирования.

Тестирование концепции

Оцените реакцию пользователя на идею приложения перед выпуском на рынок. Ниже описаны процедуры тестирования концепции на iOS.

Юзабилити-тестирование

Юзабилити-тестирование - это проверка того, насколько легко использовать ваше приложение iOS. При тестировании iOS можно было записать тест юзабилити, чтобы запомнить или поделиться с другими.

На iOS есть несколько инструментов, поддерживающих юзабилити-тестирование.

Magitest, простое юзабилити-тестирование iOS для сайтов и приложений.

Delight.io, этот инструмент может фиксировать реальное взаимодействие пользователя с вашими приложениями iOS.

Бета-тестирование

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

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

- Найдите тестировщика через сервис : вы собираете идентификаторы устройств у тестировщиков и добавляете их в Центр участников

- Создание специального распространения : специальное распространение позволяет тестировщику запускать ваше приложение на своем устройстве без необходимости использования Xcode. Этот шаг включает 2 дополнительных шага

  • Создать сертификаты распространения
  • Создание специальных профилей подготовки

- Получение обратной связи от тестировщика: тестировщик проводит тестирование и отправляет вам отчеты об ошибках. После того, как ваше приложение будет выпущено, вы можете получать отчеты через iTunes connect.

A / B тестирование

A / B-тестирование - один из самых эффективных способов оценить эффективность вашего приложения для iOS . Он использует рандомизированные эксперименты с двумя устройствами, A и B.

A / B-тестирование включает три основных этапа

  • Настроить тест : подготовлены 2 версии вашего приложения для iOS (A и B) и тестовая метрика
  • Тест : протестируйте 2 версии приложений iOS, указанные выше, на устройствах одновременно.
  • Анализируйте : оцените и выберите лучшую версию для выпуска

Следующие инструменты поддерживают A / B-тестирование на iOS.

  • Arise: A / B-тестирование для iOS и Android. Его можно интегрировать в ваше приложение для iOS и ускорить процесс тестирования.

Лучшие практики для A / B-тестирования

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

Лучшая практика тестирования iOS

Вот несколько советов, которые следует знать при организации тестирования вашего iOS-приложения.

  1. Протестируйте приложение на реальном устройстве, чтобы узнать о производительности
  2. Усовершенствуйте свои методы тестирования, потому что традиционных методов тестирования уже недостаточно для покрытия всех тестов при тестировании iOS.
  3. Использование журнала консоли для тестирования приложения iOS. Эта функция iOS включает информацию из каждого приложения на устройстве.
  4. Задокументируйте ошибки приложения с помощью встроенной в экран короткой команды. Это помогает разработчику понять, как возникают ошибки.
  5. Отчеты о сбоях - полезный инструмент при тестировании вашего приложения. Они могут обнаруживать сбои и вести подробный журнал, чтобы вы могли легко исследовать ошибки.

МИФЫ о тестировании iOS

В этом разделе исследуются несколько популярных мифов и реалий тестирования iOS.

Тестировать приложение на iOS и Android - это одно и то же.

iOS и Android - две платформы, разработанные Apple Inc и Google. Они совершенно разные. Тестовые среды и т. Д., Тестовые среды, языки программирования.

Достаточно тестового приложения на iOS Simulator.

Симулятора iOS недостаточно для тестирования приложения. Потому что iOS Simulator имеет некоторые ограничения:

  • Аппаратные ограничения (камера, микрофонный вход, датчик)
  • Пользовательский интерфейс вашего приложения может работать быстрее и плавнее, чем на устройстве.
  • Ограничения API
  • Некоторые платформы не поддерживаются (Media Player, Store Kit, Message UI…)

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

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