Рівень 14. Тестування Web-застосунків на мобільних пристроях

Рівень 14

Веб-тестування на мобільних пристроях

+ Пристрої Apple
Які бувають пристрої Apple?
  • Персональні комп'ютери: MacBook і PC
  • Apple TV
  • iPod-плеєри старого покоління без iOS

Але зараз нас цікавлять:

  • iPhone/iPod: смартфон і смарт-плеєр (відрізняється тим, що в ньому немає GSM-модуля)
  • iPad/iPad mini/iPad Pro: планшети з Retina- та не-Retina-дисплеями
  • Watch: розумні годинники на базі iOS
Різновиди мобільного тестування

• iOS apps. Застосунки для пристроїв Apple мають свої особливості тестування порівняно із застосунками для Android і Windows. Докладніше про це — далі в цьому рівні.

• Hybrid apps. Гібридні застосунки містять і веб-, і стаціонарну складову. Хороший приклад — застосунок Dropbox (мережевий диск). Він працює без інтернету, але щойно з'являється доступ до мережі, синхронізується із сервером і оновлює списки файлів.

• Web content. Мобільний контент, адаптований під кнопкові телефони, зазвичай розміщується на спеціальних мобільних сайтах (застаріле — WAP-сайти). Наразі цей сегмент практично вимер.

• Web apps. Інтернет-застосунки. Вони замінюють мобільні вебсайти застосунком і є адаптацією під конкретну модель. Загалом не працюють без підключення до інтернету. По суті, це міні-браузер, заточений лише під один сайт.

• Optimized webpages. Оптимізовані вебсторінки. Верстка сайту спеціально адаптована під розмір екрана смартфона та дії drag&drop.

• Compatible webpages. Сумісні вебсторінки. Яскравий приклад — наш сайт qaacademy.net.

На екрані смартфона контент масштабуватиметься під нього, але верстка й дизайн залишаться такими самими, як у desktop-версії.

Етапи розробки застосунків для iOS
Застосунок з'являється в iTunes
Особливості тестування мобільних застосунків (iOS)
Стрес-тести

Стрес-тести — це матриця:

«Можлива, несподівана подія» Х «Дія користувача, що виконується в застосунку»

Сумісність за пристроями

Retina чи не-Retina?

  • 2048 х 1536 проти 1024 х 768

iPad проти iPhone

Несумісні: потрібно перевіряти на кожному пристрої

iPod проти iPhone

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

iPad 2 проти iPad 3

Різні екран, процесор і версія iOS. Пристрої сумісні, але все одно потрібно виконувати перевірки для різних дисплеїв і версій iOS

iPad 3 проти iPad 4 проти iPad Pro

Несумісна лише роздільна здатність екрана. Процесор, камера, зв'язок (LTE). Пристрої сумісні, зверніть увагу на мережу.

iPad mini

  • Процесор і екран від iPad 2
  • Камера і зв'язок від iPad 4

iPhone 3GS проти iPhone 4/5/6

Зовсім різні: потрібен кожен екземпляр

Емулятор чи пристрій?

  • Тільки пристрій, і нічого іншого!
Історія версій iOS
Докладніше про випуск прошивок iOS

29 червня 2007 року Apple випустила першу версію iPhone OS одночасно з першою моделлю iPhone. Фінальною версією серії 1.x стала 1.1.5, випущена невдовзі після версії 2.0.

11 липня 2008 року побачила світ версія iPhone OS 2.0, яку оновлювали аж до версії 2.2.1.

17 червня 2009 року вийшла iPhone OS 3.0. ОС оновлювали до версії 3.1.1 (дата випуску — 2 лютого 2010 року). Для iPhone і iPod touch першого покоління версія 3.1.3 є останньою доступною. iPad представили разом із версією iPhone OS 3.2, яку оновлювали аж до 3.2.2. Версії 3.2.x призначалися лише для iPad.

21 червня 2010 року вийшла iOS 4.0 для iPhone та iPod touch. В iOS 4.0 анонсували близько 1500 нових API для розробників, а також довгоочікувану функцію багатозадачності. Для iPod touch (2-го покоління) та iPhone 3G версія 4.2.1 є останньою доступною. Проте деякі функції залишилися недоступними (зокрема багатозадачність і зміна фону домашнього екрана). iOS 4.2 стала першою версією, що зрівняла iPhone та iPad за доступними функціями. Випуск CDMA-версії iPhone для Verizon Wireless призвів до відгалуження iOS. Випуск 4.2.x для CDMA тривав, тоді як для GSM-версій iPhone, iPad та iPod touch уже випускалася iOS 4.3.

