Підручник з тестування iOS-додатків

⚡ Розумний підсумок

Тестування додатків для iOS перевіряє, чи встановлюється, працює та поводиться застосунок правильно на пристроях Apple. Воно поєднує ручні методи з автоматизованими фреймворками, такими як XCTest та XCUITest, для раннього виявлення збоїв, несумісностей та витоків пам'яті.

  • 📱 Foundation: iOS працює лише на обладнанні Apple, тому кожен додаток має бути перевірений на відповідність підтримуваним версіям iOS та пристроям.
  • ✅ Контрольний список: Загальні перевірки охоплюють встановлення, час запуску, орієнтацію, дозволи та видимість у App Store.
  • 🤖 Автоматизація: XCTest та XCUITest замінюють застарілі фреймворки OCUnit та UIAutomation для модульного та інтерфейсного тестування.
  • 🧪 Ручні методи: Дослідницьке, юзабіліті, концептуальне, бета- та A/B-тестування збирають реальні відгуки користувачів.
  • ???? Вплив: Тестування на реальних пристроях плюс бета-версія TestFlight забезпечують стабільну продуктивність до релізу в App Store.

Тестування iOS-додатків – ручне та автоматизоване

Що таке тестування додатків iOS?

Тестування програми iOS це процес тестування, під час якого додаток iOS тестується на реальних пристроях Apple, щоб перевірити, чи працює він належним чином чи ні для певних дій користувача, таких як час встановлення, інтерфейс користувача, досвід користувача, зовнішній вигляд, поведінка, функціональність, час завантаження, продуктивність, програма Опис магазину, підтримка версії ОС тощо.

Навіщо тестувати додатки iOS?

Тестування програми iOS обов'язковий, оскільки iOS — це платформа Apple для мобільних додатків, вперше випущена 29 червня 2007 року. На відміну від AndroidApple не ліцензує iOS для встановлення на обладнання сторонніх виробників. iOS та програми для iOS можна встановлювати лише на пристрої Apple; отже, ваша програма для iOS має бути сумісною з версіями iOS та пристроями iOS, якими володіють ваші користувачі.

Пристрої Apple, на яких працюють програми для iOS

На рисунку нижче показано поширені запитання, з якими стикаються розробники під час створення iOS-додатку.

Поширені запитання під час створення iOS-додатку

Неважливо, скільки часу ви витрачаєте на дизайн та впровадження; помилки неминучі, і баги з'являться. На рисунку нижче показано деякі поширені баги в iOS-додатках.

Поширені помилки в iOS-додатках

Збій програми

Одна з найбільш неприємних проблем під час використання пристроїв Apple полягає в тому, що програма може часто аварійно завершувати роботу. Часто програма аварійно завершує роботу через помилки або витоки пам'яті в коді.

Несумісність програм

Ваша програма для iOS може працювати бездоганно на поточній версії iOS, але якщо iOS оновлено, вона може не працювати через проблеми несумісності.

Вразливість безпеки

Уразливість безпеки в iOS дозволяє хакеру атакувати ваші пристрої iOS та красти вашу особисту інформацію. Протягом багатьох років у різних версіях iOS було виявлено серйозні вразливості безпеки iPhone.

Пам'ять протікає

Витоки пам’яті – це блоки виділеної пам’яті, які програма більше не використовує. Витік пам'яті спричиняє збій програми iOS.
Це помилки, і їх завжди потрібно виправляти.

Тестування iOS MindMap

Тестування iOS MindMap елементів, які варто врахувати

Як показано на малюнку вище, iOS Тестування MindMap показує всі елементи, які тестувальник повинен враховувати під час проведення тестування на iOS.

Контрольний список тестування програм iOS

