AI-асистент у Slack ≠ Sci-fi: як ми скоротили оновлення тестів з годин до хвилин

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Привіт! Я Віталій, QA Architect у Techstack. У тестуванні ми часто спираємось на перевірені патерни, і вони дійсно працюють. Це ефективне рішення для типових задач, але разом із користю приходять і приховані обмеження, рутинність та вузькі місця.

За 15 років у QA я бачив це багато разів. Тому останні два роки ми з командою впроваджуємо AI, щоб зберегти сильні сторони знайомих практик, усуваючи їхні слабкі місця.

У цій статті хочу поділитися нашим досвідом: як ми вирішили типову для будь-якого продукту проблему — застарілі регресійні тести, і що сталося, коли ми віддали їх на «аутсорс» AI-асистенту.

Чому застарілі тести — це глобальний виклик

У світі, де continuous delivery давно стало нормою, а продукти оновлюються ледь не щодня, регресійні тестсети старіють блискавично. Особливо у великих проєктах, де регресія може налічувати тисячі кейсів. Хаос наростає поступово  спочатку здається, що все під контролем, але в якийсь момент з’являється відчуття тривоги. А потім реальність показує:

  • тести більше не покривають критичні сценарії;
  • частина кейсів втратила актуальність;
  • перевірки дублюються або суперечать одна одній.

Оновлення таких тестів інколи займає дні, а то й тижні ручної роботи. І коли постає вибір: залишити кейси, які вже нічого не перевіряють і відкривають прямий шлях багам у продакшн, чи витратити час на оновлення замість роботи над новими фічами — більшість команд відкладає. Але «потім» зазвичай так і не настає. У довгостроковій перспективі це хибне рішення: старі тести перестають приносити користь, але продовжують існувати, відбираючи час і ресурси та створюючи ілюзію безпеки.

World Quality Report 2024 показує, що 68% компаній називають застарілі тести однією з головних проблем у QA. Щобільше, понад половина опитаних команд (52%) вважають, що саме вони є причиною непередбачуваних збоїв у релізах.

Що команди роблять зараз і чому це не працює

Проблема застарівання тестів існує ще з моменту написання першого тесту в історії. Рішення щоразу різні, але результат завжди тимчасовий. Найпоширеніші з них:

Додати більше людей. На перший погляд, це найпростіший крок. Більше інженерів = швидше оновлення. Але з часом команда перетворюється на фабрику підтримки тестів. Уся енергія йде в рутину, простору для розвитку немає. Фінансово модель швидко стає невигідною, а потреба постійно розширювати штат робить її нежиттєздатною. Додаємо сюди ще й вигорання інженерів, які щодня виконують монотонну роботу.

State of DevOps 2024 підтверджує: такі команди витрачають на 32% більше часу на підтримку, ніж ті, що вже інтегрували AI.

Другий підхід — оновлювати тести під час регресії. Побачили, що тест не відповідає функціоналу — швидко виправили. Це працює, поки продукт невеликий, але коли зростає кількість змін та учасників процесу, починається хаос: незрозуміло, хто і що змінив, втрачаються важливі деталі, а релізи затримуються через нескінченні узгодження.

Ще один підхід — використовувати AI точково, це швидкий ефект без глибини. За цей рік багато команд інтегрували AI у свої процеси: використовують його для генерації тест-кейсів, оновлення BDD-сценаріїв чи аналізу вимог. Це дозволяє частково зняти рутину та прискорити роботу, але тут є пастка. Коли AI працює у відриві від загальної системи, він не вирішує хаос, а лише тимчасово приховує його. У багатьох командах це призводить до нових викликів:

  • відсутності єдиних стандартів;
  • непередбачуваних змін у тестах;
  • складності при масштабуванні.

Це як додати новий інструмент без правил гри — спочатку допомагає, але з часом стає ще одним джерелом плутанини.

І, нарешті, четвертий варіант — ігнорувати проблему. Продовжувати запускати старі тести, навіть знаючи, що вони не відображають реальність. Це наче економія часу, але фактично — запрошення для багів прослизнути у продакшн. А виправлення таких помилок на фінальному етапі коштує компанії в рази дорожче.

Жодному з цих підходів не вистачає системності. Це не стратегія, а лише «гасіння пожеж».

Наш підхід: AI як частина стратегії якості

Наш досвід показав: справа не в кількості людей чи процесах. Проблема у виборі інструментів, їхньому налаштуванні та гармонійній аугментації в робочі процеси команди.

Нашою метою було створити систему, де AI працює поруч із людьми, а не замість них. Це означало вбудувати AI у загальну стратегію якості.

