«Чи можуть інструменти автоматизації тестування вивчати інтерфейс користувача застосунку так само, як його вивчає реальний користувач?» – саме це запитання поставила собі команда Tricentis, коли почала працювати над Vision AI.
Vision AI можна визначити як «інтелектуальний» рушій автоматизації тестування інтерфейсу користувача (UI), який дозволяє автоматизувати сценарії тестування без використання коду. Серед варіантів застосування його функціональних можливостей можна виділити на ситуації, коли визначення селекторів для автоматизації неможливе через ранній етап розробки (коли доступні лише макети) або необхідна перевірка складних структур і графічних елементів (наприклад, карт, діаграм) на веб-сайті. Цей інструмент також надасть можливість залучити нетехнічних користувачів, які володіють важливими знаннями про домен і процес тестування.
Під час розробки Vision AI компанія Tricentis використовувала машинне навчання як метод аналізу даних, завдяки якому движок інструменту, як і кінцевий користувач, може інтерпретувати різні екрани та об’єкти, доступні в застосунку. Крім того, у разі внесення змін до застосунку, що призвели до відмови під час тестування, модуль «Vision AI Self-Healing» дозволить Vision AI «самовідновити» сценарій на основі набутого «інтелекту».
Движок Vision AI інтегрований з інструментом Tricentis Tosca. Якщо вас цікавить Tosca, перегляньте статтю в блозі (польською мовою) на сторінці SII: Czy Tosca i podobne rozwiązania codeless są przyszłością testowania?
У цій статті ми детальніше обговоримо згадані на початку приклади використання Vision AI в ІТ-проєктах, зосередившись на аспектах, які відрізняють цей інструмент від «класичних» базових структур для автоматизації тестування.
Конфігурація
Щоб підготувати наше середовище до роботи з Vision AI, слід розпочати з конфігурації. Підготовку можна розділити на кілька етапів:
- реєстрація,
- вхід у систему,
- інсталяція,
- конфігурація з’єднання.
Реєстрація
Кожна компанія/установа/проєкт повинні підготувати нове середовище на Nexus Server. Адміністратор повинен надати доступ за запитом користувача. Після того, як користувач отримає інформацію про те, що доступ надано, можна входити в середовище.
Процес входу в систему
Для входу в систему ми будемо використовувати адресу https://authentication.app.tricentis.com/
На першому кроці нам потрібно ввести Назву облікового запису – назву нашої компанії, наприклад, SII, після чого ми зможемо натиснути кнопку «Продовжити».
На наступному кроці нам потрібно ввести нашу електронну пошту та пароль. Крім того, ми можемо поставити галочку «Запам’ятати мене», і, нарешті, будемо готові натиснути кнопку «Увійти в систему».
Після входу варто підготувати токен – він знадобиться для з’єднання з агентом Vision AI. Створити токен зручніше, ніж вводити облікові дані під час кожного запуску. Крім того, він забезпечує кращу стабільність в разі створення модулів за допомогою Vision AI і виконання тестів. Щоб згенерувати токен, натисніть кнопку «Додати новий».
Пам’ятайте, що дані токена видно тільки під час його генерації, тож важливо зберегти ці дані в блокноті для подальшого використання. Якщо ми цього не зробимо токеном неможливо буде користуватися, і доведеться створювати новий (і зберігати дані цього токена в блокноті). Зверніть увагу, що токен має термін дії; після його закінчення нам потрібно буде створити новий, а потім знову підключити його до наших сервісів. Але це кращий варіант, ніж щодня вводити облікові дані для агента Vision AI 😉.
Нижче ви можете знайти екран з прикладом токену «test» з усією інформацією про згенеровані дані. Ці дані слід скопіювати і зберегти в блокноті для подальшого використання (поруч з кожним значенням ви можете знайти іконку «копіювати»).
Інсталяція
Під час попередньої роботи з Tosca Commander ми вирішили не встановлювати компоненти Vision AI для Tosca під час інсталяції Tosca Commander – нам потрібно завантажити інсталяційний файл Tosca Commander знову (з огляду на версію, яку ми використовуємо) і запустити інсталяційний файл. Далі натискаємо кнопку «Змінити» > «Вибіркова установка» і кнопку «Далі». На наступному екрані нам потрібно встановити галочку в полі для Vision AI:
Потім нам потрібно натиснути ще одну кнопку «Далі» і підтвердити зміни кнопкою «Змінити». Після завершення процесу інсталяції ми повинні отримати підтвердження.
Конфігурація з’єднання
Нам потрібно запустити агента Vision AI (його було додано до Tosca Commander під час інсталяції). Це також окремий застосунок, який буде працювати під час сканування модулів і виконання тестів движком Vision AI, використовуючи кроки, підготовлені движком Vision AI.
Агент Vision AI доступний у панелі задач – щоб створити стабільне з’єднання за допомогою токена, потрібно натиснути правою кнопкою миші на іконку агента Vision AI і вибрати «Налаштування»:
Ми визначаємо правильну кінцеву точку Nexus Server для нашого середовища і встановлюємо з’єднання з раніше підготовленим токеном. Ми можемо зробити це за допомогою кнопки «Встановити токен». Наступні етапи інтуїтивно зрозумілі, а запити відображаються на екрані. Якщо токен було створено раніше і дані були збережені в блокноті, нам потрібно лише вставити правильні значення в поля.
Коли токен буде підключено до агента Vision AI, його потрібно буде закрити і перезапустити, після чого в застосунок мають бути завантажені нові налаштування.
Якщо ми плануємо проводити тести на DEX, нам потрібно попросити адміністратора створити обліковий запис на платформі Vision AI для користувача, який повинен увійти в систему під час тесту (наприклад, для користувача-бота). Також потрібно згенерувати токен для цього користувача, інсталювати агент Vision AI на віртуальну машину (ВМ) та з’єднати агент Vision AI з токеном. Додавання завдання запуску Vision AI на ВМ після запуску Windows має вирішальне значення.
Важлива інформація – Vision AI буде працювати тільки за умови підключення до Інтернету.
Якщо ви хочете дізнатися більше про конфігурацію, нижче розміщено посилання на документ Tricentis, у якому ви можете прочитати детальніше про документацію Vision AI.
Vision AI – приклади використання
Існує 3 основні способи використання Vision AI:
- побудова кроків за допомогою модуля Run Vision Script;
- сканування макетів інтерфейсу для підготовки попередніх тестів до написання коду програми, але коли дизайн інтерфейсу вже готовий;
- сканування зображень, графіків і застосунків є складним завданням для класичної автоматизації. Vision AI корисний у випадках, коли стандартні методи перевірки даних не є стабільними (наприклад, зчитування даних з графіків, збережених у форматі JPG/PNG).
Модуль Run VisionScript
Модуль «Run VisionScript», який можна знайти в розділі «Стандартні модулі» в Tosca, дозволяє керувати застосунком за допомогою ключових слів і структур, подібних до «природної мови».
Наведений нижче приклад (заповніть контактну форму на сайті Sii, щоб перевірити правильність валідації) ілюструє простий випадок використання модуля «Run VisionScript» у Tosca.
Після запуску сценарія будуть заповнені вказані поля форми, вибрана зі списку категорія і натиснута кнопка надсилання повідомлення. Нарешті, сценарій перевірить зміст і колір повідомлення про неправильне заповнення форми.
Структура модуля «Run VisionScript»
Розгляньмо структуру модуля «Run VisionScript» детальніше. Кожного разу в модулі ми повинні вказувати ім’я застосунку, що тестується. Потім, використовуючи ключові слова, ми виконуємо певні кроки тестування на сторінці. Розгляньмо кілька прикладів:
- «TYPE «Daria» IN ‘First name’ input» – введіть фразу «Daria» в поле «Ім’я».
- «CLICK IN the ‘Subject’ dropdown» – клацніть (в даному випадку розкрийте) випадний список з назвою «Тема».
- «CLICK the ‘Send message’ button» – натисніть кнопку «Надіслати повідомлення».
- «VERIFY color> 25% «red» FOR the ‘The field is required’ text» – ключове слово «VERIFY» активує перевірку. У цьому прикладі ми перевіряємо, чи більше 25 % пікселів у відображеному тексті є червоними.
Детальний опис усіх ключових слів можна знайти в документації Vision AI.
Сканування макета
В ІТ-світі дедалі більшої популярності набуває концепція «Shift Left» (зсув ліворуч), яка передбачає перенесення завдань, пов’язаних із забезпеченням якості, на початкові етапи процесу розробки програмного забезпечення. Завдяки цьому ми можемо виявляти та усувати проблеми (наприклад, неузгодженість вимог) раніше. А як відомо, чим раніше буде знайдено проблему, тим менше коштуватиме її виправити.
Движок інструменту Vision AI може інтерпретувати графічні об’єкти, що дозволяє нам створювати тести ще до того, як реальний застосунок і його код будуть готові. Для створення перших тестів нам потрібні лише макети.
Для демонстрації роботи движка Vision AI було використано графіку з сайту freepik.com («Колекція градієнтних елементів UI/UX»).
На скріншоті вище видно, наскільки ефективно Vision AI впорався з макетом, в основі якого був лише JPG-файл. Розгляньмо представлений приклад. У ньому XScan в Tosca правильно розпізнав такі елементи, як::
- елемент «кнопка», видимий у верхньому лівому кутку,
- заголовок розділу «Оновлення виділення»;
- заголовок розділу «профіль користувача»;
- графіка: фото «Россі» в контейнері «оновлення основних фактів» та «Адам Сулі» в «профілі користувача»;
- поле введення «шукати щось»;
- «повідомлення», щоб відправити повідомлення Адаму Сулі.
Приклад розділу «профіль користувача» було проскановано за допомогою движка Vision AI і створено модуль у Tosca. Потім за допомогою модуля було підготовлено крок тестування.
Було перевірено видимість усіх графічних елементів і текстів. Також було перевірено, чи можна натиснути кнопки «стежити» та «повідомлення». На скріншоті нижче показано результати виконання тесту, зведені в Список виконання у Tosca.
Підготовлені таким чином попередні тести можуть значно полегшити комунікацію з аналітиками та бізнесом і значно прискорити процес побудови цільових тестів на наступних етапах розробки застосунків.
Сканування графічних елементів
Vision AI може допомогти з автоматизацією тестування нестандартних елементів – наприклад, збору даних з мапи або графіка з даними.
Є лише одна умова – зображення/графік/мапа повинні бути чітко видимими, з хорошою різкістю та роздільною здатністю. Vision AI використовує ті ж правила, що і людина для зчитування даних з цих артефактів. Якщо об’єкт на зображенні розмитий, є ризик, що правильні модулі та тести реалізувати не вдасться. У такій ситуації ми не зможемо застосувати автоматизацію, навіть якщо новітні технології її підтримують.
Vision AI також є вдалим варіантом для застосунків з гарним інтерфейсом, але низькою якістю коду і великою кількістю нестандартних рішень, що ускладнює створення сценаріїв автоматизації за допомогою стандартних інструментів.
Приклад тесту з верифікацією даних за допомогою Vision AI
Нижче наведено приклад тесту, в рамках якого виконується перевірка даних за допомогою Vision AI:
Середовище:
Chrome (версія 124.0.6367.62), режим інкогніто.
Тестові дані:
Категорія статті: Development na miękko (Розробка – м’який спосіб)
Підкатегорія статті: Salesforce
Назва: Odkrywanie potencjału Salesforce Maps – przegląd narzędzia (Розкриття потенціалу Salesforce Maps)
Автор статті: Міхал Найдора
Дата публікації: 23 лютого 2024 року
Опис зображення: Ryc. 2 Salesforce Maps – klienci z różnych regionów ze zróżnicowanym sposobem wyświetlania (znaczniki, heatmapa, klastry) (Зображення 2 Salesforce Maps – клієнти з різних регіонів з різноманітними налаштуваннями відображення (теги, теплова карта, кластери).
Місто: Гданськ (Гданськ на мапі)
Кроки:
- Відкрийте сторінку https://sii.pl/ у браузері Chrome.
- Прийміть всі файли cookie на сторінці.
- Перевірте, чи видно посилання на блог.
- Перейдіть за посиланням на блог.
- Виберіть відповідну категорію статті.
- Натисніть «Читати далі», щоб побачити розділ підкатегорії статті.
- Виберіть відповідну підкатегорію статті.
- Перевірте, чи у списку відображається правильна стаття (перевірте назву, автора, категорію, дату публікації).
- Перейдіть за посиланням на статтю.
- У статті знайдіть зображення з описом, що відповідає тестовим даним.
- Перевірте, чи видно зображення.
- Перевірте елементи зображення – чи видно іконку «Шари» та іконку «Зберегти зміни». Наведіть вказівник миші на назву міста, поміщену в буфер обміну з тестових даних.
- Закрийте браузер.
- Видаліть усі використані буфери.
Крок 12 буде виконано за допомогою модуля, підготовленого з використанням движка Vision AI.
Під час сканування зображень за допомогою движка Vision AI ми можемо розпізнавати стандартні елементи, такі як згадані вище кнопки, та об’єкти на мапі, такі як назви міст і річок. З нашого зображення ми можемо зчитати кілька назв міст, тому для блоку багаторазового тестового кроку ми додали бізнес-параметр «Місто» і з’єднали його з буфером з такою ж назвою, щоб мати змогу встановити інші назви міст, ніж у тестових даних (наприклад, «Вроцлав»). Крім того, їх можна буде знайти на мапі.
Нижче ви можете знайти запис виконання тесту.
Тест з кроками Vision AI – виконання (відео)
Функція самовідновлення Vision AI
Оскільки Vision AI використовує машинне навчання як метод аналізу даних і може інтерпретувати елементи інтерфейсу як «реальний» користувач програми, в тести вдалося включити функцію «самовідновлення».
Щоб активувати механізм самовідновлення Vision AI, ви повинні дозволити застосунку зберігати історію тестів у хмарі. Це дозволить Vision AI аналізувати зображення з тестових запусків, «вивчати» інтерфейс і створювати кілька стабільних альтернатив для пошуку елементів застосунку, які використовувалися в тесті.
Наступним кроком буде пошук модуля «Самовідновлення Vision AI» і його додавання в якості тестового кроку до сценарію відновлення в Tosca, як показано на скріншоті нижче.
На прикладі кнопки надсилання форми, наведеному раніше в статті, розгляньмо ситуацію, в якій може спрацювати тестовий механізм «самовідновлення». Якщо ця кнопка змінить колір або положення, Vision AI все одно зможе правильно розпізнати елемент. Динамічні ідентифікатори або зміна назви класу також не завадять інструменту правильно ідентифікувати кнопку.
Щоб продемонструвати механізм «самовідновлення», ми змінили вигляд кнопки внизу форми, як показано на скріншоті нижче.
Змінилися наступні елементи: ідентифікатор, назва, класи, що відповідають за розмір і колір елемента, а також мітка кнопки. У першій ітерації Tosca не змогла знайти кнопку, тому спрацював механізм «самовідновлення». Модуль «Самовідновлення Vision AI» спрацював коректно, і, незважаючи на внесені зміни, на другій ітерації Tosca змогла натиснути кнопку.
Sandbox (помічник VisionAI)
Якщо ви не знайомі з можливостями Vision AI – не хвилюйтеся, Tricentis надасть нам Sandbox – помічника Vision AI, який дозволяє нам перевірити багато варіантів і рішень Vision AI. Це середовище доступне так само, як і для інших компонентів Vision AI – адміністратор повинен створити для нас обліковий запис (посилання на середовище).
Після відкриття сторінки натисніть «Запустити помічника»:
Після цього виберіть зі списку агента Vision AI (його назва буде співвіднесена з назвою нашого комп’ютера).
Після запуску правильного агента Vision AI всі вікна із застосунками завантажуються до списку елементів, «видимих» для Vision AI. Ми можемо вибрати один елемент зі списку і почати будувати наш сценарій на основі видимих елементів.
Якщо ми виберемо один з елементів, ми зможемо редагувати його завантажені значення і додавати кроки до і після нього. Ми маємо наступні варіанти:
- вибрати вікно,
- перезавантажити вікно,
- просканувати зображення,
- імпортувати сценарій,
- встановити інтерактивний режим для елемента (натиснути, ввести, зберегти),
- перевірити,
- запустити сценарій,
- зберегти сценарій і багато іншого.
Ми можемо в будь-який момент повернутися до нашого інструмента Sandbox (помічника Vision AI), і підготовлені кроки збережуться та будуть доступні.
Кожен доданий крок можна:
- редагувати,
- видалити,
- копіювати,
- вирізати,
- пересувати вгору/вниз тощо.
Ми можемо додавати різні кроки, наприклад, цикли:
- ЯКЩО,
- ДОКИ,
- ПОВТОРЮВАТИ ДО ТИХ ПІР, ПОКИ,
- ЧЕКАТИ ДОКИ,
- ЗБІЙ СПРОБИ,
- РАЗОМ З.
Ми також можемо імпортувати сценарій у форматі «.vs» як крок. Існує безліч можливостей, які варто дослідити окремо, щоб зрозуміти, для чого використовується Vision AI.
Обмеження Vision AI
Як і у всіх інструментів, у Vision AI також є свої обмеження. Деякі з них описала компанія Tricentis:
- Розпізнавання тексту працює з англійським алфавітом, тому неанглійські літери/знаки можуть бути інтерпретовані неправильно. Приклади – польська мова: ą, ę, ł, ó, ś, ć, ż, ź, dź, dż. Алфавіти, відмінні від латиниці, не працюватимуть взагалі (наприклад, арабська, кирилиця, кандзі, ханджі).
- За допомогою Vision AI ми не можемо керувати вікнами, призначеними для адміністраторів операційної системи Windows.
- Елементи, невидимі в інтерфейсі, будуть недоступні для Vision AI. По-перше, нам потрібно прокрутити сторінку вниз (використовуючи модуль не від Vision AI) або перейти до правильного вигляду, щоб інструмент Vision AI зміг перевірити елементи. Для цього можна використовувати типові модулі/кроки.
- Vision AI може мати проблеми з керуванням таблицями, особливо якщо не всі рядки/стовпці видно на одній сторінці/області/представленні.
- Vision AI навчається на основі наданих даних, тому на початку використання цього інструменту можливе неправильне розпізнавання об’єктів – цей час слід вирахувати в процесі тестування. Що частіше використовувати інструмент, то більше буде правильних розпізнавань.
Підсумок
Vision AI – це перспективний інструмент, який допомагає створювати тести там, де використовувати стандартні інструменти складно. Звичайно, він не буде найкращим варіантом для всіх без винятку проєктів і не замінить розробників тестів, оскільки кроки тестування потрібно будувати з розумінням бізнес-процесів. Vision AI відкриває можливості для автоматизованого тестування ти елементів, які досі можна було тестувати лише вручну. Для «стандартних» сценаріїв швидшими та надійнішими є інші механізми автоматизації, доступні в Tosca Commander.
Використання Vision AI дозволяє нам створювати перші начерки кроків у ситуаціях, коли розробка ще не закінчена – наприклад, коли доступні лише макети інтерфейсу. Щоправда, модулі, створені за допомогою макетів, можуть потребувати доопрацювання в майбутньому, але при цьому вдасться зекономити багато часу. Для деяких типів проєктів це рішення стане перевагою і змінить правила гри для розробників-тестувальників.
Варто перевірити можливості Vision AI самостійно і подружитися з цим інструментом, який допоможе вам у повсякденній роботі.