Посібник із тестування додатків iOS: вручну та автоматизація

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

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

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

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

Тестування програми IOS

Це поширене запитання, коли розробник створює додаток для iOS.

Тестування програми IOS

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

Тестування програми IOS

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Перевірте час встановлення програми на пристрій. Переконайтеся, що програму встановлено протягом прийнятного часу.
  • Після встановлення програми перевірте, чи має програма значок і назву програми. Також переконайтеся, що піктограма та назва є зрозумілими й відображають основну мету програми.
  • Запустіть програму та перевірте, чи відображається заставка.
  • Перевірте час очікування заставки та час, необхідний для завантаження головного екрана. Головний екран програми має завантажитися протягом прийнятного часу. Якщо для завантаження головного екрана потрібно більше часу, у користувача більше шансів вийти з програми або навіть видалити її. Також перевірте, як вміст завантажується на головному екрані.
  • Основна функція програми повинна бути очевидна відразу. Воно повинно говорити само за себе.
  • Перевірте, чи програма підтримує альбомну та книжкову орієнтації. Якщо так, перевірте програму в обох орієнтаціях. Інтерфейс користувача програми має бути налаштований відповідно.
  • Без підключення до Інтернету запустіть програму. Переконайтеся, що програма працює відповідно до плану/бажання. Існує ймовірність того, що програма може аварійно завершити роботу під час запуску або просто відобразити порожній екран.
  • Якщо програма використовує служби локації, перевірте, чи відображається сповіщення про дозвіл на місцезнаходження. Це сповіщення має бути запропоновано користувачеві лише один раз.
  • Якщо програма надсилає push-сповіщення, перевірте, чи відображається сповіщення про дозвіл push-сповіщень. Це сповіщення також має бути запропоновано користувачеві лише один раз.
  • Запустіть програму, закрийте її та перезапустіть. Перевірте, чи програма працює так, як задумано/бажано
  • Закрийте програму, торкнувшись кнопки «Додому» на пристрої, і відкрийте програму знову. Перевірте, чи програма працює так, як задумано/бажано.
  • Після встановлення перевірте, чи є програма в списку налаштувань 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 — це платформа для тестування C-Objective у Mac OS. Найбільшими перевагами фреймворку OCUnit є тісна інтеграція в XCode середовище розробки, як показано нижче.

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

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

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

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

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

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

UIAutomation надає вам такі переваги:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-Отримати відгук від тестувальника: Тестер проводить тестування та надсилає вам звіти про помилки. Після випуску програми ви зможете отримувати звіти з iTunes підключити.

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

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

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

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 Simulator достатньо.

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

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

Кожен завантажуватиме мої програми з магазину додатків, оскільки він має багато функцій

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