Мобільний додаток

Існують різні інструменти тестування мобільних додатків. Умовно їх можна поділити на інструменти для ручного та автоматизованого тестування. Також можна класифікувати за такою схемою:
1) Ручне і автоматизоване мобільне тестування.
На сьогодні багато фахівців підтримують думку про те, що ручне тестування в кінцевому підсумку перестане використовуватися. Швидше за все, це неправда. Ми не можемо обійтися без автоматизації тестування, однак є ситуації, коли надають перевагу ручному тестуванню. Чому?
Переваги ручного тестування мобільних додатків:
• Це більш економічно вигідно в короткостроковій перспективі.
• Ручне тестування більш гнучке.
• Найкраще моделювання дій користувача.
Недоліки ручного тестування мобільних додатків:
• Ручні тестові приклади важко використовувати повторно.
• Менш ефективне виконання певного постійного завдання.
• Процес тестування повільний.
• Деякі типи тестових випадків не можуть бути виконані вручну (тестування навантаження).
Переваги автоматизованого тестування додатків:
• Процес тестування займає мало часу.
• Економічність в довгостроковій перспективі використання.
• Автоматизовані тестові випадки легко використовувати повторно.
• Єдине рішення для деяких видів тестування (тестування продуктивності).
• Результати випробувань легкодоступні.
Недоліки автоматизованого тестування додатків:
• У деяких мобільних засобів тестування є обмеження.
• Процес тестування займає багато часу.
• Автоматизоване тестування найменш ефективне у визначенні зручності користування.
2) Симулятори та емулятори
Часто плутають значення слів «емулятор» і «симулятор». Фактично, емулятор – це оригінальна заміна пристрою. У вас немає можливості модифікувати програми і додатки, але ви можете їх запускати. Симулятор, в свою чергу, не копіює апаратне забезпечення пристрою, однак у вас є можливість налаштувати аналогічне середовище, таке як в ОС оригінального пристрою. Таким чином, краще використовувати мобільні симулятори для тестування мобільного додатка. Емулятори більше підходять для тестування мобільних сайтів.
Переваги використання симуляторів для тестування мобільного додатка:
• Просте налаштування.
• Швидка дія.
• Допомагає перевіряти і тестувати поведінку вашого мобільного додатка.
• Економічно вигідно.
Недоліки використання симуляторів для тестування мобільного додатка:
• Апаратне обладнання не враховується.
• Можливі помилкові спрацьовування.
• Отримання неповних даних про результати моделювання, що створює певні труднощі для повного аналізу результатів тестувань.
3) Хмарні та он-лайн сервіси
Тестування мобільних додатків з використанням хмарних інструментів, мабуть, є оптимальним вибором. Це може допомогти вам уникнути недоліків реальних пристроїв і симуляторів.
Основні переваги цього підходу:
• Легка доступність.
• Можливість запуску мобільних пристроїв на декількох системах.
• Можливість не тільки тестувати, а й оновлювати, а також керувати програмами в хмарі.
• Економічно вигідно.
• Висока масштабність.
• Один і той самий скрипт можна запускати на одному пристрої паралельно.
Недоліки хмарного мобільного тестування:
• Менше контролю.
• Немає такого високого рівня безпеки.
• Залежність від інтернет-з’єднання.
Деякі корисні хмарні інструменти, які можуть допомогти вам протестувати мобільний додаток: Xamarin Test Cloud, Perfecto Mobile Continuous Quality Lab, Keynote Mobile Testing.
Он-лайн тестування:
API (application programming interface) – основний інтерфейс для взаємодії з іншими програмами.
GUI (graphic user interface) – графічний інтерфейс, використовується для взаємодії з користувачем.
Net (networking interface) – працює через мережу і використовується як просунутими користувачами, так і програмами.