Ось як виглядає наша архітектура:

  • AI-агенти з чіткими ролями. Один аналізує нові вимоги, другий звіряє їх із тестами, третій формує підсумковий список змін. Це знижує ризик помилок та забезпечує передбачуваність.
  • Векторне сховище. Асистент має повний контекст продукту — історію змін, специфікації, BDD-сценарії автотестів та мануальні тест-скрипти. Це дає AI-агенту повний контекст про застосунок і його актуальний стан, що дозволяє уникати помилкових відповідей через брак інформації.
  • Чіткі інструкції. Ми налаштували промпти так, щоб AI працював із фокусом на точність, без зайвої «креативності», яка у QA може призвести до помилок.
  • Інтеграція у звичні інструменти. Асистент працює прямо у Slack. QA-інженер запускає workflow — і через кілька хвилин отримує готовий список кейсів для оновлення.

Як це працює в реальності

Щоразу, коли в продукті з’являється нова фіча, до прикладу «оплата частинами» або KYC-перевірка, інженерам потрібно знайти всі тести, дотичні до цієї функціональності, і внести необхідні зміни. Це можуть бути нові перевірки, оновлені кроки або зміна очікуваних результатів.

Проблема в тому, що знайти релевантні тести складно. Не завжди достеменно відомо, які частини продукту були зачеплені, за якими ключовими словами шукати, чи взагалі щось знайдеться. Назви тестів і їхні описи рідко бувають повністю стандартизованими. Це довга, трудомістка праця, яка не гарантує точного результату.

У нашому процесі все виглядає інакше. QA просто пише в Slack номер JIRA-таски і вже за кілька хвилин отримує:

  • список тестів, яких стосується зміна;
  • що втратило актуальність;
  • які кроки варто додати.

Ми починали з невеликого набору з 200 тестів. Це були переважно складні ручні кейси, які погано піддавались автоматизації й зазвичай вимагали уваги від тестувальників.

Зараз система стабільно обробляє понад 2000 тестів у різних проєктах, включно з автомейшен BDD-сценаріями у форматі Gherkin.

Результати, які відчутні кожному члену команди

Процес, який раніше займав години, тепер виконується за хвилини та при цьому гарантує точність та повноту оновлень. Завдяки цим змінам ми стабільно економимо близько 15% робочого часу QA-команди. У періоди високої динаміки змін і значних сайд-ефектів ця цифра може сягати 30%.

Звільнений час ми спрямовуємо на пріоритетні напрями: дослідницьке тестування, аналіз ризиків та глибшу роботу з вимогами.

Рівень актуальності тестів зріс із приблизно 60% до понад 95%. Релізи стали стабільнішими: менше хаосу, менше затримок, більше впевненості у якості.

За даними Capgemini, компанії, які інтегрували AI у QA-процеси, підвищили ефективність тестування на 30–40% і скоротили витрати на підтримку регресії майже вдвічі. Наш практичний досвід певною мірою підтверджує цю статистику.

Але головне — змінився підхід у команді. Люди перестали витрачати час на рутину та перейшли до завдань, які справді потребують людського досвіду: складних сценаріїв, аналітики, планування.

Ризики, які важливо врахувати

Впровадження AI-рішень сьогодні стало мейнстримом, та попри всі переваги потрібно розуміти й ризики, заздалегідь враховуючи їх.

По-перше, безпека даних. Дані проєкту — це чутлива частина продукту. Впевненість у тому, що вони не потраплять назовні та не використовуватимуться для навчання сторонніх моделей, є для нас ключовою.

По-друге, якість промптів не менш важливе питання. Якщо система не дає передбачуваних і стабільних результатів, команда не буде їй довіряти. Консистентність відповідей критично важлива. Інакше про успішне впровадження можна забути.

По-третє — інтеграція в робочий процес. Навіть найкращий AI-інструмент не дасть результату, якщо користуватись ним незручно. Ми подбали про те, щоб він органічно працював у щоденному ритмі команди: Slack, Jira ID, знайомі формати звітів. Без цього інструмент залишився б просто ще однією тулою, яку ніхто не використовує.

Висновок: AI — це партнер у QA, а не заміна

AI у тестуванні вже не просто тренд. Це нова реальність. Gartner прогнозує, що до 2026 року 70% компаній інтегрують AI у свої QA- та DevOps-процеси. А Forrester підрахував, що AI допоможе скоротити час виходу на ринок на 35% у середніх та великих компаніях.