Цей контрольний список спеціально розроблений для тестування характеристик мобільних додатків для iOS. Зрозуміло, що він тестує лише загальні характеристики додатка, а не його функціональність.

  • Перевірте час встановлення програми на пристрій. Переконайтеся, що програма встановлена ​​протягом прийнятного часу.
  • Після встановлення програми перевірте, чи має вона значок і назву. Також переконайтеся, що і значок, і назва зрозумілі самі по собі та відображають основну мету програми.
  • Запустіть програму та перевірте, чи відображається заставка.
  • Перевірте час очікування заставки та час завантаження головного екрана. Головний екран програми має завантажуватися протягом прийнятного часу. Якщо головний екран завантажується занадто довго, є більше шансів, що користувач вийде з програми або навіть видалить її. Також перевірте, як вміст завантажується на головний екран.
  • Основна функція програми повинна бути очевидна відразу. Воно повинно говорити само за себе.
  • Перевірте, чи підтримує програма як альбомну, так і портретну орієнтації. Якщо так, перевірте програму в обох орієнтаціях. Інтерфейс користувача програми має відповідно налаштуватися.
  • Запустіть програму без підключення до Інтернету. Переконайтеся, що програма працює належним чином. Існує ймовірність того, що програма може аварійно завершити роботу під час запуску або просто відобразити порожній екран.
  • Якщо програма використовує служби локації, перевірте, чи відображається сповіщення про дозвіл на доступ до місцезнаходження. Це сповіщення має відображатися користувачеві лише один раз.
  • Якщо програма надсилає push-сповіщення, перевірте, чи відображається сповіщення про дозвіл на push-сповіщення. Це сповіщення також має бути показано користувачеві лише один раз.
  • Запустіть програму, закрийте її та перезапустіть. Перевірте, чи програма поводиться належним чином/належним чином.
  • Закрийте програму торканнямping кнопку «Головна» на пристрої та знову відкрийте програму. Перевірте, чи працює програма належним чином.
  • Після встановлення перевірте, чи є програма в налаштуваннях iPhone.
  • Після запуску програми перевірте, чи її можна знайти в «App Store». Для програми будуть підтримувані версії ОС. Тому переконайтеся, що програму можна знайти в «App Store» пристроїв з підтримуваними версіями ОС. Також програми не повинно бути в «App Store» пристроїв з непідтримуваними версіями ОС.
  • Перевірте, чи програма переходить у режим сну під час роботи у фоновому режимі, щоб запобігти розрядці акумулятора.
  • Якщо програма працює повільно або щоразу, коли вміст завантажується, перевірте, чи є значок стану прогресу («Завантаження…»), бажано з окремим повідомленням.
  • Знайдіть програму за її назвою в рядку пошуку пристрою. Перевірте, чи є програма у списку
  • Перевірте, чи не змінено зовнішній вигляд кнопок, які виконують стандартні дії в додатку (наприклад: оновлення, упорядкування, кошик, відповідь, назад тощо).
  • Перевірте, чи не використовуються стандартні кнопки для функцій, відмінних від тих, для яких вони зазвичай використовуються

Стратегія тестування iOS

Щойно ви зрозумієте, що перевіряти, наступним кроком буде те, як це протестувати. На рисунку нижче представлено деякі поширені типи стратегій тестування iOS.

Поширені типи стратегій тестування iOS

Автоматизоване тестування

Автоматизоване тестування є однією з найбільших переваг тестування iOS. Воно дозволяє швидко виявляти помилки та проблеми з продуктивністю. Переваги автоматизованого тестування наведено нижче:

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

Модульне тестування за допомогою OCUnit

Коли було випущено оригінальний пакет SDK для iOS, його бракувало Unit Testing можливості. Тож Apple принесла OCUnit рішення для модульного тестування в iOS SDK версії 2.2.

OCUnit був платформою для тестування Objective-C на Mac (зараз macOS). Найбільшою перевагою фреймворку OCUnit була його тісна інтеграція в Xcode середовище розробки, як показано нижче.

Примітка: OCUnit (SenTestingKit) застарів; оскільки Xcode 5, Apple XCTest фреймворк замінив його як стандарт — див. розділ XCTest нижче. Знімки екрана тут показують старішу версію Xcode версія.

Інтеграція OCUnit у Xcode навколишнє середовище

Деякі переваги OCUnit показано на малюнку нижче.

Переваги модульного тестування з OCUnit

Тестування інтерфейсу користувача за допомогою UIAutomation

Тестування інтерфейсу користувача за допомогою UIAutomation

Автоматизація інтерфейсу користувача була JavaScript Бібліотека, надана Apple Inc., яку можна використовувати для проведення автоматизованих тестів на реальних пристроях та в симуляторі iOS. Цей фреймворк було додано в iOS SDK 4.0. Використовуючи автоматизацію інтерфейсу користувача, можна автоматизувати тестування програми не лише на симуляторі, але й на реальному пристрої.

Примітка: Apple застаріла автоматизація інтерфейсу користувача в Xcode 8 (2016) та пізніших версій його видалили. Використовуйте XCUITest для нових проектів тестування інтерфейсу користувача; класи та знімки екрана нижче відображають старіший інструментарій.

UIAutomation приніс такі переваги:

  • Зменшення зусиль на Ручне тестування
  • Потрібно менше зусиль для виконання всіх ваших тестів
  • Спрощено процедуру тестування інтерфейсу користувача (натисніть кілька кнопок і запустіть повний набір тестів)

Інструмент UIAutomation працював зі скриптів, написаних мовою JavaСкрипт. Він імітував події користувача в цільовому iOS-додатку.