Тести можуть використовувати всі ці інтерфейси для взаємодії з додатком. При ручному тестуванні посередником між тестами і додатком є тестувальник: він перетворює текст тест-кейсів на дієвий з одним з інтерфейсів програми.
Для автоматизації потрібно замінити тестувальника на інструменти, які вміють взаємодіяти з одним або декількома інтерфейсами програми. Також будуть потрібні утиліти для запуску і формування набору тестів.
Разом всі ці інструменти називаються стеком автотестування. Щоб зрозуміти, як вони взаємодіють в стеці, необхідно їх класифікувати. Представлена класифікація умовна і необхідна в першу чергу для розуміння інструментів та їх поєднання .
Всього існує чотири групи інструментів: драйвери, надбудови, фреймворки і комбайни. Розгляньмо їх докладніше.
Драйвер
Утиліти автотестування, як і інші програми, можуть взаємодіяти з додатком тільки через програмний інтерфейс – по-іншому вони не вміють. Для роботи через інші інтерфейси існують спеціальні програми – драйвери.
Драйвер – програма, яка надає API для одного з інтерфейсів програми.
Для кожного інтерфейсу, крім, власне, API, необхідний свій драйвер. Наприклад, коли ви даєте драйверу для GUI команду “Натиснути на кнопку Menu”, він сприймає її через API і відсилає в тестований додаток, де ця команда перетворюється в клік по графічній кнопці Menu. Для взаємодії з API додатка драйвери не потрібні або майже не потрібні – взаємодія програмна. А ось при роботі з іншими інтерфейсами без них не обійтися.
Найбільш складними зазвичай є драйвери для GUI, оскільки цей інтерфейс дуже відрізняється від звичайного для програми спілкування кодом. При цьому в автоматизованому тестуванні мобільних додатків GUI вважається найбільш актуальним, томув інтеграційному тестуванні використовувати найчастіше доводиться саме його. Найбільш популярні драйвера для GUI в мобільному тестуванні – UIAutomator і Espresso для Android, XCUITest – для iOS.
Надбудова
Коли функціоналу драйвера не вистачає або він незручний і складний, над ним з’являється ще один рівень, який я буду називати надбудовою.
Надбудова – програма, яка взаємодіє з додатком через один або кілька драйверів, підвищуючи зручність їх використання або розширюючи їх можливості.
У надбудови можуть бути наступні функції:
• Модифікація поведінки (без зміни API). Наприклад, додаткове протоколювання, валідація даних, очікування виконання дії протягом певного часу.
• Підвищення зручності і / або рівня абстракції API через використання синтаксичного цукру – зручних назв функцій, більш коротких звернень до них, уніфікованого стилю написання тестів; неявне управління драйвером, коли, наприклад, він ініціалізується автоматично, без необхідності прописувати кожну таку дію вручну; спрощення складних команд на кшталт вибору події з календаря або роботи зі списками, які прокручуються; реалізацію альтернативних стилів програмування, таких як процедурний стиль або fluent.
• Уніфікація API драйверів. Тут надбудова надає єдиний інтерфейс для роботи відразу з декількома драйверами. Це дозволяє, наприклад, використовувати один і той самий код для тестів на iOS і Android, як у популярній надбудові Appium.
Фреймворк
З іншого боку тестів знаходиться фреймворк запуску. В цій статті я буду коротко називати його “фреймворк”.
Фреймворк – це програма для формування, запуску і збору результатів запуску набору тестів.
До завдань фреймворка входять:
• Формування, угруповання і упорядкування набору тестів,
• Розпаралелювання набору (опціонально),
• Створення фікстур,
• Запуск тестів,
• Збір результатів їх виконання,
• Формування звітів про виконання (опціонально).
Можна помітити, що ці функції не пов’язані з тестуванням тільки мобільних додатків – їх можна успішно застосовувати і в тестуванні десктоп- і веб-додатків. Справа в тому, що фреймворк не повинен забезпечувати взаємодію тестів і додатки – він працює тільки з тестами, і тип програми не має значення.
Якщо драйвери і надбудови знаходяться між тестами і додатком, то фреймворк знаходиться над тестами, організовуючи їх запуск. Тому важливо не плутати поняття “драйвер” і “фреймворк”. Звичайно, в деяких фреймворках є власні драйвери для роботи з додатками, але це зовсім необов’язкова умова. Найпомітніші фреймворки в мобільному тестуванні – xUnit і Cucumber.
Комбайни

Нарешті, ще одна група утилітів, що використовуються для автоматизації тестування мобільних додатків, – це комбайни, які поєднують в собі і фреймворки, і драйвери (причому не тільки мобільні), і навіть можливості розробки. Xamarin.UITest, Squish, Ranorex – всі вони підтримують автоматизацію тестування iOS-, Android-, веб-додатків, а два останніх – ще й десктоп-додатків.
Ключові моменти в стратегії тестування мобільного сайту:
• Вибір пристроїв.
Безсумнівно, реальний пристрій – найкраще рішення, якщо ви хочете протестувати мобільний додаток. Тестування на реальному пристрої завжди дає вам максимальну точність результатів. Насправді нелегко вибрати найбільш підходящий пристрій. У будь-якому випадку, ось деякі дії, які ви повинні зробити при виборі пристрою для мобільного тестування:
1) Проаналізуйте і визначте найпопулярніші і використовувані гаджети на ринку.
2) Виберіть пристрої з різною ОС.
3) Виберіть пристрої з різними розширеннями екрану.
4) Зверніть увагу на наступні чинники: сумісність, об’єм пам’яті, можливість підключення і т. д.
Переваги для тестування мобільних додатків на реальних пристроях:
• Висока точність результату тестування.
• Проста реплікація помилок. Такі моменти, як: ємність батареї, геолокація, push-повідомлення, вбудовані датчики пристроїв, легко тестуються.
• Можливість перевірки вхідних переривань (дзвінків, SMS).
• Можливість тестування мобільного застосування в реальних умовах і умовах.
• Немає помилкових спрацьовувань.
Недоліки тестування мобільних додатків на реальних пристроях :
• Існує величезна кількість часто використовуваних пристроїв.
• Додаткові витрати на обслуговування пристроїв.
• Обмежений доступ до пристроїв, які часто використовуються в зарубіжних країнах.
Звичайно, не існує однозначних відповідей на те, яку стратегію краще всього обрати. Поєднання різних варіантів є найбільш оптимальним рішенням. Наприклад, ви можете використовувати симулятори на початкових етапах вашого тестування. Але краще використовувати реальні пристрої (фізичні або хмарні) на заключних етапах. Автоматизоване тестування краще для навантажувального і регресійного тестування.

Related posts

Leave a Comment

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.