6 червня 2011 року Apple представила iOS 5, бета-версію Apple TV 4.4, бета-версію SDK для iOS 5, а також бета-версію iCloud. iOS 5 містить iMessage (систему обміну повідомленнями між пристроями на iOS 5), нову систему push-сповіщень, Newsstand, інтеграцію з Twitter, застосунок «Нагадування», покращення для AirPlay (зокрема дублювання зображення на екрані), повну інтеграцію з iCloud та ще понад 200 нових функцій. iOS 5 підтримує всі моделі iPad, iPhone 4 (версії GSM і CDMA) та iPod touch (3-є і 4-те покоління).

Apple забезпечує однакову версію iOS для моделей iPhone та iPod touch, випущених в один рік. Користувачі iPhone отримували оновлення безкоштовно, тоді як власники iPod touch мусили платити за оновлення до iPhone OS 2 і 3. Починаючи з версії 4, iOS стала безкоштовною для всіх пристроїв.

Які пристрої обрати?*

*Лише якщо ви їх підтримуєте. Пристрій потрібен тільки за умови, що для вас критичні специфічні характеристики девайса (процесор, тип мережі, тип екрана, прошивка). Також деякі пристрої на кшталт iPad/iPad 2/iPhone 3 неактуальні через застарілість.

**З iPod 4 та iPod 3 у нашому варіанті було свідомо обрано iPod 4, бо відсоток наших користувачів з iPod 4 набагато більший, ніж з iPod 3.

Я знаю, що від такої захопливої розповіді про версії iOS неможливо втомитися, але давай на хвилинку відволічемося й подивимося, що це в біса витворяє Дарт Вейдер?!

Як установити білд на тестовий пристрій?
  • Через програміста, якщо у вас спільні тестові пристрої. Він може залити застосунок за допомогою своєї програми для розробки Xcode
  • За допомогою iTunes. Потрібно лише, щоб комп'ютер був авторизований, а *.ipa-файл був зламаний
  • Через допоміжний застосунок i-FunBox. Він дає змогу переносити файли та застосунки на iOS-гаджети
  • TestFlight (застосунок, що дає тестувальникам змогу встановлювати бета-версії застосунків) або подібний до нього ресурс (HockeyApp)
Альфа-тестування
Бета-тестування
  • Застосункам в AppStore не можна давати назви, що містять слова Beta, Trial тощо.
  • Потрібні бета-тестувальники? Шукайте тих, хто має iPhone/iPad/iPod, дізнавайтеся їхній UDID, додавайте його до provisioning-профілю, заливайте білд на TestFlight (або аналог) і запрошуйте тестувати...
Планування тестування

Підводні камені під час тестування застосунків під iOS

  • Неможливість або складність відтворення багів
  • Залежність термінів від настрою користувачів і рев'юверів Apple
  • Висока конкуренція серед розробників застосунків: виграє лише найякісніший застосунок

Тривалість тестування

  • Acceptance-тест нашого останнього релізу (один проєкт для iPhone та iPad) без тестування нових фіч і регресії зайняв ~8 годин.

Мінімальний комплект тестів:

  • Acceptance-рівень на основному пристрої (найпріоритетнішому)
  • Install-рівень на всіх підтримуваних версіях ОС та першочергових пристроях (3 пристрої)
  • Update-тестування на всіх підтримуваних версіях ОС
  • Перевірка інфраструктури

Команда:

  • 1-4 людини залежно від ситуації та термінів

Метрики виконання тестів. Жодних особливих правил:

  • Smoke за модулями. Якщо модуль зафейлився, тестування для нього не продовжується
  • Acceptance починаємо, коли є реліз-кандидат і в ньому немає критичних помилок
  • Є критичні помилки — не релізимося
  • Можна залити версію раніше, ніж завершили тести, якщо ризик помилки невеликий, а версію потрібно віддати на модерацію AppStore; при цьому заплановані тести все одно необхідно довести до кінця
Тестова документація

Після прочитаного матеріалу в мене виникло кілька запитань. Давай поміркуємо над ними разом:

Приклад використання документації

Під час роботи в компанії wix.com:

  • Ми зберігаємо й оновлюємо чек-листи за рівнями (installation, smoke, acceptance)
  • Зберігаємо чек-листи для стрес-тестування
  • Підтримуємо чек-листи для тестування регресійного функціоналу, потрібні під час оновлення версії
  • Деякі функціональні тести (залежить від специфіки застосунку)
Баги