Мінуси та переваги UIAutomation

Плюси мінуси
1. Хороша підтримка жестів і обертання Це не відкритий код, менше підтримки з боку розробника
2. Можна запускати тести UIAutomation на пристрої, а не лише на симуляторі. Не може дуже добре інтегруватися з іншими інструментами
3. Розроблено в JavaСкрипт, популярна мова програмування.

Загальні класи у фреймворку UIAutomation

Наведений вище малюнок представляє деякі поширені класи у фреймворку UIAutomation.

  • Команда UIAElement class є суперкласом для всіх елементів інтерфейсу користувача в контексті автоматизації
  • Команда МАУTarget клас представляє елементи інтерфейсу користувача високого рівня системи, що тестується
  • Команда UIALogger клас надає інформацію про тести та помилки щодо функції пошуку
  • Команда UIAActivityView class надає доступ до переглядів активності у вашій програмі та керування ними.
  • Команда UIAActionSheet class надає доступ до аркушів дій у вашій програмі та керування ними.
  • користувач Подія Дія
  • Клас UISlider
  • Клас UIAButton
  • Клас UIAKey
  • Клас клавіатури UIA

Інші рамки автоматизованого тестування

  • Френк: Автоматизовано Тест на прийом фреймворк для iPhone та iPad (більше не підтримується активно)
  • KIF: це iOS інтеграційний тест рамка. Це дозволяє легко автоматизувати додатки iOS, використовуючи атрибути доступності, які ОС робить доступними для людей з вадами зору.
  • Appium: популярний проект з відкритим вихідним кодом, Крос-платформна фреймворк, який автоматизує роботу iOS-додатків за допомогою драйвера Apple XCUITest

XCTest та XCUITest: сучасні фреймворки для тестування від Apple

OCUnit та UIAutomation мають важливу історію, але зараз обидва виведені з експлуатації. Apple замінила OCUnit на XCTest in Xcode 5 (2013) та застарілий UIAutomation у Xcode 8 (2016) на користь XCUITest, компонент тестування інтерфейсу користувача XCTest. Це тестові фреймворки, які Apple постачає та підтримує в кожній поточній версії Xcode.

За допомогою XCTest ви пишете модульні тести в Swift або Objective-C та запускати їх з Xcode Навігатор тестів xcodebuild командного рядка, на симуляторі або на реальних пристроях. XCUITest проходить через рівень доступності вашої програми, тому тести інтерфейсу користувача поводяться так само, як і справжні користувачі.

Застарілий фреймворк Сучасна заміна Що змінилося
OCUnit (SenTestingKit) XCTest Ті ж самі концепції модульного тестування, тепер вбудовані в кожен Xcode шаблон проекту
UIAutomation (JavaСценарій) XCUITest Тести інтерфейсу користувача написані на Swift або Objective-C замість JavaScript

💡 Порада: Кросплатформні інструменти, такі як Appium автоматизуйте iOS за допомогою XCUITest під капотом, щоб ці навички переносилися безпосередньо.

Ручне тестування

Автоматизація приносить швидкість, але ручні методи, описані нижче, додають людської оцінки, яку скрипти забезпечити не можуть.

Дослідницьке випробування

Це тестування без формального плану тестування. Дослідницьке тестування – це недорогий метод тестування, але він може пропустити потенційні помилки у вашому iOS-додатку.

Мінуси дослідницького тестування проти плюсів

Плюси мінуси
1. Less потрібна підготовка; серйозні помилки виявляються на ранній стадії. Вимагає високої кваліфікації випробувача
2. Немає План тестування це необхідно, що пришвидшує виявлення помилок. Тестове покриття низьке. Це не гарантує перевірку всіх ваших вимог.
3. Більшість помилок виявляються на ранній стадії за допомогою дослідницького тестування Відсутність тестової документації

Тестування користувача

Користувальницьке тестування — це різновид ручного тестування на iOS. Метою цього тестування є не тільки створення кращих програм без помилок додатків. На рисунку нижче показано чотири типи тестування користувачів.

Чотири типи тестування користувачів

Тестування концепції

Оцініть реакцію користувачів на ідею застосунку, перш ніж випускати її на ринок. Процедури тестування концепції на iOS описані на рисунку нижче.

Процедура тестування концепції на iOS

Тестування на зручність

Тестування на зручність – це тест на те, наскільки легко використовувати ваш iOS-додаток. У тестуванні iOS тест зручності використання може бути записаний запам’ятати або поділитися з іншими.

Деякі інструменти, що підтримують тестування зручності використання на iOS:

