← до курсу

Програма курсу Agentic QA

Повна програма курсу з тестування AI-агентних систем: 21 заняття, 6 блоків, фінальний проєкт і профіль аудиторії.

Подати заявку →

Огляд курсу

  • Цільова аудиторія: Junior і Middle AI / Dev / Test / Ops інженери
  • Загальна кількість занять: 21
  • Орієнтовна тривалість: 11–14 тижнів

Блок 1. Фундамент

(Заняття 1–2 — базовий рівень, без технічних передумов)

Заняття 1. AI-системи як об’єкт тестування: чому все інакше

Розуміння того, чим тестування LLM відрізняється від традиційного детермінованого ПЗ. Огляд типів систем, які трапляються в проєктах: чат-боти, RAG-системи, агенти і пайплайни. Дослідження режимів відмов через практичну таксономію, а не теорію ML. Як класична піраміда тестування трансформується для AI-застосунків, де eval-тестування стає новим шаром між інтеграційним і E2E.

Практика на занятті: студенти отримують демо-чат-бот і 10 різних промптів; завдання — класифікувати відмови за таксономією і задокументувати їх у форматі «структурований баг-репорт для LLM-системи».

ДЗ: знайти 5 справжніх відмов у будь-якому публічному AI-продукті й задокументувати їх з категоризацією: тип відмови → вхід → фактичний результат → очікуваний результат → severity.

Результат: студенти розуміють специфіку тестування AI-систем, уміють документувати відмови у структурованому форматі й бачать, як піраміда тестування змінюється в AI-контексті.


Заняття 2. Архітектура агентних систем очима QA

Фокус на точках відмови, а не на побудові агентів. Компоненти: LLM-ядро, системний промпт, інструменти, пам’ять, оркестрація, контекстне вікно. Що відбувається під час tool call і де лежать шари ризику. Як перетворити архітектурну діаграму на тест-стратегію.

Практика на занятті: студенти отримують схему реальної агентної системи (RAG-агент із двома tool call) і будують risk map: визначають типи ризиків і мінімум одну тест-ідею на кожен компонент.

ДЗ: намалювати архітектурну діаграму AI-системи зі свого проєкту або вигадану. Дати мінімум 2 тест-ідеї на компонент. Здати: діаграма + таблиця ризиків.

Результат: студенти декомпозують агентні системи на компоненти й будують risk map як основу тест-стратегії.


Блок 2. Тестування LLM

(Заняття 3–9 — середній рівень, потрібен базовий Python або TypeScript)

Заняття 3. Промпт та контекст інжиніринг для QA

Навіщо QA-інженеру розуміти prompt engineering — не щоб писати промпти, а щоб їх тестувати. Анатомія системного промпту: інструкції, персона, обмеження, приклади, формат виводу. Типи промптів: zero-shot, few-shot, chain-of-thought, ReAct, self-consistency — кожен ламається по-своєму. Техніки: role prompting, покрокова декомпозиція, специфікація формату виводу, negative prompting. Контекстне вікно як ресурс і як його розмір впливає на поведінку агента. Context injection і вплив зовнішніх даних на відповіді моделі.

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

ДЗ: провести аудит реального або вигаданого системного промпту: знайти 3+ проблемні місця (неоднозначності, конфлікти, прогалини в інструкціях). Переписати з використанням мінімум двох технік. Здати: оригінал + анотований аудит + покращена версія з поясненнями.

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


Заняття 4. Метрики в тестуванні ШІ

Чому pass/fail не працює для LLM-систем. Огляд ключових метрик: faithfulness, answer relevancy, context recall, hallucination rate, groundedness. Різниця між кількісними і якісними метриками і коли яку застосовувати. Підбір метрик під тип системи: чат-боти, RAG, агенти, пайплайни. Baseline-метрики і що таке «хороший» результат. Як метрики змінюються зі зміною моделі, промпту чи даних.

Практика на занятті: студенти інтерпретують результати eval-ранів з кількома метриками, визначають слабкі місця системи і формулюють конкретні гіпотези щодо поведінки метрик.

ДЗ: обрати AI-систему і скласти таблицю: релевантні метрики → обґрунтування → порогові значення прийнятного результату. Здати: таблиця метрик + обґрунтування.