Хане Соло, усі знають, що ти найкращий фахівець із тестування iOS,

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

Розкажи нам про свій досвід тестування яблукофонів.

Яких багів більше: UI чи функціоналу?

  • Usability =)

Які критерії визначення критичності бага в мобільному застосунку?

  • Достоту так, як описано в п'ятому рівні про баги

Які основні причини падінь застосунків?

  • Некоректно реалізована логіка роботи з ОС пристрою.
  • Соціальні мережі! Особливо Facebook.
  • Недостатньо оперативної пам'яті.
  • Немає інтернету, якщо застосунок працює з інтернетом.
  • На девайсі закінчилося місце.
  • Робота із зовнішнім пристроєм (AirPlay, TVOut, Bluetooth,...)
  • Зателефонували..

Як описувати?

  • Як завжди — докладно, згідно зі структурою: Summary/Preliminaries/Actual Result/Expected Result

Це зрозуміло, це для будь-якого бага, а що-небудь особливо яблучне?

  • Там, де був креш, додавайте креш-репорт, він зберігається на девайсі (Settings > General > About > Diagnostic & Usage > Data). Щоб дістати його з девайса, потрібно синхронізуватися з комп'ютером через iTunes і зайти в потрібну папку: C:\User\<USERNAME>\AppData\Roaming\Apple або для Mac — computer\Logs\CrashReporter/MobileDevice/<DEVICE_NAME>.
  • А ще можна робити вирізку з Debug Console
  • Там, де помилка в UI, — додавайте скриншот
  • Там, де помилка з локалізації (тексту), — додавайте скриншот
Інструменти мобільного тестувальника

AlCharger — заряджаємо iPad від комп'ютера

Як зробити скриншот? «Home» + «Зменшення гучності»

Як записати відео? Застосунок для запису Vidyo

Лог застосунку (console)

App/File Manager для девайсів:

Стежимо за пам'яттю та запущеними процесами:

Навантаження на процесор на девайсі — теж купа застосунків в AppStore (шукаємо «CPU»)

Як бути «в тренді»?

AppStore і відгуки користувачів (баг-репорти/пропозиції). Дайте користувачам можливість повідомити про помилку прямо з вашого застосунку.

Flurry.com — величезна машина зі збору статистики саме щодо ваших застосунків: мови, вік, які фічі використовують, скільки крешів, яка тривалість сесії тощо.

Appannie.com — статистика просування в AppStore вас і ваших конкурентів.

То з чого ж почати?

Просто про iOS

  • Переглянути стандартні застосунки та почати користуватися девайсом, особливо розібратися в AppStore
  • Поки вивчаємо застосунки — стежимо за консоллю
  • Обрати будь-який застосунок і вивчити, з чого він складається, через iFunBox, iExplorer або аналог
  • Вивчіть налаштування девайса та чим вони відрізняються під час переходу від ОС до ОС

UI Element Usage Guidelines — вивчіть, як називати елементи, які бувають жести, які очікування має користувач щодо того, як поводитимуться певні контроли.

User Experience Guidelines

Щось протестувати — функціонально з урахуванням жестів, UI + usability; взяти матрицю зі стрес-тестів і пройти їх; перевірити локалізацію.

Зловити креш, знайти креш-репорт, записати баг... Далі все піде як по маслу.

Тільки не забудьте вивчити, чим відрізняються девайси

А потім уже вивчити технології залежно від того, як складуться карти вашого проєкту:

Приклади багів

У галереї зібрано приклади багів, задокументованих під час тестування iOS-застосунків

Практичне завдання

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

Два сайти дам тобі я, протестуй їх на мобільному пристрої, як навчали ми тебе. У цьому завданні дозволяється тестувати лише за допомогою браузера на смартфоні (з комп'ютером можна лише порівнювати). Почнімо по порядку:

1. Оптимізований мобільний сайт. Увага, завдання ускладнене тим, що сайт не українською: вам потрібно навчитися абстрагуватися від тексту й тестувати лише функціонал. Крім того, порівнюйте компоненти в мобільній та десктопній версіях сайту.

2. Неоптимізований сайт магістра Кенобі. Завдання — протестувати й порівняти відображення сайту на комп'ютері та мобільному пристрої.

3. «Ви збожеволієте без цього», — казав магістр Вінду. Установіть QR Android для швидкої передачі посилань на смартфон.

Коли все виконаєш — відправ завдання до ради магістрів через форму. Магістри відзначили тебе як видатного учня. Порадуй їх якісною роботою.

Теоретичний тест рівня