Нотенгемські ткачі й тестування ПЗ в епоху ШІ

Нотенгемські ткачі й тестування ПЗ в епоху ШІ

  • 4 липня
  • читати 7 хв
Станіслав Підзолков
Станіслав Підзолков Lead QA Engineer у PrivatBank, Викладач Комп'ютерної школи Hillel.

Англія, початок 1799 року. Село Енсті на околиці Лестерширу. Молодий ткач на ім’я Нед приходить, як зазвичай, на роботу до майстерні та з’ясовує, що роботи тут для нього більше немає. Майстер каже, що віднині все, чим займався Нед, будуть робити нещодавно придбані ткацькі верстати. Нед у відчаї, адже окрім ткацтва він нічого робити не вміє. Він свариться з майстром та йде геть. Але повертається вночі й знищує обидва ткацькі верстати, лишаючи напис на стіні:

Нед Лудд — той, хто знищив верстати, які забрали роботу у людей.

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

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

Сьогодні ми стоїмо перед новим витком цієї ж спіралі. Тільки цього разу «верстати» — це великі мовні моделі (LLM), а «ткачі» — розробники й тестувальники програмного забезпечення. Чи повторимо ми долю Неда Лудда, чи зможемо очолити нову цифрову фабрику? Розберімося.

ВІД АВТОДОПОВНЕННЯ ДО АВТОНОМІЇї: ІСТОРІЯ РОЗВИТКУ ТА ВПРОВАДЖЕННЯ ШІ

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

  • Ера автодоповнення (~2021 рік): усе починалося з простих інтелектуальних систем завершення рядка. Редактор намагався вгадати наступний токен, базуючись на написаному коді. Це була корисна, але обмежена допомога.
  • Вбудовані пропозиції (~2022 рік): інструменти на кшталт раннього GitHub Copilot навчилися генерувати цілі функції за їхньою сигнатурою чи коротким коментарем. ШІ почав розуміти базові шаблони кодування.
  • Генерація на основі чату (~2023 рік): з'явилася можливість описувати бажаний функціонал природною мовою в діалоговому вікні. Чат став повноцінним інтерфейсом взаємодії, дозволяючи обговорювати архітектурні рішення.
  • Агенти кодування (~2024–2025 роки): ШІ вийшов за межі одного файлу. Агенти отримали змогу самостійно читати структуру проєкту, планувати зміни в кількох файлах одночасно, запускати тести й ітеративно виправляти власні помилки.
  • Автономна агентна інженерія (~2025–2026 роки): сучасний стан розвитку. Агенти працюють у захищених пісочницях (sandboxes), клонують репозиторії, планують архітектуру, самостійно тестують код та інтегруються в CI/CD конвеєри без постійного контролю з боку людини.

Цей перехід змінив сам характер взаємодії з кодом: ми змістили фокус із синтаксису (як написати рядок коду без помилок) на намір (що саме система повинна робити).

НОВИЙ SDLC ПІД КЕРІВНИЦТВОМ ШІ: «ВАЙБ-КОДУВАННЯ» ПРОТИ «АГЕНТНОЇ ІНЖЕНЕРІЇ»

Життєвий цикл розробки програмного забезпечення (SDLC) під впливом ШІ зазнає серйозного тиску й нерівномірного стиснення. Якщо раніше реалізація (написання коду) тривала тижнями, то тепер вона займає лічені хвилини. Проте фази планування, архітектурного вибору та верифікації результатів залишаються «вперто людськими».

Дослідження показують, що в епоху ШІ виокремлюються два абсолютно різні підходи до розробки:

Vibe Coding (Вайб-кодування): це підхід з мінімальною структурою. Розробник просто пише неформальні запити, отримує код і перевіряє його за принципом «начебто працює». Це чудовий спосіб для швидкого прототипування чи хакатонів. Проте у довгостроковій перспективі це призводить до накопичення величезного технічного боргу. Початкові капітальні витрати (CapEx) тут нульові, але операційні (OpEx) — колосальні через постійне виправлення прихованих дефектів.