Результат: студенти вміють обирати відповідні метрики для різних AI-систем і розуміють, що вони вимірюють та їхні обмеження.


Заняття 5. Тестування промптів: від ручних перевірок до автоматизації

Чому ручна перевірка промптів не масштабується. Побудова golden dataset: джерела, розмір, баланс кейсів. Критерії вибору між DeepEval і Promptfoo. Написання assertion для недетермінованих відповідей. Версіонування промптів як інженерна практика — чому зміна промпту це реліз. Регресійне тестування для порівняння версії A проти B на однакових даних.

Практика на занятті: студенти запускають готовий eval-suite з 5 тестами в DeepEval, аналізують, які тести «пливуть», і доопрацьовують assertion, щоб прибрати false positives.

ДЗ: взяти реальний або вигаданий промпт. Скласти golden dataset з 10 прикладів input/expected-output. Створити й запустити eval-suite. Здати: код + результати + короткий аналіз знахідок.

Результат: студенти будують golden dataset і запускають eval-suite через DeepEval або Promptfoo замість ручної перевірки.


Заняття 6. Тестування RAG: hallucination, faithfulness, relevancy

Де виникають проблеми RAG-пайплайну: retrieval, augmentation, generation. Метрики RAGAS: faithfulness, answer relevancy, context recall. Знайомство з патерном LLM-as-judge — коли і як його застосовувати. Як відрізнити галюцинацію від неповного контексту. Розбір реального production-кейсу з галюцинацією.

Практика на занятті: студенти розгортають демо-RAG-систему й запускають RAGAS-оцінку на підготовлених питаннях, аналізуючи низькі faithfulness-скори і випадки вигадування.

ДЗ: побудувати мінімальний RAG eval: будь-яка документація → демо-RAG → 10 питань з відомими відповідями → RAGAS. Здати: метрики + висновок щодо слабких місць + одна конкретна рекомендація з покращення.

Результат: студенти розуміють специфіку тестування RAG і вміють вимірювати якість відповідей через метрики RAGAS.


Заняття 7. Тестування багатокрокових діалогів і context management

Де агенти втрачають контекст і чому. Патерни context failure: суперечності між кроками, забуті важливі дані, деградація на довгому діалозі. Програмна симуляція багатокрокових сценаріїв. Ліміти контекстного вікна як джерело багів.

Практика на занятті: студенти проганяють support-агента через 8-кроковий сценарій, знаходять мінімум 2 місця, де контекст втрачається або з’являються суперечності, і пишуть тест-кейси на знайдені проблеми.

ДЗ: написати повний тест-план для багатокрокового сценарію: 3 happy paths, 3 edge cases з context failures, 2 adversarial-сценарії. Для кожного: вхід → очікуваний результат → критерії pass/fail.

Результат: студенти проєктують тест-сценарії багатокрокових діалогів і знаходять context failures на різних етапах.


Заняття 8. Тестування різних моделей і GitHub Models

Моделі — не константа. Однакові системи поводяться по-різному на GPT-4o, Claude Sonnet, Gemini, Llama. Що змінюється: чутливість до temperature, дотримання інструкцій, консистентність виводу, рівень галюцинацій. GitHub Models для порівняльного тестування: швидкий доступ до кількох провайдерів без окремих API-ключів. Стратегія бенчмаркінгу моделей і її автоматизація. Коли і навіщо змінювати модель у production.

Практика на занятті: студенти запускають однаковий eval-suite на двох різних моделях через GitHub Models, порівнюють результати, виявляють істотні відмінності в поведінці й рекомендують, яка модель підходить під use case.

ДЗ: побудувати звіт порівняння моделей: прогнати golden dataset на 3+ моделях, задокументувати метрики, вартість і latency. Здати: порівняльна таблиця + обґрунтована рекомендація.

Результат: студенти порівнюють поведінку моделей через eval-suite і дають обґрунтовані рекомендації щодо вибору моделі.


Заняття 9. Локальні моделі для тестування: Ollama і Lemonade AI Runtime

Чому вартість LLM-as-a-Judge стає проблемною на масштабі CI/CD: «$0.003 за judge-виклик × 500 тестів × 10 PR/день = реальний бюджет». Локальні моделі розв’язують це: нульова вартість за виклик, повна приватність, відсутність rate-лімітів і мережевих залежностей. Огляд Ollama: підтримувані моделі (Llama 3, Mistral, Phi-3, Gemma 2, Qwen). Lemonade AI Runtime як альтернатива з акцентом на Windows і NPU-прискорення. Вибір локальної моделі: розмір RAM, якість суджень і швидкість — компроміси. Де локальних моделей достатньо для judge, а де потрібен cloud.

Стратегія вибору judge:

  • Локальна розробка → Ollama + Phi-3 Mini (3.8B) — працює на ноутбуці, відповідь 2–5 сек
  • CI на GitHub Actions → Ollama + Llama 3.1 8B у Docker — безкоштовно, без секретів
  • Pre-release gate → Claude Haiku або GPT-4o Mini — вища якість суджень
  • Регресійні тести (500+) → локальна модель — cloud-витрати неприйнятні

Практика на занятті: інструктор наживо демонструє розгортання Ollama і налаштування Lemonade runtime, під’єднує до DeepEval через custom model wrapper, запускає eval-suite спершу з cloud-моделлю як judge, потім із локальною, порівнює результати й вартість.

ДЗ: розгорнути Ollama локально й інтегрувати як judge в eval-suite. Прогнати тести в трьох конфігураціях: cloud-модель, велика модель Ollama (7B+), мала модель Ollama (3B або менше). Здати: таблиця accuracy/latency/cost + висновок щодо оптимальної конфігурації на кожному етапі пайплайну.

Результат: студенти розгортають локальні моделі через Ollama або Lemonade, інтегрують їх як judge у DeepEval і свідомо обирають між локальним і cloud-judge.


Блок 3. Agentic Testing

(Заняття 10–14 — середній рівень, потрібен досвід роботи з API і базова автоматизація)

Заняття 10. LLM as a Judge: імплементація і підводні камені

LLM-as-a-Judge сьогодні — стандарт в оцінюванні AI. Архітектура: вибір промпту, вибір моделі, формат відповіді. Коли judge надійний, а коли вводить в оману: positional bias, verbosity bias, self-preference. Калібрування judge: валідація людиною, inter-rater agreement, тюнінг промпту. Імплементація через DeepEval і RAGAS. Коли LLM-judge замінює людину, а коли доповнює. Вартість і latency для CI.

Практика на занятті: студенти пишуть власні judge-промпти для відповідей демо-агента, порівнюють з ground truth, знаходять помилки judge і доопрацьовують промпти, щоб зменшити хибні оцінки.

ДЗ: імплементувати LLM-as-a-Judge для власної системи: написати judge-промпт, прогнати на 10 прикладах, вручну провалідувати всі 10, порахувати точність judge. Здати: промпт + результати + аналіз відмов judge.

Результат: студенти імплементують і налаштовують патерн LLM-as-a-Judge і розуміють його обмеження.


Заняття 11. Security testing: Prompt Injection і Red Teaming

OWASP LLM Top 10 як практичний чекліст. Пряма prompt injection: перезапис інструкцій. Непряма injection: атаки через зовнішній контент (документи, сторінки, результати інструментів). Методи jailbreaking і захист. Ексфільтрація даних через агентів. Як системний промпт і context engineering формують поверхню атаки. Методологія red team-сесії: структура, документування, пріоритизація.

Практика на занятті: студенти отримують демо-агента з навмисними вразливостями. Мета: за 30 хвилин знайти мінімум 2 вразливості різних типів з OWASP LLM Top 10 і задокументувати їх у форматі security report.

ДЗ: провести самостійну red team-сесію на публічному AI-продукті або демо. Задокументувати 3+ вразливості: вразливість → вектор атаки → severity → рекомендація з мітигації.

Результат: студенти проводять базові red team-сесії за OWASP LLM Top 10 і документують знахідки у форматі security report.


Заняття 12. Tool call testing і MCP

Основи tool call testing: правильний інструмент, правильні параметри, правильний порядок. Playwright MCP як об’єкт тестування і як інструмент тестування. Програмний перехоплення і перевірка tool call. Типові баги: зайві виклики, пропущені виклики, неправильні параметри.