Тримата програми для тестування мобільних користувачів Android та iOS.

Delight.io, цей інструмент може фіксувати реальну взаємодію користувача з вашими програмами iOS.

Бета-тестування

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

Етапи розповсюдження бета-тестування

-Передумова: якщо ви бета-тестуєте остаточний кандидат на випуск, обов’язково перевірте програму, перш ніж розповсюджувати її тестувальникам.

-Знайти тестер через сервіс: ви збираєте ідентифікатори пристроїв від тестувальників і додаєте їх до свого облікового запису розробника Apple

-Створення спеціального розподілуРозподіл за принципом «Ad Hoc» дозволяє тестувальнику запускати ваш додаток на своєму пристрої без потреби Xcode. Цей крок включає 2 підетапи

  • Створення сертифікатів розповсюдження
  • Створення спеціальних профілів надання

-Отримати відгук від тестувальника: Тестери проводять тестування та надсилають вам звіти про помилки. Після випуску вашої програми ви можете отримати звіти з App Store Connect (раніше iTunes Підключитися).

Примітка: Сьогодні більшість команд розповсюджують бета-збірки з Крило!, що дозволяє запрошувати до 10 000 зовнішніх тестувальників без ручного збору ідентифікаторів пристроїв.

A / B тестування

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

A/B-тестування на двох пристроях iOS

A/B-тестування включає три основні етапи

  • Налаштувати тестПідготуйте 2 версії вашого iOS-додатку (A та B) та тестову метрику
  • Перевірити: Протестуйте 2 версії додатків для iOS, зазначені вище, на пристроях одночасно.
  • АналізуватиВиміряти та вибрати кращу версію для випуску

Наведені нижче інструменти підтримують A/B-тестування на iOS.

  • Виникати: тестування A/B для iOS і AndroidЙого можна інтегрувати у ваш iOS-додаток, що пришвидшує процес тестування.

Найкращі практики для A/B тестування

  • Визначте мета вашого тесту. Будь-який тест марний без цілі.
  • годинник кінцеві користувачі використовують вашу програму вперше
  • прогін один тестувати лише для кожного оновлення. Це економить ваш час під час проведення тестування
  • монітор ретельно пройдіть тест. Ви можете навчитися на тесті, спостерігаючи за ним.

Тестування iOS Найкраща практика

Ось кілька порад, які варто знати, організовуючи тестування свого iOS-додатку

  1. Перевірте додаток на a реальний пристрій отримати реалістичне уявлення про продуктивність
  2. Покращувати ваші методи тестування, оскільки традиційних методів тестування більше недостатньо для охоплення всіх тестів у тестуванні iOS
  3. Ввімкніть кнопку журнал консолі для тестування застосунку iOS. Ця функція iOS містить інформацію з кожного застосунку на пристрої.
  4. Документ помилки програми, що використовують вбудований знімок екрана команда. Це допомагає розробнику зрозуміти, як виникають помилки.
  5. Звіт про збої Інструменти корисні під час тестування вашої програми. Вони можуть виявляти збої та реєструвати деталі, щоб ви могли легко дослідити помилки.

МІФИ про тестування iOS

У цьому розділі розглядаються кілька популярних міфів і реальності тестування iOS

Тестування додатків на iOS та Android те саме.

iOS та Android – це дві платформи, розроблені Apple Inc. та Google відповідно. Вони абсолютно різні в тестових середовищах, тестових фреймворках та мовах програмування.

Достатньо протестувати застосунок на симуляторі iOS.

Симулятор iOS недостатньо потужний для тестування програми, оскільки має деякі обмеження:

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

Усі завантажуватимуть мої програми з App Store, бо вони мають багато функцій

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

Поширені запитання

Так. Платформи на основі штучного інтелекту генерують тестові випадки, виявляють візуальні регресії та відновлюють пошкоджені локатори елементів, коли ваш інтерфейс користувача змінюється. Такі інструменти, як Testsigma дозволити командам створювати тести iOS простою англійською мовою.

Самовідновлення на основі штучного інтелекту оновлює локатори елементів після змін інтерфейсу користувача, позначає ненадійні тести та надає пріоритет випадкам високого ризику, скорочуючи ручну переробку, яка виникає після кожного випуску iOS.

Так. Appium активно підтримується та запускає iOS-додатки через фреймворк Apple XCUITest, підтримуючи тести в Javaсценарій, Python, Javaабо C#.

Ні. Безкоштовний Apple ID з Xcode дозволяє тестувати на власному пристрої. Для цього потрібна платна програма для розробників Apple (99 доларів США на рік). Крило! розповсюдження та випуск в App Store.

Підсумуйте цей пост за допомогою: