Сказати, що штучний інтелект (ШІ) спричинив революцію в розробці програмного забезпечення, не було б перебільшенням. Зокрема, ШІ значно вплинув на тестування програмного забезпечення. У цій статті ми хотіли б детальніше розглянути, як ШІ впливає на тестування та автоматизацію тестування.
Штучний інтелект і великі мовні моделі зараз в тренді і на те є вагомі причини. Великі мовні моделі (ВММ) – це надзвичайні алгоритми, які є вагомою підгалуззю ШІ. Проте, вони не є вичерпним переліком можливостей штучного інтелекту або навіть машинного навчання. Вони не є ні загальним ШІ, ні ШІ, яким ми його знаємо, але вони добре підходять для досягнення нових типів автоматизації розробки та тестування програмного забезпечення. Розглянемо, як це відбувається.
Як штучний інтелект змінює тестування програмного забезпечення та автоматизацію тестування?
За останні десятиліття тестування програмного забезпечення зазнало численних трансформацій. Воно почалося з ручного тестування, перейшло до автоматизованого тестування, а тепер перейшло до стратегій тестування, орієнтованих на штучний інтелект. У деяких сферах ШІ вже використовується в QA. Давайте детально розглянемо деякі з ключових ролей застосування штучного інтелекту в сфері контролю якості.
Основні інструменти ШІ та їх застосування в тестуванні програмного забезпечення:
-
Код та коментарі були створені та автоматично доповнені за допомогою GitHub Copilot. Кілька рішень для автоматизації тестування в нашій компанії вже скористалися перевагами цього сервісу. Це один з найкращих сервісів з використанням штучного інтелекту в нашому списку.
-
ChatGPT – популярна система штучного інтелекту. Інженеру з тестування ChatGPT допоможе згенерувати тестові кейси відповідно до вимог, матриці трасування, плани та стратегію тестування, тестові дані, SQL запити, клієнт API, локатор XPATH для елементів, регулярні вирази та багато іншого. Повертаючись до автоматизації тестування, ChatGPT може створювати утиліти/помічники, тестові дані, генерацію коду тощо. Існують також платні версії з більшою кількістю функцій і можливостей, де ви можете тренувати і використовувати власні користувацькі моделі GPT. ChatGPT Plus готує ваші власні GPT, навчені на ваших даних, створених користувачем документах (інструкціях, кращих практиках, політиках), зображеннях або інших файлах, які у вас є, допомагає планувати стратегію тестування і розробляти повний план тестування, включаючи тестові кейси, допомагає в перегляді макетів під час розробки. Це лише приклади найпопулярніших застосувань ChatGPT.
Огляд ШІ в автоматизації кінцевого тестування
Розробники програмного забезпечення впроваджують штучний інтелект у процедури автоматизації тестування, щоб він міг генерувати код і виконувати тести на основі тестового випадку або вимог. Озираючись назад, ми бачимо знайому відповідь: до 2023 року на ринку існували співставні фреймворки. Деякі з них стверджували, що автоматично лікують локатори (Selenium Reinforcement Learning, Healenium, Testim тощо), а деякі навіть стверджували, що генерують код для автоматизованих тестів на основі тест-кейсів.
Основні недоліки рішень для автоматизації тестування на основі ШІ
Загальна ідея полягає в тому, що ми повинні мати можливість автоматично виправляти тест до того, як він дасть збій, а в ідеальному світі – навіть не писати тест, а доручити це зробити за нас ШІ-фреймворку. Це звучить як чудова ідея, але якби це було правдою, нам би не довелося використовувати Selenium та інші тестові фреймворки, які, як і раніше, вимагають кодування та інженерів.
-
Повільність: Відправляємо дані на бекенд ШІ, даємо йому їх обробити і тільки потім відправляємо назад клієнту.
-
Стабільність: Неможливо протестувати згенерований код на 100 відсотків; після зміни користувацького інтерфейсу згенерований код все ще потребує перевірки (він буде помилковим, як і будь-який згенерований код, і його потрібно виправити). Ми не хочемо покладатися на таке тестування (а отже, і на довіру) під час генерації коду.
-
Залежність від інших обгорток: Наші експерименти показали, що популярні бібліотеки ШІ використовують різні бібліотеки для доступу до сервісів ШІ, таких як OpenAI API, default або подібних, тому з'являються додаткові залежності.
-
Вартість: Інструменти, що працюють на основі ШІ, зазвичай вимагають щомісячної або щорічної оплати підписки.
Ці недоліки роблять засоби автоматизації тестування користувацького інтерфейсу на базі ШІ менш популярними, ніж оригінальні інструменти з відкритим вихідним кодом, як-от Selenium, Cypress, Playwright і WebDriver.IO.
Auto Playwright
Ця обгортка встановлюється на Playwright і викликає OpenAI API під капотом, щоб згенерувати код і локатори на основі DOM-моделі сторінки. Щоб мати можливість створювати і запускати тести, вам необхідно використовувати свій токен OpenAI API. Під час тестування ми виявили деякі обмеження: Auto Playwright, природно, виконується повільніше, ніж Playwright, оскільки в OpenAI надсилається вся сторінка. Вартість використання залежить від кількості надісланих токенів; ми обробляли приблизно 10 HTML-сторінок, і це становило близько $0,1-$0,5 за 10 викликів API (або кроків), але ціна була знижена протягом кількох місяців і тепер вона дешевша. Тому, щоб скоротити витрати, Auto Playwright використовує бібліотеку HTML sanitiser, яка зменшує розмір HTML-документа. З погляду якості тести були працездатні лише для тривіальних сценаріїв використання в англомовних веб-додатках. У складніших випадках тести не виконувалися через відсутність локаторів або таймауту.
ZeroStep
Кілька експериментів із ZeroStep показали, що він швидший, ніж Auto Playwright. ZeroStep працює через свій бекенд, але під капотом знаходиться OpenAI. Щоб працювати з ним, вам потрібно зареєструватися на їхньому сайті, а після реєстрації вони дадуть вам токен для тестів. У безкоштовній версії є обмеження на 500 викликів функцій ШІ на місяць (на момент прочитання цієї статті воно може бути іншим), а якщо ви заплатите 20 доларів на місяць, то зможете викликати не більше ніж 2000 (знову ж таки – на момент прочитання цієї статті воно може бути іншим). Цей фреймворк працює з тією ж швидкістю, що й Auto Playwright, але повільніше, ніж початковий фреймворк Playwright. Під час роботи з цим фреймворком у нас виникли проблеми з веб-сайтами іншими мовами, і ми помітили, що не всі англійські елементи керування розпізнаються в англомовних веб-додатках.
Порівняння фреймворків Auto Playwright та ZeroStep
Критерії порівняння |
Auto Playwright (PoC) |
ZeroStep (комерційний) |
Використовує API OpenAI |
Так |
Так |
Використовує санітизацію HTML |
Так |
Ні |
Використовує API Playwright |
Так |
Ні Використовує деякі API Playwright, але в основному покладається на протокол Chrome DevTools Protocol (CDP). |
Знімки/кешування |
Ні |
Так |
Реалізація паралелізму |
Ні |
Так |
Ліцензія |
MIT |
MIT |
Дозволяє прокрутку |
Ні |
Так |
Auto Playwright – це радше доказ концепції, ніж готовий до використання комерційний інструмент. ZeroStep, з іншого боку, є комерційним інструментом. Проте його повільність, відсутність належної ідентифікації управління та інші обмеження не дають змоги використовувати його як заміну оригінального Playwright.
Генерація тестових сценаріїв на основі вимог – чудова ідея, і в демо-версіях вона виглядає просто фантастично. Але вона все ще далека від комерційного використання через вартість генерації та виконання коду, низьку швидкість виконання коду, некоректне опрацювання складніших веб-додатків і відсутність підтримки динамічних елементів, які з'являються в моделі DOM лише після того, як користувач виконує якісь дії в призначеному для користувача інтерфейсі. Ми вважаємо, що з часом ця технологія значно покращиться. Вона буде використовуватися як мінімум для простих димових тестів.
Як візуальний аналіз за допомогою ШІ покращує тестування додатків
Невізуальні інструменти та сервіси також покладаються на ШІ для виконання AS. Під час тестування ці рішення приймають зображення на вхід, обробляють їх і видають на виході. Такі сервіси відносяться до різних завдань тестування, таких як генерація тестів, зворотний зв'язок/звіт про якість, порівняння зображень, операції OCR, складні PDF-документи тощо.
-
Публічна поява таких моделей ШІ, як GPT 4 Turbo with Vision, відкрила величезний простір для тисяч стартапів і продуктів.
-
App Quality Copilot – один із сервісів, який надає найкращі відгуки на основі скріншотів. Це новий сервіс на ринку – перша його публічна версія з'явилася на початку 2024 року. Він забезпечує три основні функції:
-
Генерація та виконання мобільних автотестів (UI end-2-end) на основі вимог.
-
Звіт про помилки на картинках із мобільних застосунків, десктопів і мобільних браузерів, з інформацією, зібраною з різних поглядів і в різних галузях: функціонал, проблеми перекладу, UI/UX, відсутні дані, биті зображення тощо.
-
Генерація тест-кейсів на основі вимог.
Проблеми впровадження інструментів ШІ для автоматизації тестування і тестування
Але світ ШІ змінюється щодня. По-перше, на ринку ШІ існують не сотні, а тисячі інструментів. Більшість із них – просто обгортки над п'ятьма найкращими рушіями ШІ (OpenAI, Gemini, Anthropic Claude API тощо).
Основні проблеми, з якими ми стикаємося під час впровадження інструментів ШІ для автоматизованого тестування є такими:
-
Ринок продуктів для ШІ був нестабільним і мінливим. Лідери постійно конкурували один з одним, випускаючи нові функції, знижуючи ціни та покращуючи продуктивність своїх моделей.
-
Існують тисячі інструментів і обгорток, але тільки деякі з них цікаві і варті того, щоб їх спробувати.
-
Питання безпеки та конфіденційні дані мають бути в пріоритеті. Постачальники ШІ враховують ризики і забезпечують певну безпеку. Політики безпеки мають бути ретельно продумані і перед використанням будь-яких інструментів ШІ з конфіденційними даними з клієнтом необхідно укласти кілька додаткових угод.
Висновки
Технології ШІ можуть багато в чому підвищити ефективність роботи, тому ми повинні їх використовувати. Чим більше технологій штучного інтелекту ми розробляємо, тим більше можливостей використовувати їх для більш ефективного тестування програмного забезпечення. Дуже важливо запобігти неправильному використанню технологій і не допустити витоку даних через них.