Практика на занятті: студенти запускають готового агента з Playwright MCP, спостерігають tool call у trace, знаходять один неправильний виклик у підготовленому сценарії й пишуть assertion, щоб ловити його автоматично.

ДЗ: написати автоматизовані тести поведінки tool call — мінімум 5 тест-кейсів: правильний виклик, виклик з неправильними параметрами, пропущений виклик, зайвий виклик, неправильний порядок. Здати: код + результати запуску.

Результат: студенти розуміють специфіку tool call testing і пишуть автоматизовані перевірки поведінки агента під час роботи з інструментами.


Заняття 13. Observability і cost testing

Навіщо QA трасування агента. LangSmith і Phoenix/Arize: що вони показують і як їх читати. Що шукати у trace: аномалії latency, token loops, неочікувані tool call, деградація якості. Cost testing: виявлення дорогих сценаріїв. Метрики production-моніторингу.

Практика на занятті: студенти під’єднують LangSmith до демо-агента й запускають сценарій із навмисним token loop. Завдання: знайти аномалію у trace, визначити хибний крок, порахувати вартість провального сценарію проти нормального.

ДЗ: налаштувати observability для демо-агента. Прогнати 5 сценаріїв, порівнявши latency, токени, вартість, кількість tool call. Знайти найдорожчий сценарій. Здати: скриншоти trace + порівняльна таблиця + рекомендація з оптимізації.

Результат: студенти налаштовують трасування агентних систем і знаходять аномалії поведінки й вартості через observability-інструменти.


Заняття 14. AI-assisted Test Case Generation і Code Review

Використання AI для генерації тест-кейсів — і валідація їхньої якості. Патерни: генерація з вимог, генерація з коду, генерація edge cases з golden dataset. GitHub Copilot і Claude як асистенти тест-дизайну. AI-assisted code review для тестового коду: промптити модель шукати слабкі assertion і неповні тести. Ризики надмірної довіри до AI-згенерованих тестів: false coverage, неявні припущення. Валідація якості згенерованих тестів.

Практика на занятті: студенти просять AI згенерувати тест-кейси для функціональності агента. Завдання: критично оцінити результат — знайти тести, що виглядають правильними, але нічого не перевіряють, і переписати їх.

ДЗ: згенерувати тест-кейси для обраного компонента, використовуючи інтегрованого в пайплайн AI-агента, провести ручний review. Здати: GitHub-репозиторій з оригінальними тестами + коментарі review. Виконання як частина локального agentic workflow.

Результат: студенти використовують AI як інструмент генерації тестів і критично оцінюють якість результату. Налаштовують agentic workflows у середовищі CI/CD.


Блок 4. Автоматизація і фреймворки

(Заняття 15–16 — просунутий рівень, потрібен досвід написання автотестів)

Заняття 15. Побудова фреймворку для автоматизованого тестування ШІ

Чим AI-тест-фреймворки відрізняються від стандартних фреймворків автоматизації. Ключові компоненти: dataset management, eval runner, assertion engine, result storage, reporting. Проєктування фреймворків, що підтримують unit-рівень eval і E2E-тестування агентів. Патерни: LLM response fixtures, golden dataset factories, model wrappers. Версіонування тестів разом із версіонуванням промптів. Портативність фреймворку між провайдерами (OpenAI, Anthropic, локальні моделі).

Практика на занятті: студенти отримують скелет базового фреймворку й доповнюють відсутні компоненти: dataset loader, assertion wrapper, генерація HTML-звіту.

ДЗ: спроєктувати й імплементувати мінімальний AI-тест-фреймворк для обраної системи. Мінімальні вимоги: завантаження датасету, виконання eval, збереження результатів, базовий reporting. Здати: репозиторій + README + приклад запуску.

Результат: студенти будують структуровані AI-тест-фреймворки замість ізольованих скриптів, розуміючи критичні компоненти.


Заняття 16. Eval pipeline у CI/CD: Quality Gates з DeepEval і LLM-as-a-Judge

