У міру того як ІТ-директори та команди розробників дедалі частіше використовують генеративний штучний інтелект, команди QA також повинні адаптувати свої методи безперервного тестування, щоб не відставати від них.
Генеративний штучний інтелект, ChatGPT і великі мовні моделі (LLM), такі як GitHub Copilot та інші інструменти генерації коду ШІ, змінюють практику розробки ПЗ і продуктивність праці. За даними дослідницької компанії McKinsey, розробники, які використовують інструменти генеративного штучного інтелекту, щасливіші, продуктивніші і можуть зосередитися на більш значущій роботі. Згідно з цим звітом, штучний інтелект може допомогти розробникам прискорити документування, генерацію коду і рефакторинг на 20-50%. Отримані дані дають змогу припустити, що дедалі більше ІТ-директорів і команд devops експериментуватимуть із генеративними можливостями ШІ для підвищення продуктивності розробників і прискорення модернізації застосунків.
Якщо генеративний ШІ допомагає прискорити кодування і розробку ПЗ, то чи йтимуть тестування і забезпечення якості в ногу з цим прискоренням? На жаль, історія показує, що практика тестування відстає від підвищення продуктивності розробки та автоматизації devops.
Наприкінці 1990-х років Кент Бек дав визначення розробці, керованій тестами (TDD), а автоматизація тестування існує вже певний час, проте багато компаній, як і раніше, недостатньо інвестують у тестування ПЗ. Безперервне тестування відстає від інвестицій в автоматизацію розгортання за допомогою CI/CD, складання інфраструктури як коду (IaC) та інших практик devops. У міру того як все більше організацій використовують devops для збільшення частоти розгортання, перед командами постає завдання впровадження безперервного тестування, використання прапорів можливостей, впровадження релізів Canary і додавання можливостей AIops.
Ось три способи, за допомогою яких розробники та команди можуть адаптувати безперервне тестування до нового середовища розробки з можливостями генеративного ШІ.
Збільшення "покриття" тестами
Як перший крок командам забезпечення якості (QA) слід очікувати збільшення кількості стороннього коду, створюваного генеративним штучним інтелектом, і додати інструменти та засоби автоматизації для перевірки та позначки такого коду. "Найближчого року популярність інструментів генеративного штучного інтелекту зростатиме, що значно збільшить швидкість роботи, але водночас створить ризики для безпеки", – каже Мередіт Белл, генеральний директор компанії AutoRABIT. "Командам необхідно вже зараз впроваджувати статичний аналіз коду та автоматизацію інтеграційних тестів, щоб стати захистом для цієї нової технології".
Статичний і динамічний аналіз коду, включно з SAST, DAST та іншими тестами безпеки коду, є ключовими інструментами для команд розробників, які прагнуть використовувати код, створений штучним інтелектом, або інтегрувати відкритий код та інші приклади кодування, запропоновані LLM. Ці тести дають змогу виявити вразливості безпеки та проблеми з форматуванням коду, незалежно від того, чи був він згенерований розробником або штучним інтелектом.
Автоматизація тестових завдань
Команди QA також повинні очікувати, що команди devops розроблятимуть функції швидше, що призведе до збільшення кількості тестових випадків, які потребують автоматизації. Якщо тестування програмного забезпечення не встигає за швидкістю розробки та кодування, то як і де генеративні інструменти штучного інтелекту можуть заповнити цю прогалину? Муш Хонда, головний архітектор з якості компанії Catalon, пропонує: "Тести, що генеруються штучним інтелектом, засновані на реальних маршрутах користувачів, повинні поєднуватися з візуальним тестуванням, перевіркою доступності та порівняльним аналізом продуктивності в браузерах і на пристроях, щоб гарантувати, що всі версії відповідають вимогам наскрізного користувацького досвіду".
Емілі Арнотт, менеджерка з контент-маркетингу компанії Blameless, навпаки, вважає, що QA також повинні розглянути можливість використання LLM для генерації та автоматизації більшої кількості тестових випадків: "Автоматизація тестування може використовувати інструменти штучного інтелекту, такі як LLM, щоб стати швидшою і гнучкішою. LLM дають змогу запитувати сценарій природною мовою, тож можна сказати: "Напишіть мені сценарій, який тестує цей шматок коду з кожним введенням із цього лог-файлу", і він працюватиме".
Масштабування та управління тестовими даними
Ще один момент, якого слід очікувати, – це збільшення складності тестів. Наприклад, при створенні тестових прикладів для пошукової системи можна використовувати маршрути користувачів і популярні ключові слова, що фіксуються в лог-файлах та інструментах спостережливості. Однак у міру того, як дедалі більше компаній освоюватимуть LLM і AI-пошук із використанням інтерфейсів запитів і підказок природною мовою, тестові приклади повинні будуть ставати дедалі відкритішими. Щоб задовольнити цей попит, QA знадобиться набагато більший і динамічніший набір тестових даних. Команди Devops повинні шукати способи автоматизації тестування застосунків, розроблених із використанням LLM та інтерфейсів запитів природною мовою. "У динамічних середовищах час має вирішальне значення, і комплексна система управління тестовими даними з можливістю самообслуговування є критично важливою.
Команди Devops повинні мати можливість автоматично генерувати віртуальні бази даних із виробничого середовища в невиробниче, – каже Роман Голод, технічний директор і співзасновник компанії Accelario. Збільшення можливостей тестування, частоти і розміру наборів тестових даних може зажадати від команд розробників переглянути архітектуру і потужність своєї інфраструктури розробки і тестування. Суніл Сенан, SVP і глобальний директор з даних, аналітики та штучного інтелекту компанії Infosys, додає: "Команди розробників застосунків мають розглянути можливість перенесення конвеєрів devsecops на гіперкамери з функціями автоматизації тестування на базі ШІ, такими як генерація синтетичних даних, генерація тестових сценаріїв і виявлення аномалій у тестах для поліпшення операцій машинного навчання".
Висновки
Таким чином, QA може збільшити обсяг і глибину тестування за рахунок автоматизації тестування, масштабування безперервного тестування, використання можливостей генерації тестів на основі штучного інтелекту і централізації великих наборів тестових даних. "Провідні команди розробників додатків впроваджуватимуть дослідницьке тестування на базі штучного інтелекту і безперервне регресійне тестування, – пояснює Еско Ханнула, SVP з управління продуктами компанії Copado. Тестування перетвориться з реактивного на проактивне, а штучний інтелект виявлятиме крайні випадки та помилки ще до того, як функцію буде створено". Такий рівень роботизованого безперервного тестування має не лише прискорити розробку, а й підвищити якість застосунку до рівня, якого ми не могли досягти за допомогою базової автоматизації тестування".
Коті Розенблат, технічний директор компанії Catalon, додав: "Ми бачимо все більш широке тестування для підтвердження працездатності, в той час як раніше вони могли обмежитися відносно простими синтетичними тестами. Команди створюють динамічні набори тестів, які можуть бути сфокусовані конкретно на областях змін і ризиків, що дає змогу уникнути затримки релізів в очікуванні повних регресійних наборів".
Можливості генеративного ШІ, які використовуються в кодуванні та розробці ПЗ, мають стати для керівників Devops і QA остаточним сигналом до того, щоб інвестувати в безперервне тестування, централізувати тестові дані, поліпшити тестове покриття і збільшити частоту тестування. Для досягнення цих цілей платформи тестування повинні додати можливості генеративного ШІ.











