-
-
-
-
URL copied!
Автор: Антон Пелянський, Test Engineer, Quality Assurance, Consultant, GlobalLogic Ukraine
Основне завдання інженерів автоматизованого тестування - це перевірка продукту, який ви розробляєте на відповідність вимогам, які були визначені замовником.
Серед інших, не менш важливих задач є:
- Вивчення вимог до застосунку та інших проєктнихпроцедурних документів.
- Створення документації.
- Стратегія тестуванняТест планТест репорт.
- Матриця TraceabilityТест протоколи.
- Валідація тестових інструментів.
- Розробка тестового фреймворку автоматизації.
- Підняття проєкту для запуску автотестів.
- Опис інструкції по підняттю проєкту та запуску тестів.
А тепер про все це поговоримо детальніше.
З чого починається інженер автоматизації мобільного тестування?
З документації. Об’єм документації є різний та різниться в залежності від проєкту та домену у якому ви працюєте. Першим кроком на початку роботи є аналіз вимог, тобто визначення очікувань від системи у розробці. Надається він замовником і цю процедуру слід робити обов’язково, щоби чітко розуміти, що ви розробляєте та яким вимогам ваш продукт повинен відповідати. Аналіз вимог дещо поєднує роботу QA інженера з бізнес-аналітикою.
Аналіз документів вам надасть:
- Фундамент для тест плану та дизайну тестів.
- Розуміння очікуваного функціоналу продукту.
- Поширення розуміння на всю команду.
- Узгодження з планом розробки.
- Виправлення нечітких вимог, які неможливо перевірити.
У випадку з мобільними технологіями, особливу увагу потрібно звертати на вимоги по дистрибуції та по підтримці пристроїв. На ринку присутня досить велика кількість різноманітних пристроїв.
Є дві глобальні операційні системи iOS та Android, і різні версії цих систем підтримуються на різних пристроях. Зверніть особливу увагу на вимоги по сумісності: вони можуть як змусити вашу команду підтримувати застарілі пристрої, так і намагатись наздогнати тенденції ринку. Це допоможе зробити процес розробки та тестування більш ефективним. Що ж стосується дистрибуції - шляху передачі продукту до замовника, - то вона має бути заздалегідь чітко визначена і описана у відповідному документі, на кшталт Design Transfer Plan.
Підбір тестових пристроїв
Підбір тестових пристроїв це ще одна особливість, яка обов’язково має бути проговорена з замовником. Адже це допоможе вам визначити еталонні пристрої для тестування продукту.
При розробці кросс-платформенних застосунків, якщо у вас з самого початку зазначено, що продукт має бути і на iOS, і на Android, варто мати хоча б один фізичний пристрій для тестування для кожної окремої мобільної системи. Тут також варто зазначити, що підбір необхідної версії операційної системи для еталонних пристроїв залежить від вимог до застосунку.
Архітектура
Аби чіткіше розуміти, з чим ви матимете справу, пропоную розібратися в архітектурі заліза. Отож, поточна архітектура у iOS пристроях є arm64 (або ARMv8.0). Вона використовується у пристроях починаючи з iPhone 5S та iPad Air та підтримується версією iOS 7.0 та вище.
Більше, на зображенні нижче:
Якщо ж у вас написано у вимогах, що ваш продукт повинен підтримувати всі види архітектури заліза iOS (або ж це не вказано специфічно), вам варто звернути увагу на чинні архітектури та показати, що ви можете обмежитися лише архітектурою arm64, адже всі сучасні телефони підтримують саме її. Якщо у вимогах не прописано кінцевий пристрій, то всі інші архітектури можна прибрати з вимог, адже вони є вже дещо застарілими.
Нижче наведена табличка по розподілу архітектури центральних процесорів і архітектури на i- пристроях.
Всі дані, що наведені в табличці, можуть змінитися буквально за рік, тому надзвичайно важливим є слідкувати за тенденціями, цікавитися змінами, що стаються на ринку, аби завжди володіти актуальною інформацією.
Що ж стосується Android, то тут усе простіше.
У них дві основні архітектури - на ARM процесорах це armeabi-v7a (це 32- розрядна архітектура) та arm64-v8 - це 64-розрядна архітектура. Також є дві версії для процесорів Intel - це x_86 (для 32-розрядних процесорів) та x86_64 (для 64-розрядних процесорів). Варто зазначити що відсоток пристроїв що працюють на архітектурах x86 та x86_64 станом на 2017 рік складав 1.7%.
Як поширюються ті чи інші версії Android, можна дізнатися з графіку:
Оскільки є немало версій iOs та Android, а девайсів може бути понад 50 - то виникає логічне запитання:
Як нам все це перевірити?
Для цього є кілька доступних сервісів.
#1 Firebase Test Lab
Це хмарна інфраструктура для запуску тестів на мобільних пристроях. Цей сервіс підтримує запуск тестів на Android та iOS на цілому спектрі пристроїв, а також розуміє автоматизовані тести, написані на UIAutomator та Espresso для Android, а також XCTest для iOS.
Є безкоштовна версія, яка дозволяє запустити до 5 тестів на реальних пристроях і до 10 тестів на віртуальних пристроях за добу.
Firebase Test Lab є досить корисним сервісом, якщо ви тільки починаєте знайомитись з мобільною автоматизацією, а от для проєктних цілей безкоштовна версія не дуже підходить.
#2 Amazon Device Farm
Це сервіс для тестування мобільних додатків з хмарною інфраструктурою, який підтримує понад 170 різних мобільних пристроїв для запуску паралельних тестів. Amazon Device Farm підтримує більшість тестових фреймфорків для автоматизації, включаючи Appium, UIAutomator та XCTest. Перші 100 хвилин роботи тестів надаються сервісом безкоштовно. Якщо цього часу вам виявиться недостатньо, Amazon Device Farm пропонує платну підписку.
Емулятори vs Симулятори
Ви також можете обмежитися використанням емуляторів та симуляторів на вашій локальній машині. Про те, який у них контекст у плані мобільного тестування розповім далі.
Почнемо з різниці між ними:
- Симулятор відтворює виконання коду без прив’язки до середовища запуску коду (тобто це перевірка суто логіки виконання програми, тому у випадку якщо ця логіка зав’язана на залізі, то ця перевірка не пройде).
- Емулятор відтворює принципи роботи системи пристрою зі збереженням ключових властивостей та аспектів роботи. Емуляція відтворює код у необхідному для нього середовищі.
На iOS зараз доступні лише симулятори, а на Android - емулятори. А тепер пропоную розглянути як все працює та відбувається наживо.
Запуск iOS симулятора через Xcode: покрокова інструкція
- Встановити Xcode через AppStore.
- Запустити Xcode.
- Вибрати бажаний пристрій зі списку доступних симуляторів.
- Запустити симулятор.
Виглядає це все так: відео.
Запуск Android емулятора через Android Studio:покрокова інструкція
- Встановити Android Studio.
- Запустити Android Studio.
- Відкрити Android Virtual Device Manager.
- Створити профілі бажаних пристроїв.
- Запустити емуляцію пристроїв.
Виглядає це наступним чином: відео.
Що ж, розібралися з Android емулятором, і тепер поговоримо про Appium.
Хто такий цей ваш Appium?
У вас є емулятори, у вас є хмарні сервіси, які запускають тести. Відповідно, ці тести треба якимось чином написати. І саме тут нам допомагає Appium. Це фреймворк автоматизації тестування з відкритим кодом, який використовує WebDriver для керування iOS та Android пристроями.
Appium дозволяє тримати тести для iOS та Android в одному фреймворку і використовувати одні й ті самі тести для обох платформ. Він підтримує тести, що написані на:
- Java (TestNG, JUnit)
- JavaScript (node.js)
- Python
- PHP
- Ruby
Отож, ви пишете тести тією мовою, яка вам більше до вподоби, після чого ці тести передаються на Appium сервер, написаний на Node.js, а далі Appium сервер переганяє саму логіку та назву локаторів та передає кінцеві тести на емулятори, або кінцеві пристрої.
Для Android використовується UIAutomator, для iOS - XCUITest.
Як це виглядає у коді? А ось так.
Ось, власне і все. У цій колонці ми розібрали, як запускати тести, а також як налаштовувати маленьку локальну ферму. Надіюсь, мені вдалось допомогти вам сформувати загальне уявлення того, яким чином можна розробляти автотести та як запускати їх на емуляторах.
Top Insights
Python: чому вивчати та з чого почати?
InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТонкощі CV або Як скласти та куди надіслати,...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyCI/CD для JS розробників. Частина перша – теорія
DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologySoft and Hard Skills: Що важливіше? Розповідь одного...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТОП автори
Категорії блогів
Давайте співпрацювати
Схожі теми
Мережеві основи
Основні поняття мереж Мережі забезпечують зв'язок між комп'ютерами, пристроями та користувачами навіть на великих відстанях. Вони є основою для спільної роботи, комунікації та обміну ресурсами. Мережа — це система, у якій два або більше комп'ютерів та інших пристроїв з'єднані між собою для обміну даними та ресурсами. Вони можуть бути локальними (LAN), розширеними (WAN), бездротовими (Wi-Fi) … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Основи операційних систем
Windows, Linux, macOS: порівняння та особливості У світі комп'ютерів три операційні системи відіграють ключову роль: Windows, Linux та macOS. Кожна з цих систем має свої унікальні особливості та призначення, що робить їх популярними серед різних категорій користувачів. У цій статті ми розглянемо ці три операційні системи, їхні переваги та особливості. Windows Windows — найпопулярніша операційна … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Основи інформатики та програмування
Вступ до інформатики та IT-сфери Інформатика та технології інформаційної обробки є дверима в швидкоплинну та захоплюючу сферу — сферу інформаційних технологій (IT). У світі, де відсутність доступу до інформації може виявитися прогресивною перешкодою, розуміння основ інформатики та IT-сфери стає критичним для кожної людини. Що таке інформатика та IT-сфера? Інформатика — це наука про обробку та … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Як зберігати і підвищувати власну продуктивність в ІТ
Артур Мицко, Lead Software Engineer, GlobalLogic У компанії Globallogic я пройшов шлях від С++ trainee до Lead Software Engineer. Як зазвичай буває, коли людина приходить в ІТ-компанію вперше — все навколо нове та цікаве, ти не помічаєш як летить час. Чесно кажучи, в перші роки я не сильно то і відпочивав, переважно на свята. Це, … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Як покращити ресурсний стан через оточення
Катерина Васильєва, Senior HRBP, GlobalLogic Ресурсний стан як поняття, яке використовується в психології, медицині, спорті та інших галузях, описує психофізіологічний стан людини, який характеризується рівнем її енергії, витривалості, здатності до праці та концентрації уваги. Відповідно, ресурсний стан впливає на різні аспекти життя людини, і визначається різними чинниками, як то рівень фізичного здоров'я, ступінь стресу або … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Як стати .NET розробником. Перші кроки та поради
Олексій Глембицький, Senior Software Engineer, GlobalLogic Мене звати Глембицький Олексій, я .NET розробник в компанії GlobalLogic, а також проводжу вебінари та викладаю курси по мові програмування С#. І в цій статті я би хотів поділитись порадами, які допомагають моїм студентам опанувати мову програмування С# та стати .NET-розробниками. Про мову програмування C# та платформу .NET C# … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Як покращити презентації
Денис Братчук, Engineering Director, GlobalLogic Майже кожен з нас час від часу виступає із презентаціями чи доповідями, використовуючи як ілюстрацію слайди, створені в популярних офісних програмах, на кшталт PowerPoint або Google Slides. Менеджери проєктів створюють звіти про хід виконаних робіт, інженери презентують новітні технологічні рішення, керівництво звітує про досягнення фінансових цілей, а менеджери з продажів … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Від студента до Trainee-спеціаліста: історія випускника С++ GL BaseCamp
Почати шлях в ІТ під час навчання в університеті — ще той виклик, який вимагає наполегливості і постійної практики. Сергій Піскурський, студент та Trainee Specialist GlobalLogic, приєднався до компанії після проходження С++ GL BaseCamp. Хлопець поділився досвідом навчання перед курсом та підготовки до С++ GL BaseCamp. Чому ти вирішив вивчати С? Коли я почав думати … Continue reading Автоматизоване мобільне тестування: перші кроки →
Більше
Share this page:
-
-
-
-
URL copied!