iOS с нуля с Swift: Как протестировать приложение iOS на устройстве
Подготовка приложения для тестирования на физическом устройстве или для распространения в App Store может стать кошмаром для начинающих. Однако каждый разработчик iOS должен преодолеть это препятствие. В этой статье я познакомлю вас с тем, как подготовить приложение для тестирования на физическом устройстве.
Этот учебник охватывает два сценария:
- развертывание приложения с бесплатным Apple ID
- развертывание приложения в качестве участника программы Apple для разработчиков
Вступление
В 2015 году Apple обновила свое предложение для разработчиков. В частности, стоит отметить два изменения.
В прошлом у Apple были отдельные программы для разработки под OS X, iOS и Safari. Это больше не так. С выпуском watchOS и tvOS Apple объединила свои существующие программы для разработчиков в одну программу — Apple Developer Program .
Это означает, что вам больше не нужно регистрироваться в нескольких программах, если вы хотите разрабатывать для OS X и iOS. Если вы зарегистрируетесь в Apple Developer Program, вы сможете разрабатывать для OS X, iOS, watchOS, tvOS и Safari.
Еще одно существенное изменение связано с бесплатным предложением Apple для разработчиков. В прошлом можно было создать бесплатный аккаунт разработчика. Однако с такой учетной записью вы не смогли развернуть приложения iOS на физическом устройстве.
Это ограничение было снято. Любой человек с Apple ID может начать разработку для платформ Apple и может развертывать приложения на физических устройствах. Это очень хорошая новость для всех, кто заинтересован в разработке для одной из платформ Apple.
Если вы планируете опубликовать приложение в одном из магазинов приложений Apple, вам необходимо зарегистрироваться в программе Apple для разработчиков. Это то, что мы обсуждали в предыдущей статье этой серии.
1. Apple ID
Развертывание приложения на физическом устройстве с Apple ID является простым. Но имейте в виду, что типы приложений, которые вы можете развернуть с помощью бесплатного Apple ID, в некоторой степени ограничены. Я рекомендую вам взглянуть на обзор Apple, если вы хотите узнать больше о том, что возможно, а что нет.
Давайте посмотрим, какие шаги предпринимаются для запуска приложения iOS на iPhone или iPad с бесплатным Apple ID. Если у вас нет Apple ID, то я предлагаю вам создать его на веб-сайте Apple, прежде чем продолжить этот урок. Это займет всего несколько минут, чтобы создать его.
Шаг 1: Зарегистрируйтесь как разработчик
Посетите веб-сайт разработчика Apple и нажмите « Центр участников» вверху. После входа с помощью Apple ID вас попросят принять Соглашение разработчика Apple . Прочитайте соглашение, установите флажок, если вы согласны, и нажмите Отправить . Теперь вы зарегистрированный разработчик Apple.
Шаг 2: Создать проект
Запустите Xcode и создайте проект, как мы делали в предыдущем уроке. Я выбрал шаблон приложения Single View и настроил проект, как показано ниже. Скажите Xcode, где вы хотите сохранить файлы проекта, и нажмите « Создать» .
Шаг 3: Добавить учетную запись
После создания проекта Xcode покажет вам вкладку General единственной цели проекта. В разделе Идентичности XCode предупреждает нас, что мы не можем запустить приложение на устройстве. Предупреждение в нижней части раздела « Идентичность » говорит нам, что XCode не может найти идентификатор для подписи кода, и для Team установлено значение « Нет» . Вы можете легко исправить это, выполнив вход с помощью своего Apple ID.
Выберите Xcode в строке меню и выберите Настройки …, чтобы открыть Xcode окно настроек.
Если вы откроете вкладку « Учетные записи », вы увидите, что еще нет учетных записей.
Нажмите кнопку «плюс» в левом нижнем углу и выберите « Добавить Apple ID …» из списка параметров.
Введите свой Apple ID и пароль в диалоговом окне и нажмите « Добавить» . Если это не работает для вас, убедитесь, что вы сначала зарегистрировались в качестве разработчика Apple, как я показал вам ранее. Если добавление вашего Apple ID прошло успешно, то теперь оно должно появиться в списке учетных записей слева.
Шаг 4: Команда обновления
Закройте окно настроек и вернитесь на вкладку Общие цели проекта. В разделе Identity установите Team для учетной записи, которую вы добавили минуту назад. Даже если вы указали команду, Xcode все равно показывает предупреждение.
Подожди секунду? Почему бы нам не попробовать нажать кнопку « Исправить проблему» . Есть причина, почему это там. Правильно? Если вы нажмете кнопку « Исправить проблему» , Xcode позаботится о мельчайших подробностях, чтобы убедиться, что вы можете запустить свое приложение на физическом устройстве.
Шаг 5: Доверьтесь разработчику
Если вы попытаетесь запустить приложение на своем устройстве, то вы все равно столкнетесь с проблемой. Вы также видите следующий диалог?
Xcode показывает нам довольно загадочное сообщение об ошибке, и мне понадобилось несколько минут, чтобы понять, что происходит. Если вы посмотрите на свое устройство, то увидите, что приложение установлено. Если вы нажмете на значок, чтобы запустить его, вы узнаете, в чем проблема. Операционная система сообщает нам, что приложение от ненадежного разработчика.
К счастью, операционная система также дает нам подсказку. Откройте приложение « Настройки» и выберите « Основные»> «Профили» . Выберите профиль с вашим Apple ID и нажмите « Доверие» <Apple ID> . Выберите « Доверие» в появившемся диалоговом окне, чтобы завершить процесс. Теперь вы сможете запустить приложение на своем устройстве.
Помните, что вам нужно снова доверять разработчику, если вы удаляете все приложения от этого конкретного разработчика.
2. Apple Developer Program
Если вы решили зарегистрироваться в Программе разработчика Apple, то шаги, которые необходимо предпринять для подготовки приложения, отличаются. Положительным моментом является то, что ограничения, налагаемые на бесплатный аккаунт разработчика, отсутствуют для участников программы Apple Developer Program. Первое, что вам нужно сделать, это создать сертификат разработки.
Шаг 1: Создайте запрос на подпись сертификата
Сертификат — это электронный документ, который связывает вашу цифровую идентификацию с другой информацией, такой как ваше имя, адрес электронной почты и информация об организации. Сертификат разработки состоит из секретного закрытого ключа и общего открытого ключа. Если вы знакомы с SSL-сертификатами для защиты веб-сайтов, то вы, вероятно, уже знаете, что такое сертификат и как он работает.
Xcode использует закрытый ключ сертификата для криптографической подписи двоичного файла вашего приложения. Чтобы получить сертификат разработки, сначала необходимо создать запрос на подпись сертификата или CSR .
Вы можете создать CSR, используя утилиту Keychain Access для OS X, которую вы можете найти в папке « Программы»> «Утилиты ». Откройте меню Keychain Access , выберите Certificate Assistant и выберите Request a Certificate from the Certificate Authority ….
Заполните форму, указав свое имя и адрес электронной почты, с которыми вы зарегистрировались в Программе разработчиков Apple. Оставьте адрес электронной почты центра сертификации (адрес электронной почты CA) пустым и обязательно установите флажок Сохранено на диск, чтобы сохранить запрос на подпись сертификата на вашем компьютере. Оставьте Позвольте мне указать информацию о паре ключей без проверки.
Нажмите « Продолжить» , укажите местоположение для сохранения CSR и нажмите « Сохранить» . Перейдите к указанному местоположению, чтобы убедиться, что CSR был создан. В разделе « Связка ключей» в категории « Ключи » вы можете видеть, что закрытый и открытый ключи были добавлены в вашу цепочку ключей входа.
Шаг 2. Создайте сертификат разработки
Откройте браузер и перейдите на сайт разработчика Apple. Нажмите « Центр участников» вверху, войдите в свою учетную запись разработчика и выберите « Сертификаты, идентификаторы и профили» .
На следующей странице выберите Сертификаты в разделе iOS-приложений .
Нажмите кнопку «плюс» в правом верхнем углу, чтобы добавить новый сертификат. Из списка параметров выберите iOS App Development . Это тип сертификата, который нас интересует. Нажмите « Продолжить» внизу.
На следующей странице описаны шаги по созданию CSR. Поскольку у нас уже есть CSR, вы можете нажать Continue внизу.
Загрузите CSR и нажмите « Создать» внизу.
Вот и все. Нажмите кнопку Загрузить , чтобы загрузить сертификат разработки. После загрузки сертификата разработки дважды щелкните его, чтобы установить его в Keychain Access . Обязательно создайте резервную копию сертификата, потому что вы не хотите его потерять.
Если Keychain Access предложит вам добавить сертификат в связку ключей входа в систему , то вы можете смело нажимать кнопку Добавить .
В Keychain Access выберите Мои сертификаты слева и найдите сертификат, который вы добавили, чтобы убедиться, что вы правильно его установили.
Шаг 3: Добавить устройство
Вы не можете запустить приложение iOS на случайном устройстве. Вам необходимо указать, какие устройства могут запускать ваше приложение iOS, пометив одно или несколько устройств iOS для разработки на портале для разработчиков.
Перейдите в раздел « Сертификаты, идентификаторы и профили » портала разработчика, выберите вкладку « Устройства » в разделе « Приложения iOS » и нажмите кнопку «плюс» в правом верхнем углу. Чтобы зарегистрировать устройство, введите имя для устройства и его UDID. UDID — это идентификатор, который однозначно идентифицирует устройство iOS. Обратите внимание, что UDID не совпадает с серийным номером устройства.
Вы можете найти UDID устройства, подключив устройство к вашей машине, запустив Xcode и выбрав Devices в меню Window . Буквенно-цифровая строка из сорока символов рядом с идентификатором является UDID устройства.
Шаг 4. Создание идентификатора приложения
Идентификатор приложения — это идентификатор, который однозначно идентифицирует приложение на iOS. Это очень похоже на UDID устройства, который однозначно идентифицирует устройство. Идентификатор приложения используется операционной системой в целях безопасности и является важным компонентом push-уведомлений Apple и сервисов iCloud, среди прочего.
Идентификатор приложения состоит из идентификатора пакета вашего приложения с префиксом уникального начального идентификатора набора из десяти символов, сгенерированного Apple. Что такое идентификатор пакета? Вспомните первый проект, который вы создали в предыдущем уроке. Несмотря на то, что я подробно не описывал идентификатор пакета, вы неявно указали идентификатор пакета для своего проекта, дав своему приложению имя и указав идентификатор организации.
По умолчанию идентификатором пакета является имя вашего приложения с префиксом идентификатора организации вашего проекта. Вы можете изменить идентификатор пакета на любой, какой захотите. Рекомендуется использовать обратную запись доменного имени , например, com.tutsplus.my-first-application . Полным идентификатором приложения будет xxxxxxxxxx.com.tutsplus.my-first-application .
Чтобы создать новый идентификатор приложения на портале разработчика, перейдите в раздел « Сертификаты, идентификаторы и профили », нажмите « Приложения iOS» и выберите идентификаторы приложений в меню слева. Чтобы создать новый идентификатор приложения, нажмите кнопку «плюс» в правом верхнем углу.
Начните с присвоения своему идентификатору приложения описательного имени, чтобы вы могли найти его позже. Оставьте поле префикса идентификатора приложения нетронутым. В разделе Суффикс идентификатора приложения введите идентификатор пакета вашего приложения. Убедитесь, что вы ввели его в раздел « Явный идентификатор приложения» .
Вы также можете выбрать идентификатор приложения с подстановочными знаками и заменить имя приложения в идентификаторе пакета на звездочку, например com.tutsplus. * . Это полезно, если вы намереваетесь создать набор приложений, которым нужен общий доступ к цепочке для ключей или вообще не требуется доступ к цепочке для ключей. Звездочка или подстановочный знак должны быть последним компонентом идентификатора пакета.
Шаг 5. Создание профиля обеспечения
При наличии сертификата разработки и идентификатора приложения пришло время создать профиль обеспечения для вашего приложения. Прежде чем мы начнем, было бы полезно объяснить, что такое профиль обеспечения, потому что это то, что сбивает с толку многих новых разработчиков iOS.
В документации Apple профиль обеспечения определяется как «набор ресурсов, которые уникальным образом связывают разработчиков и устройства с авторизованной командой разработчиков iOS и позволяют использовать устройство для тестирования». Другими словами, профиль обеспечения содержит информацию, необходимую операционной системе для проверки, разрешено ли запуск приложения на определенном устройстве. Это означает, что профиль обеспечения должен быть установлен на каждом устройстве, на котором должно выполняться приложение.
Давайте создадим профиль обеспечения для вашего приложения. В разделе « Сертификаты, идентификаторы и профили » портала разработчика выберите вкладку « Профили подготовки » в разделе « Приложения iOS ». Нажмите кнопку «плюс» в правом верхнем углу, чтобы создать новый профиль обеспечения. Выберите « Разработка приложений для iOS» в разделе « Разработка » и нажмите « Продолжить» .
На следующем шаге выберите идентификатор приложения, который вы создали несколько минут назад, и нажмите « Продолжить» .
Выберите сертификат разработки из списка сертификатов, чтобы связать новый профиль обеспечения с правильным сертификатом. Нажмите Продолжить .
Теперь вам нужно выбрать устройства, которые вы хотите связать с профилем обеспечения. Помните, что только эти устройства смогут запускать ваше приложение во время разработки.
Дайте профилю обеспечения описательное имя, чтобы вы могли легко найти его позже. Нажмите « Создать» и загрузите профиль обеспечения на свой компьютер для разработки. Дважды щелкните профиль обеспечения, чтобы добавить его в XCode.
Если вы хотите добавить больше устройств в уже существующий профиль обеспечения, вы можете сделать это, отредактировав профиль обеспечения. Все, что вам нужно сделать, это загрузить новый профиль обеспечения и установить его на каждое устройство, с которым вы хотите провести тестирование. Другими словами, вам не нужно создавать новый профиль обеспечения, если все, что вы хотите сделать, это добавить или удалить устройства.
Шаг 6: Настройте проект
Прежде чем вы сможете собрать и запустить приложение на своем устройстве, вам необходимо обновить настройки сборки цели в вашем проекте XCode.
Откройте проект Xcode, который вы создали в предыдущем уроке, и выберите проект в Навигаторе проектов слева. Выберите « Мое первое приложение» в разделе « Цели » и откройте « Настройки сборки» вверху.
Не удивляйтесь многочисленным настройкам сборки. Прокрутите список и найдите раздел « Подписание кода ». В этом разделе найдите подраздел « Идентификация подписи кода» и задайте конфигурацию отладки, соответствующую iOS Developer . Обычно он находится под заголовком « Автоматически» .
Шаг 7: Сборка и запуск
Если вы выполнили вышеуказанные шаги, то теперь вы сможете создавать и запускать приложение на своем устройстве. Перед запуском приложения убедитесь, что вы правильно установили активную схему и пункт назначения, как показано ниже.
3. Добавить учетную запись разработчика
Что касается предоставления приложений, XCode может сделать некоторые тяжелые работы для вас. Чтобы это работало, вам нужно добавить свою учетную запись разработчика в Xcode. Вы можете добавить свою учетную запись разработчика, выбрав Preferences … в меню Xcode и открыв вкладку Accounts .
Нажмите кнопку «плюс» в левом нижнем углу и выберите « Добавить Apple ID …» из списка параметров. Введите свои учетные данные и нажмите Добавить .
Добавив вашу учетную запись разработчика в XCode, она может общаться с порталом для разработчиков от вашего имени. Это делает некоторые задачи намного проще.
Вывод
Создание сертификатов, профилей обеспечения, идентификаторов приложений и тестовых устройств и управление ими может быть непростой задачей, и часто для большинства разработчиков. Я надеюсь, что эта статья дала вам прочную основу.
Не стесняйтесь прочитать эту статью несколько раз, чтобы по-настоящему понять, как различные части сочетаются друг с другом. Это значительно упростит проблемы отладки, связанные с инициализацией, и я могу гарантировать, что вы столкнетесь с такими проблемами в какой-то момент своей карьеры iOS.
Если у вас есть какие-либо вопросы или комментарии, вы можете оставить их в комментариях ниже или обратиться ко мне в Twitter .
iOS Unit Testing
If you are new to unit tests in Xcode, then this post will help you get started and by the end, you can able to write a unit test for a sample signup screen.
To test an app, one needs to write three different kinds of test code.
- Unit Test — Test the single function without any external dependency. e.g. to test the given email is valid or not.
- Integration Test — Test the single function with dependency. e.g., to test that the value from the server response is handled for nil case too.
- UI Test — Automate the user behavior and interaction with the app. e.g., On behalf of the user, trigger the “Signup” button action to validate the fields.
Enable Unit Tests in Xcode Project
- While creating a new Project, click the checkbox “Include Unit Tests”, “Include UI Tests”. Once created, you can able to see a folder in the project called “ProjectNameTests” and the XCode already creates a default test case class with a template generated to start working with. The XCode creates a new Target for your application. Also, we can create a new test class by opening a new file (⌘ + N), filter by the text “test” and you can able to find the “Unit Test Case Class” and “UI Test Case Class”.
- If the Project is created without enabling the UnitTest, then you add the UniTest by tapping “⌘ + N”, filter by the text “test” and you can able to find “Unit Testing Bundle” and “UI Testing Bundle”.
Default UnitTest class — Explained
- override func setUpWithError() throws — Called before the invocation of each test class method. Therefore you can create a new instance of a class for every test class method.
- override functearDownWithError() throws <> — Called after invocation of each test class method. Therefore you can release/remove the instance which is created in the previous method. It’s very important to use the teardown method and make it clean up the created objects.
- functestExample() throws <> — a sample test method. Later, one can rename and add some of your own code to start testing. Also, you can add more test methods and the method name should be unique. The test method is indicated by a diamond shape symbol instead of a line number.
- functestPerformanceExample()throws<> — this will give the total time of your test classes.
In the above cases, a new instance is created for every test method. But still, you can create an instance common to all unit test methods. This can be done by creating the class function “override class func setUp() <>”. The order of execution is shown in the below image.
Run Unit Test in Xcode
- Click the diamond button on the test method to run a single test method.
- Click the diamond button on the class to run all test methods in the test class.
- Click the diamonds in Test Navigator (⌘ + 6).
- ⌘ click and selects multiple tests, right-click, run multiple test methods or use the shortcut key Ctrl + alt + ⌘ + U.
XCode runs unit test based on the alphabetical order of the method name.
Unit Test
A unit test is a small self-contained method to test some functionality. For example, on the signup page, we will have a function to check whether the given password passes the password policy or not. Now, we need to write a unit test method that will test your password validation function with more sample passwords that will include valid and invalid passwords.
In the below example, the unit test was written to test the functions written in the SignupModel with a sample input. Here I have given the valid inputs so all the unit test functions are passed which is indicated by a green diamond shape checkbox.
Don't worry about syntax in the test class. It will be explained in the next section.
In the above example, I have intentionally given the non-identical password. So the unit test function fails where the diamond is marked with a red. Also one can note that the diamond before the class (Line #12) is green if all the UnitTest passes or else it will be red.
Similarly, Test_SignupViewController() written to test the IBOutlets connection, UITextField’s attributes (like placeholder, textContentType, keyboardType, isSecureTextEntry) and UIButton’s IBoutlet, attributes and IBAction for UI Test.
The unit test will run very fast because when testing the function any dependencies that this function might use will be replaced with fake/dummy/mock objects. Dependencies may be of connecting to a database or sending a URLRequest to server for fetch the required data.
Unit Test should be
- FAST — achieved by writing a simple code with dummy data.
- Independent — Each unit test should be isolated from other unit tests.
- Repeatable — Should produce the same result irrespective of the number of times it executed, inputs, and the test environment.
- Self Validation — The developer should not need to do a manual check. i.e., whether the unit test is passed or not
- Thorough / Timely — Should cover edge cases (like by giving valid/ invalid, legal/Illegal, and large values of inputs).
Test Assertions
The assertion will check for expected values or outcomes in the test methods. Some of the used assertions in the sample project are explained here.
Boolean Assertions
It will test a condition and generates a Boolean result.
- XCTAssert(_:_: file: line:) — Checks for the condition is true.
- XCTAssertTrue(_:_: file: line:) — Checks for the condition is true.
- XCTAssertFalse(_:_: file: line:)— Checks for the condition is false.
The following asserts take 2 mandatory parameters like expression(condition /expression which gives Bool value), message(message to convey). The other two params are default which will print the fileName and lineNumber in the debug area.
Nil and Non-Nil Assertions
It will checks the output of a test condition is either Nil or Non-Nil
- XCTAssertNil(_:_:file: line:)— Asserts that a given expression is Nil.
- XCTAssertNotNil(_:_: file: line:) — Asserts that a given expression is NotNil
- XCTUnwrap(_:_:file: line:) — Asserts that a given expression is NotNil and it returns the unwrapped value.
Equality and Inequality Assertions
Check whether two values are equal or unequal.
- XCTAssertEqual(_:_:_: file: line:) — Asserts that two values are equal.
- XCTAssertNotEqual(_:_:_: file: line:)— Asserts that two values are not equal.
Comparable Value Assertions
Compare two values to determine which one is larger or smaller than the other one.
Тестирование мобильных приложений — полное руководство по тестированию мобильных приложений для Android и iOS
Партнеры Apple должны не только вовремя оплачивать subscriptions и следовать правилам компании, но контролировать качество предлагаемого софта, поэтому каждый Developer перед публикацией проводит тестирование приложений. То же самое касается разработчиков программ для публикации в Гугл плей. Процесс проверки не всегда быстрый и достаточно трудоемкий, но если выполнять его в правильной последовательности и с грамотным подбором инструментов, то в дальнейшем можно без проблем опубликовать программу в официальном магазине.
Apple или Android Developer вправе сам решать, как действовать, но новичкам бывает сложно сориентироваться в этапах и видах тестирования. Наш обзор позволит заполнить информационные пробелы и оптимизировать процедуру подготовки софта к размещению. Дополнительно рекомендуем изучить официальные инструкции от Apple и Google.
Тестирование софта для Андроид и iOS: что должен знать Developer
Суть тестирования заключается в поиске разного рода ошибок, которые могут ухудшать производительность, влиять на удобство использования или внешнее восприятие приложения. При изначальной работе над ПО создатели могут игнорировать или забывать о незначительных недоработках, но для успешной публикации их нужно вовремя выявить и устранить. Если Developer будет легкомысленно относиться к проверке на ошибки своего приложения для iOS , то Apple не даст его разместить в магазине, соответственно, не будет возможности зарабатывать.
Основные цели проведения тестирования:
- унификация программного обеспечения под разные модификации смартфонов;
- исключение проблем со скриптами;
- обеспечение оптимальной совместимости с интернет-провайдерами;
- гарантия быстрого и корректного запуска утилит на девайсах с разными операционными системами.
Чтобы отправлять сборку на рассмотрение перед публикацией в A pple Store , сначала Developer должен убедиться в том, что программа соответствует установленным требованиям и не имеет ошибок в коде. То же самое касается создателей софта для Android-устройств, причем для тестирования можно применять различные методы.
Как Developer Apple может тестировать свой софт?
Практика показывает, что чем тщательней вы будете проверять приложение, тем меньше риск получения отказа при подаче запроса на публикацию. В зависимости от формата проведения различают автоматическое и ручное тестирование. В первом случае Android или App Developer запускает ряд повторяющихся задач и отслеживает результаты, а во втором – самостоятельно создает разные условия для утилиты, чтобы выявить и устранить баги.
Тестировщикам приложений необходимо в процессе проверки оценить:
- функциональные возможности;
- уровень производительности;
- степень безопасности;
- навигацию, дизайн и другие элементы юзабилити;
- поведение при прерывании другим приложением;
- изменения при смене местоположения устройства;
- работоспособность при использовании старой версии операционной системы Андроид или iOS.
Полезные инструменты для владельцев Developer Account Apple
Нет четкого списка технологий и способов, которые нужно использовать в процессе тестирования, но есть инструменты, получившие больше всего положительных отзывов у программистов. Среди них:
- TestComplete;
- Appium;
- Xamarin;
- Robotium.
Инструкция для Андроид и Apple Developer по тестированию ПО
Длительность проверки и количество проведенных тестов могут существенно варьироваться в зависимости от особенностей приложения, предпочтений разработчика и других факторов. Но есть определенный порядок действий, при котором достигается оптимальный результат и не возникает дополнительных сложностей. Также нужно помнить, что для работы с официальными платформами требуются Apple Account Developer и Google Account.
Разработчику, который намерен презентовать свой софт в магазинах утилит для Android и iOS, необходимо:
Основные этапы тестирования мобильных приложений
Ваш пошаговый алгоритм тестирования мобильных приложений
Обеспечение качества (QA, от английского — Quality Assurance) является неотъемлемой частью жизненного цикла разработки любых приложений, включая мобильные. К сожалению, многие упускают из виду критические особенности тестирования мобильных приложений, которые часто приводят к сбоям, ошибкам в работе приложения и плохому качеству обслуживания клиентов.
Чтобы обеспечить успешную разработку любого приложения, специалист-тестировщик должен принимать участие во всех этапах разработки — от создания концепции и анализа требований, до создания спецификаций тестирования и выпуска готового продукта. Обеспечение качества также является ключевым элементом в последующих, после прохождения этапов разработки, обзорах программного продукта.
Однако часто бывает сложно определить, с чего начать организацию процесса тестирования мобильного приложения. Для беспроблемного тестирования мы рекомендуем просто выполнить девять указанных ниже шагов.
Давайте рассмотрим особенности тестирования мобильных приложений.
Цикл жизни спринтов
Этап 1: Планирование
Когда этап разработки приложения почти завершен, вы должны снова поставить перед собой вопрос — чего вы пытаетесь достичь разработкой данного приложения и какие у вас есть ограничения.
Вы должны определить следующее:
- Взаимодействует ли ваше приложение с другими приложениями?
- Насколько функциональны все возможности приложения?
- Является ли тестируемое мобильное приложение нативным, Mobile-web или гибридным?
- Ограничена ли задача тестирования приложения тестированием только внешнего интерфейса?
- Стоят ли задачи на тестирование бэкенда?
- Какова должна быть совместимость с различными беспроводными сетями?
- Как сильно данные приложения и свободное пространство, занимаемое им, зависят от особенностей использования приложения?
- Насколько быстро загружается ваше приложение, насколько быстро происходит серфинг по меню приложения и его функциям?
- Как будет обрабатываться возможное увеличение нагрузки на приложение?
- Влияют ли различные изменения в статусе и состоянии телефона на работу мобильного приложения?
Убедитесь, что вы договорились с командой тестировщиков о роли каждого из них и о ваших ожиданиях от процесса тестирования. В конце концов, общение является ключом к поддержанию правильной рабочей среды в команде.
Правильное понимание ролей и задач также относится и к моменту прописывания списка тест кейсов. Вся команда QA должна поддерживать и обновлять этот документ с отчетами по тестированию всех функций, реализованных на протяжении всего процесса разработки.
Этап 2. Определение необходимых типов тестирования мобильных приложений
Перед тестированием любых мобильных приложений определите, что именно в данном мобильном приложении вы хотите протестировать: набор функциональности, удобство использования, совместимость, производительность, безопасность и т. д. На этом же этапе имеет смысл выбрать методы тестирования мобильного приложения.
Тема связана со специальностями:
Определите, на какие целевые устройства направлено данное приложение, и какие требования к функционалу следует проверить.
Вы также должны определить, какие целевые устройства нужно включить в список тестирования.
Вы можете сделать это следующим образом:
• Выяснить, какие устройства будет поддерживать приложение;
• Определить, какая версия операционной системы будет самой ранней из тех, что поддерживаются приложением;
• Выявить наиболее популярные модели мобильных устройств у целевой аудитории;
• Определить набор не основных (дополнительных) устройств с экранами разных размеров, потенциально поддерживаемых приложением;
• Решить, будете ли вы использовать для тестирования физические устройства или их эмуляторы.
Этап 3: Тестовые случаи и разработка сценариев тестирования приложения
Подготовьте документ, описывающий тестовые случаи (test cases) для каждой тестируемой функции и функциональности.
В дополнение к функциональным тестовым случаям, также должны быть охвачены некоторые отдельные моменты (кейсы):
• Особенность использование батареи;
• Скорость работы приложения;
• Требования к данным;
• Объем используемой памяти.
Также перед началом тестирования важно определиться, какое сочетание ручного и автоматического тестирования вы будете применять.
При необходимости подготовьте отдельные наборы ручных тестовых случаев и сценариев для автоматического тестирования и адаптируйте их согласно требованиям проекта.
Этап 4: Ручное и автоматическое тестирование
Теперь пришло время для выполнения ручных и автоматизированных тестов.
Ранее, на предыдущих этапах, вы уже определили, какие тесты и скрипты использовать и подготовили их. Теперь, на текущем этапе, вы выполняете запуск тестов для проверки механизмов основной функциональности, чтобы убедиться в отсутствии поломок.
Автоматизированное тестирование мобильных приложений хорошо экономит время и другие ресурсы тестировщиков.
Этап 5: Тестирование юзабилити и бета-тестирование
После того, как базовый функционал протестирован, настало время убедиться, что мобильное приложение является достаточно простым в использовании и обеспечивает удовлетворительный пользовательский опыт. На этом этапе необходимо поддерживать соответствие матрице кроссплатформенности, чтобы обеспечить охват пользователей различных платформ, достигнутый бета-тестерами.
Пример матрицы поддержки разных версий платформы iOs
После того, как приложение будет протестировано внутри компании, вы сможете выпустить бета-версию приложения на рынок.
Тестирование совместимости
Мобильные устройства различаются в зависимости от платформы, модели и версии их операционной системы. Важно выбрать такое подмножество устройств, которое будет соответствовать вашему приложению.
Тестирование пользовательского интерфейса
Пользовательский опыт является ключевым элементом, при тестировании приложения. Ведь наше приложение разрабатывается именно для конечных пользователей. Вам следует качественно проверить удобство использования приложения, навигацию по его элементам и контент. Тестируйте меню, опции, кнопки, закладки, историю, настройки и навигацию приложения.
Тестирование интерфейса
Тестирование пунктов меню, кнопок, закладок, истории, настроек и навигации по приложению.
Тестирование внешних факторов
Приложения для мобильных устройств не будут единственными приложениями на устройстве пользователя. Вместе с вашим приложением будут установлены приложения от сторонних разработчиков. Возможно десятки таких приложений. Следовательно, вашему приложению придётся взаимодействовать с этими сторонними приложениями и прерывать работу различных функций устройства, таких как различные типы сетевых подключений, обращение к SD-карте, телефонные звонки и другие функции устройства.
Тестирование доступности
Мобильными устройствами могут пользоваться различные люди с ограниченными возможностями. По этой причине важно протестировать возможность работы с приложением людей с дальтонизмом, нарушениями слуха, проблемами пожилого возраста и другими возможными проблемами. Такое тестирование является важной частью общего тестирования юзабилити.
Видео курсы по схожей тематике:
Автоматизация тестирования мобильных приложений
Web Testing automation on Java
Этап 6: Тестирование производительности
Мобильные устройства предоставляют для приложений меньший объем памяти и меньшую доступную мощность процессора, чем стационарные компьютеры и ноутбуки. По этой причине в работе мобильных приложений очень важна эффективность использования предоставляемых ресурсов. Вам следует проверить работоспособность тестируемого приложения, изменив соединение с 2G, 3G на WIFI, проверить скорость отклика, потребление заряда батареи, стабильность работы и т. д.
Рекомендуется проверять приложение на предмет масштабируемости применения и наличие возможных проблем с производительностью.
В рамках этого этапа важно пройти и нагрузочное тестирование мобильного приложения.
Функциональное тестирование
Функциональность приложения должна быть полностью протестирована. Особое внимание следует уделить установке, обновлениям, регистрации и входу в систему, обеспечению, работе со специфическими функциями устройства и сообщениям об ошибках.
Функциональное тестирование мобильного приложения, по большей части, может быть выполнено так же, как вы выполнили бы его для любого другого типа приложения. По этой причине мы не будем вдаваться в подробности этого типа тестирования. Однако следует указать области, которые имеют особое значение для мобильных приложений.
Имейте в виду, что функциональное тестирование должно включать в себя тестирование всех функций приложения и не должно быть излишне сосредоточено на какой-то одной функции.
В рамках функционального тестирования, вам следует выполнить следующие тесты:
• Тестирование процесса установки;
• Тестирование возможности обновлений;
• Эксплуатационное тестирование;
• Тестирование процесса регистрации и авторизации;
• Тестирование функций, специфических для устройства;
• Тестирование отправки и получения сообщений об ошибках;
• Низкоуровневое тестирование ресурсов: использование памяти, автоматическое освобождение ресурсов и т.д.
• Тестирование сервисов: функционирование как в режиме онлайн, так и в автономном режиме.
Этап 7: Аттестационное тестирование и тестирование безопасности приложения
Безопасность и конфиденциальность данных имеют огромное значение в наше время. Пользователи требуют, чтобы вся их информация хранилась безопасно и конфиденциально.
Убедитесь, что тестируемое приложение надежно защищено. Выполните проверку на возможность внедрения SQL инъекций, на возможность перехвата сеансов, анализа дампов данных, анализа пакетов и SSL трафика.
Очень важно проверить безопасность хранилища конфиденциальных данных вашего мобильного приложения и его поведение в соответствии с различными схемами разрешений для устройств.
Помимо проверки безусловного шифрования имен пользователей и паролей, задайте себе следующие вопросы:
• Есть ли у приложения сертификаты безопасности?
• Использует ли приложение безопасные сетевые протоколы?
• Существуют ли какие-либо ограничения, например количество попыток входа в систему до блокировки пользователей?
Этап 8: Тестирование устройства
Выполните тесты по тем алгоритмам, которые вы ранее прописали в тестовых случаях и сценариях тестирования на всех определенных для тестирования устройствах, в облаке и / или на физических устройствах.
Этап 9: контрольный этап и резюме
Этот этап включает в себя подробное и полное тестирование — от ранних итеративных этапов тестирования до регрессионных тестов, которые все еще могут потребоваться для стабилизации работы приложения и выявления незначительных дефектов.
На этом этапе тестирования вы можете добавить для проверки новые функции и изменить настройки на те, которых не будет в финальной версии.
После завершения тестирования приложения, дополнительные параметры и функции, добавленные для проверки на этом этапе, удаляются, и окончательная версия становится готовой для представления общественности.
Итоговый отчет о тестировании
Весь процесс тестирования мобильных приложений должен быть тщательно задокументирован. Проверьте дважды, сделаны ли нужные записи, и после этого сформируйте свой окончательный отчет о тестировании (test summary report).
Этот отчет должен включать:
• Важную информацию, выявленную в результате проведенных испытаний;
• Информацию о качестве проводимого тестирования;
• Сводную информацию о качестве тестируемого мобильного приложения;
• Статистику, полученную из отчетов об различных инцидентах;
• Информацию о видах тестирования и времени, затраченном на каждый из них.
Следует также указать в отчете, что:
• данное мобильное приложение пригодно для использования в том качестве, в котором заявлено;
• соответствует всем критериям приемлемости функционала и качества работы.
Бесплатные вебинары по схожей тематике:
Selenoid или Selenium Grid — что лучше
Паттерны автоматизации тестирования.
Kibana в жизни тестировщика.
Вооружившись сводкой, руководство проекта теперь может решить, готово ли мобильное приложение к выпуску на рынок.
Тестирование мобильных приложений — сложная задача. Приспосабливая эти этапы тестирования к каждому разрабатываемому приложению и тщательно выполняя каждый шаг — вы гарантированно получите полнофункциональный качественный продукт.
В данной статье мы рассмотрели особенности тестирования мобильных приложений. Рассмотренные этапы тестирования важны и для тестирования андроид приложений и как ответ на вопрос как тестировать приложения для iphone.
Важно помнить, что тестирование приложений перед представлением на рынке – важный этап в разработке любых приложений. И, конечно же, тестирование мобильных приложений имеет свои особенности и важные моменты.
Ответственно подходите к вопросу разработки и тестирования мобильных приложений, своевременно изучая и применяя актуальные методики и технологии. С нашей стороны мы рекомендуем для изучения курс на ITVDN — Unit тестирование для Android разработчиков.