У QA-ком’юніті формується нова культура, і ми всі впливаємо на те, якою вона стане. Наш досвід — практичний приклад інтеграції AI, підкріплений реальними метриками та результатами. AI не замінює інженера, він підсилює його. Лише ті, хто навчиться працювати з ним на повну, отримають справжню перевагу.

👍ПодобаєтьсяСподобалось6
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А наскільки деталізовані ваші тест кейси?
Як ви звязували тести до фічей, імхо ви скорше спершу це причесали, аніж робити пошук потенційних тесті на які буде вплив
Мені дуже не вистачає технічних деталей в статті, дуже абстрактно описано все

а jira таска яку закидуєте в асистента містить описані вимоги чи уже з імпелементацією та аффектами?

З JIRA витягаємо Title, Description і Test Notes. Варто зазначити, що Scrum-процеси команди досить зрілі і на етапі грумінгу QA, девелопери й інфраструктурна команда детально пропрацьовують Testing Notes, які істотно доповнюють опис задачі.

Завдяки цьому з кожного тікета ми отримуємо достатній контекст, щоб модель могла точно й передбачувано відпрацювати.

Дякую за матеріал, Віталій. Підкажіть а в чому саме ви робили векторне сховище? Це все в інфраструктурі OpenAI? Як іде синхронізація з основним репозиторієм

Дякую за влучне технічне запитання
Векторне сховище це ненативне рішення «з коробки» для OpenAI інфраструктури. Наразі плануємо переїзд на AWS Bedrock, тож архітектура трохи зміниться.

Синхронізація з тест-менеджмент системою відбувається раз на добу вночі: через OpenAPI ми витягуємо актуальні тесткейси, виконуємо refine-обробку даних для зручнішої роботи LLM-моделей і оновлюємо векторне сховище. З урахуванням динаміки змін і перетину команд, нічне оновлення повністю закриває потреби нашої QA інфраструктури.

Вітаю)

Чіткі інструкції. Ми налаштували промпти так, щоб AI працював із фокусом на точність, без зайвої «креативності», яка у QA може призвести до помилок.

Як загалом гарантується ця точність і скільки часу йде на перевірку результатів?

Дуже гарне запитання, дякую

Точність забезпечується кількома рівнями контролю:
1. Багаторівнева валідація. Один агент формує пропозиції, інший перевіряє їх, третій агрегує результати й робить «роботу над помилками». Така розбивка дозволяє досягти ізоляції контексту в кожному промті, агенти не перевантажуються зайвими інструкціями, зберігаючи фокус і стабільність у відповідях. Це мінімізує ризики неточностей
2. Промт-інжиніринг. Кожен агент працює за чітко структурованим промтом із визначенням ролі, кроків виконання, прикладів очікуваних результатів і контекстом продукту. Для моделей OpenAI ми окремо калібруємо Top-P/Temperature, щоб уникнути «галюцинацій» і водночас зберегти гнучкість у відповіді
3. Benchmark-набір (GoalData). Ми маємо вибірку тестів із відомими очікуваними змінами. Саме за нею вимірюємо якість відповідей після кожного оновлення промтів або моделей
4. Живий фідбек-цикл. Система постійно вдосконалюється через відгуки QA інженерів. Якщо AI помиляється або дає надто загальну відповідь, це одразу враховується у fine-tuning промтів

Завдяки цим шарам точність стабільно тримається на високому рівні

Ваш підхід — створення системи з AI-агентами, векторним сховищем та інтеграцією у Slack — це по суті ідеальний приклад того, як має виглядати QA майбутнього. Особливо вражає результат: 15-30% економії часу та актуальність тестів понад 95% — це цифри, які говорять самі за себе.

Водночас, побудова такої комплексної системи — це величезна інвестиція часу та ресурсів, доступна не кожній команді прямо зараз.

І тут, мені здається, є місце і для «малих кроків». Навіть просте використання AI-асистентів (як ChatGPT чи Gemini) для щоденних рутинних завдань — генерації тест-кейсів, аналізу логів, написання баг-репортів — вже дає значний буст продуктивності і звільняє час QA для більш складних завдань.

Це такий собі «перший щабель» на шляху до тієї комплексної системи, яку ви описали. Саме такі «малі кроки» та готові рішення для щоденного використання я і намагаюся збирати у своєму проєкті — телеграм-каналі QA Co-pilot.

Схоже, у майбутньому AI не лише оновлюватиме тести, а й писатиме коментарі під статтями — з лестивими словами, плавним відходом від теми й обов’язковим закликом до дії наприкінці. Людям залишиться тільки вставляти лінк на свій телеграм-канал.

Дякую, що не пройшли повз мій коментар! Тихої ночі вам і коду без багів)

Підписатись на коментарі