Чому eval має місце в release-пайплайнах — стандартних unit-test gate недостатньо для AI-систем. Архітектура quality gate: що перевіряти, з якою частотою, що блокує деплой. GitHub Actions + DeepEval: покрокове налаштування з нуля. LLM-as-a-Judge як автоматичний gate без участі людини. Benchmark-пороги: встановлення baseline-метрик і коли їх переглядати. Симуляція регресії від зміни промпту для перевірки ефективності gate. Причини flaky eval і розв’язки: seed, retry logic, threshold bands. Звітування результатів eval у pull request: annotations, summary comments, Slack-сповіщення.

Практика на занятті: студенти клонують готовий репозиторій з базовою конфігурацією GitHub Actions. Завдання: додати два gate — один на метриці DeepEval, один на LLM-judge. Симулювати зміну промпту, що ламає обидва gate.

ДЗ: довести eval-suite до CI/CD-пайплайну з мінімум двома quality gate — один rule-based (метрика DeepEval), один model-based (LLM judge). Здати: репозиторій + скриншот зеленого ранy + скриншот заблокованого ранy (симульована регресія) + пояснення логіки порогів.

Результат: студенти вбудовують eval-based і judge-based quality gate в CI/CD-пайплайни з автоматичним блокуванням деплою при деградації якості.


Блок 5. Системний рівень і Agentic Workflows

(Заняття 17–19 — просунутий рівень, потрібен досвід з CI/CD і DevOps-basics)

Заняття 17. Agentic CI/CD: AI-агенти як частина пайплайну розробки

Agentic workflows відрізняються від eval gate: агенти діють, а не лише перевіряють. Патерни використання: автоматичний code review через GitHub Copilot або Claude Code в PR, автоматична генерація чи оновлення тестів при зміні коду, автоматичне оновлення документації при зміні промпту чи специфікації. Імплементація через GitHub Actions + MCP: надання агентам доступу до репозиторію з контролем можливостей. Claude Code і GitHub Copilot як агенти пайплайну: де кожен сильніший. Валідація якості роботи агента: validation gate після дій агента. Ризики agentic CI/CD: нескінченні цикли, технічний борг від низькоякісної генерації, надмірні дозволи.

Практика на занятті: студенти налаштовують GitHub Actions workflow, де агент (Claude Code або Copilot) автоматично робить code review тестових файлів при відкритті PR і лишає коментарі. Завдання: оцінити якість review на підготовленому PR із навмисними проблемами й оцінити, що агент виявив.

ДЗ: імплементувати agentic workflow на вибір: автоматичний code review тестів у PR або авто-генерація тестів при зміні специфікації. Здати: репозиторій + демо-запуск + аналіз якості результату агента + перелік пропусків/помилок.

Результат: студенти розуміють, де agentic CI/CD дає ROI, а де створює ризики, і імплементують базові версії з валідацією якості.


Заняття 18. Documentation і Test Generation як частина agentic workflow

Як agentic workflows тримають документацію й тести актуальними. Патерн: AI-агент читає PR diff → генерує чи оновлює тест-кейси → пропонує зміни документації. Імплементація GitHub Actions + MCP. Валідація якості авто-згенерованої документації. Де агенти допомагають, а де створюють борг. Реальні приклади впровадження у продуктових командах.

Практика на занятті: студенти налаштовують простий GitHub Actions workflow: при зміні файлів промптів агент автоматично генерує оновлені тест-кейси й відкриває PR з ними.

ДЗ: імплементувати agentic workflow на вибір: автоматичне оновлення документації при зміні промпту або авто-генерація тестів при зміні специфікації. Здати: репозиторій + демо-запуск + аналіз якості результату + перелік помилок агента.

Результат: студенти розуміють, де agentic workflows дають QA-ROI, і імплементують базові версії.


Блок 6. Фінальний проєкт

(Заняття 19–21 — синтез усього курсу)

Заняття 19. Підготовка фінального проєкту: консультації і peer review

Студенти презентують поточний статус проєкту. Peer review: обмін репозиторіями й структурований зворотний зв’язок за чеклістом. Інструктор розбирає типові помилки й відповідає на питання.

Заняття 20–21. Захист фінального проєкту

Кожен студент: 10 хвилин демо живого пайплайну + 5 хвилин Q&A. Фокус питань: «Чому саме цей поріг у quality gate», «Де ламається твій judge», «Що б ти змінив, маючи ще тиждень», «Яке рішення ухвалив асистент і чи згоден ти з ним».