Agentic Engineering (Агентьска інженерія): це дисциплінований підхід для промислових систем. Тут ШІ працює не сам по собі, а в оточенні так званого «Джгута» (Harness). Джгут займає 90% всієї агентної системи (залишаючи самій моделі LLM лише 10%) і включає:

  • правила й обмеження проекту (наприклад, файл AGENTS.md);
  • сервери MCP та API для доступу до зовнішніх систем;
  • ізольовані пісочниці для безпечного виконання згенерованого коду;
  • автоматичні цикли зворотного зв'язку й огородження (guardrails).

Фабрична модель розробки (Factory Model): в агентній інженерії розробник більше не збирає кожну деталь системи вручну. Він стає «керівником фабрики», який проєктує конвеєр, налаштовує обмеження, описує критерії успіху й вибудовує систему контролю якості, а саму роботу з написання коду виконує ШІ.

ЯК ЗМІНЮЄТЬСЯ РОЛЬ ТЕСТУВАЛЬНИКА В ЕПОХУ ШІ

Швидкість генерації коду завдяки ШІ зросла в рази. Але разом із цим з'явилася «Проблема 80%»: ШІ-агент може миттєво написати 80% коду для певної функції, проте останні 20% (обробка специфічних помилок, інтеграційні нюанси, складні крайові випадки) вимагають глибокого контекстуального розуміння.

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

У цих умовах роль тестувальника зазнає фундаментальної трансформації:

  1. Від ручного клікання до проектування «Джгута» (Harness): Тестувальник стає архітектором системи обмежень і валідації ШІ. Він визначає правила безпеки, які ШІ-агент не має права порушувати.
  2. Контрактна розробка через Evals: Тести та оціночні набори (evalsets) стають основним способом передачі наміру ШІ. Тестувальник пише тест до того, як ШІ згенерує код. Цей тест є «контрактом», який агент зобов'язаний виконати.
  3. Розподіл тестування на два рівні:

    Оцінка результату (Output Eval): перевірка того, що саме створив ШІ-агент (чи працює фінальний артефакт).

    Оцінка траєкторії (Trajectory Eval): аналіз того, як агент прийшов до рішення. Чи не використав він небезпечні обхідні шляхи? Чи правильну послідовність викликів інструментів він вибрав?

Тестувальник більше не є «останньою лінією оборони» перед релізом — він стає людиною, яка налаштовує якісний маховик (quality flywheel) всередині самого конвеєра розробки.

НОВІ НЕВИЧКИ ДЛЯ РОБОТИ З ШІ

Сучасному QA-інженеру недостатньо просто вміти писати тестові сценарії. Йому потрібні нові компетенції:

  • Контекстна інженерія (Context Engineering): вміння правильно структурувати знання проєкту, писати чіткі інструкції для ШІ-агентів, очищувати контекстне вікно від інформаційного шуму.
  • Специфікація і декомпозиція: здатність описувати бізнес-вимоги настільки чітко й детально, щоб у ШІ не виникало двозначностей під час генерації коду чи тестів.
  • Оцінка траєкторій (Trajectory Analysis): навичка читання логів міркувань ШІ-агентів для виявлення прихованих логічних галюцинацій і небезпечних дій.
  • Оркестрація та робота в режимі «Оркестратора»: перехід від ручного контролю кожної дії ШІ (режим «Диригента») до асинхронного делегування завдань групам спеціалізованих агентів, що працюють у фоні.
  • Проєктування автоматизованих оцінок (Evals): створення складних динамічних наборів тестів, які перевіряють не просто статичні значення, а поведінку системи за будь-яких умов.

Рекомендуємо курси по темі

ВИСНОВОК: ЧИ СПИНЯТЬ ТКАЧІ ПРОГРЕС?

Повернемося до нашого Неда Лудда. Чи перемогли лудити, знищивши верстати? Історія дала чітку відповідь: ні. Ткацькі верстати завоювали світ, а колишні ткачі зрештою стали операторами фабрик, інженерами й дизайнерами одягу. Прогрес неможливо зупинити фізичним руйнуванням, чи законодавчими заборонами.

Сьогодні спроба відмовитися від ШІ-агентів у тестуванні та розробці — це те саме «лудитство». ШІ не замінить тестувальника, але тестувальник, який вміє ефективно використовувати ШІ та проєктувати системи автоматичної перевірки, замінить того, хто цього не робить.

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

Рекомендуємо публікації по темі