Фінальний проєкт: AI-Powered Application — повний цикл

Студенти самостійно розробляють AI-додаток, покривають його тестами, налаштовують повний CI/CD-пайплайн і документують стратегію якості. Мета: продемонструвати самостійну побудову production-процесу навколо AI-системи — від першого коміту до автоматичного релізу, а не лише володіння інструментами.

Що розробити

1. AI-додаток (з допомогою код-асистента)

Студенти будують мінімальний, але реальний AI-додаток — чат-бот, RAG-агент, агент з інструментами або пайплайн — використовуючи GitHub Copilot, Claude Code чи аналог. Вимоги: кілька компонентів і нетривіальна логіка. Обсяг: 300–800 рядків основної логіки. Задокументувати рішення студента проти рішень асистента і помилки асистента.

2. Тест-стратегія

Структурований документ: опис системи й ризиків, вибір рівнів тестування (unit / integration / eval / E2E / security), обґрунтування пріоритетів, підхід на кожному рівні, вибір інструментів і обґрунтування, критерії go/no-go для релізу. Обсяг: 2–4 сторінки.

3. Risk-Based Test Coverage Matrix

Перелік компонентів, оцінка ризику на компонент (impact × likelihood), мапінг покриття тест-кейсами, прогалини — де покриття відсутнє і чому це прийнятно або проблемно. Формат: анотована таблиця.

4. Тести — усі рівні

РівеньМінімумІнструменти
Unit / component eval10 тест-кейсівDeepEval або Promptfoo
RAG або dialog testingметрики на 10 прикладахRAGAS або DeepEval
LLM-as-a-Judgejudge на одну категоріювласна імплементація
Security3 вектори атакиручний red team
E2E2 повні сценаріїPlaywright або pytest

5. Системний тест-фреймворк з LLM-as-a-Judge

Окремий модуль репозиторію: dataset loader, eval runner, judge integration, result storage, HTML/Markdown reporting. Фреймворк дозволяє повний eval системи однією командою зі звітами метрик і judge-score. Спроєктований для повторного застосування до інших систем (зміна лише датасету й конфігу).

6. CI/CD-пайплайн на GitHub Actions

Повний пайплайн на PR і push у main:

  • Eval-suite з quality gate (DeepEval + judge) — блокує merge при відмові
  • AI code review-агент (Claude Code або Copilot) — коментарі в PR
  • Security-перевірки
  • Автоматичний реліз на push у main: build → test → deploy (GitHub Pages, Railway, Fly.io тощо) → smoke test після деплою

7. Документація

README з інструкціями запуску. Опис архітектури. Документація використання AI-асистента в розробці й тестуванні — чесно: що допомогло, що заважало, що довелося переробляти вручну.


Цільова аудиторія

Сегмент 1: QA Engineer Middle+ (основний сегмент)

Профіль: 2–5 років досвіду в тестуванні, вже використовує AI-інструменти для генерації тестів, але не розуміє, як тестувати самі AI-системи. Працює в продуктовій компанії або відчуває тиск переходу на AI-стек. JTBD: «Наш продукт перейшов на LLM. Я не розумію, як тестувати це по-нормальному — і боюся стати нерелевантним. Хочу конкретні інструменти й підходи, щоб упевнено говорити про якість AI-системи з командою вже наступного тижня».

Сегмент 2: Automation QA / SDET Middle+ (технічний сегмент)

Профіль: пише автотести, Python або JS на рівні написання скриптів, розуміє CI/CD. Хоче автоматизувати тестування AI-систем як традиційне ПЗ. JTBD: «Я добре автоматизую традиційне QA. Тепер команди будують агентів і просять „якось це протестувати”. Хочу конкретний технічний стек — фреймворки, інструменти, підходи — щоб робити це правильно».

Сегмент 3: Tech Lead / QA Lead (стратегічний сегмент)

Профіль: відповідає за загальну якість продукту. Команда вже будує або планує LLM-фічі. Розуміє загальну картину, але не має структурованого AI QA-фреймворку. JTBD: «Ми запускаємо AI-фічі, але я не розумію забезпечення якості. Боюся production-інцидентів і не знаю, що питати, щоб перевірити тестування. Хочу структуру й упевненість».