LLM Testing: тестирование AI-приложений и агентов

Курс по автоматизированному тестированию LLM-приложений для QA и Python-разработчиков. Вы создадите на Python и pytest собственный набор проверок для Service Desk AI: факты и ссылки на источники, действия агентов, права доступа, безопасность и регрессии. Подключите тесты к CI и в итоговой работе обоснуете решение о…
Средний уровень
4–5 часов в неделю
Сертификат Stepik

Чему вы научитесь

  • Определять риски AI-приложения и составлять план проверок по его ответам, источникам, инструментам и действиям
  • Писать типизированный HTTP-клиент на HTTPX и Pydantic, различать ошибки транспорта, HTTP и контракта ответа
  • Изолировать состояние сценариев через фикстуры pytest и обеспечивать независимость повторных запусков
  • Параметризовать проверки с устойчивыми идентификаторами случаев и сохранять данные для воспроизведения ошибок
  • Создавать эталонные наборы случаев с входными данными, исходным состоянием и проверяемыми ожиданиями
  • Подбирать позитивные, негативные и пограничные случаи для разных категорий ошибок AI-приложения
  • Проверять эквивалентные перефразировки и метаморфные свойства без требования дословного совпадения ответов
  • Версионировать наборы данных и разметку, разделять выборки для разработки, регрессий и независимой проверки
  • Проверять JSON-схему, обязательные поля и ограничения структурированного ответа модели
  • Разбивать ответы на отдельные утверждения и сверять их с подтверждающими фрагментами исходных документов
  • Проверять корректность цитат, идентификаторов и редакций документов, обнаруживать ссылки на устаревшие источники
  • Проверять обоснованный отказ от ответа, когда в доступных источниках недостаточно сведений
  • Разделять детерминированные проверки и смысловое оценивание с участием человека или LLM-судьи
  • Проверять схемы и аргументы инструментов, выявлять недопустимые вызовы и ошибки их выполнения
  • Анализировать последовательность действий агента по трассировке, учитывая допустимые альтернативные пути решения
  • Сопоставлять ответ агента с фактическим состоянием заявки и подтверждать успешность или неуспешность действия
  • Проверять полномочия пользователя, обязательное подтверждение изменений и защиту от повторной записи
  • Воспроизводить прямые попытки подмены инструкций и проверять, что они не приводят к запрещённым действиям
  • Проверять внедрение инструкций через документы и результаты инструментов без передачи им полномочий агента
  • Выявлять нарушения разграничения доступа, утечки данных и раскрытие чувствительных сведений в ответах и журналах
  • Рассчитывать показатели качества по категориям рисков с учётом успешных, ошибочных и неопределённых результатов
  • Измерять повторяемость проверок и отличать колебания результатов от подтверждённого изменения поведения
  • Калибровать LLM-судью на человеческой разметке, выявлять ложные одобрения, ложные отказы и ошибки оценщика
  • Связывать запросы, ответы и вызовы инструментов по трассировкам с учётом версий модели, промпта и конфигурации
  • Проверять таймауты, ошибки модели и инструментов, повторы и неполные наблюдения без ложных положительных результатов
  • Считать токены, стоимость и задержки по сохранённым данным, различая реальные измерения и смоделированные значения
  • Сравнивать исходную и изменённую конфигурации на одном наборе случаев и находить регрессии по каждому случаю
  • Проверять чувствительность тестов с помощью контролируемых дефектов ответов, промптов и инструментов
  • Разделять обязательные локальные проверки и необязательные обращения к внешней модели при запуске в CI
  • Настраивать критерии блокировки и дополнительной проверки выпуска, готовить отчёт с доказательствами, ограничениями и решением BLOCK, REVIEW или RELEASE

О курсе

LLM Testing: Проверки ответов, действий агентов и регрессий с Python и pytest

🧭 Отправная точка

Пользователь спрашивает Service Desk AI, сколько рабочих мест входит в тариф Pro. Сервис возвращает 200 OK, ответ соответствует JSON-схеме и содержит ссылку на документацию. В актуальной редакции документа указано 25 мест, а ассистент отвечает, что их 20. Ссылка ведёт на старую редакцию и подтверждает устаревшее значение.

Другой пример — работа с заявками. Агент сообщает, что отказал пользователю в изменении чужой заявки. Чтобы проверить отказ, нужно посмотреть, вызывался ли инструмент записи и сохранилось ли исходное состояние заявки. Одного текста ответа для этого недостаточно.

На курсе вы создадите собственную систему автоматизированного тестирования учебного приложения Service Desk AI. Она будет проверять факты и ссылки на документы, работу инструментов, права доступа, безопасность и изменения поведения между версиями. Вы научитесь собирать доказательства ошибок и принимать обоснованное решение о выпуске.

🎯 Цель курса — научиться проверять AI-приложения на Python: строить воспроизводимые сценарии, оценивать ответы и действия агента, выявлять регрессии и объяснять, на каких данных основаны результаты тестирования.

Курс рассчитан на тех, кто уже работает с Python, pytest и HTTP API. В программе 11 разделов и 42 урока. Вы исследуете готовый Service Desk AI и постепенно разовьёте отдельный проект проверок. Разрабатывать самого агента или обучать языковую модель не потребуется.

⚙️ Что вы будете делать

  • 🧩 Создавать основу автотестов. Напишете типизированный HTTP-клиент на HTTPX и Pydantic, добавите фикстуры pytest, параметризацию и изоляцию сеансов. Проверите структуру ответов и различия между ошибкой транспорта, HTTP-статусом и нарушением контракта. Научитесь сохранять сведения, по которым можно повторить неудачный сценарий.

  • 📚 Проверять факты, источники и смысл ответов. Подготовите версионируемые наборы случаев с ожидаемыми свойствами. Будете сверять отдельные утверждения с документами нужной редакции, проверять цитаты и обоснованный отказ от ответа. Добавите проверки перефразированных вопросов и разберёте, как оценивать смысл по размеченным человеком примерам, не пропуская ошибочные числа или неподтверждённые утверждения.

  • 🔐 Тестировать инструменты и безопасность агента. Исследуете последовательность вызовов, разрешения на чтение и запись, подтверждение изменений и защиту от повторного действия. Проверите попытки передать посторонние инструкции через запросы, документы и ответы инструментов. Сопоставите текст ответа, трассировку и фактическое состояние заявки, чтобы обнаруживать запрещённые изменения и утечки данных.

  • 🔁 Сравнивать версии и принимать решение о выпуске. Построите запуск оценок на закреплённых наборах, научитесь учитывать повторяемость, ошибки оценщика, задержки и стоимость. Сравните исходную и изменённую конфигурации по каждому случаю, подключите проверки к CI и реализуете решения BLOCK, REVIEW и RELEASE на основании измеренных результатов.

🔥 Чем отличается курс

Вся практика ведётся на готовом Service Desk AI с HTTP API, документами нескольких редакций, учебными заявками и трассировками. Проверки вы пишете отдельно от приложения. Это позволяет исследовать его поведение через запросы, ответы, сведения об инструментах и состояние ресурсов, а затем воспроизводить найденные нарушения.

Для проверки ответа используются разные критерии. Утверждение должно подтверждаться подходящим источником, а цитата — относиться к нужной редакции документа. Если необходимых сведений нет, система должна обоснованно отказаться от ответа. Вы разберёте эти ситуации отдельно, чтобы верная формулировка не скрывала ошибочную ссылку, а наличие ссылки — неподтверждённый факт.

Отдельный блок посвящён смысловому оцениванию. Вы сопоставите решения оценщика с человеческой разметкой, посчитаете ложные одобрения, ложные отказы и случаи без определённого результата. Разберётесь, как ошибка или отсутствие ответа оценщика влияет на итоговую метрику и почему важно учитывать все проверенные случаи.

При проверке действий агента вы будете сверять его слова с реальными последствиями. Например, для запрещённой записи важно подтвердить неизменность заявки, а для разрешённой — точное изменение и отсутствие повторного применения. Отдельные задания проверяют попытки изменить полномочия через недоверенный текст и передачу данных за пределы доступной области.

Обязательные задания выполняются локально на синтетических данных и воспроизводимых сценариях модели. Для них не нужны платные LLM и внешние API-ключи. В курсе есть также работа с сохранёнными наблюдениями другой версии модели: такие данные позволяют испытать систему оценивания, но не подтверждают качество нового живого вызова. Сравнение с внешними моделями доступно отдельно, по желанию, с ограничениями затрат.

В отчётах вы будете различать PASS, FAIL и UNDETERMINED. Отсутствующие наблюдения сохраняются в результатах и учитываются при решении о выпуске. Вы также сравните стоимость и задержки по зарегистрированным данным и проверите, что критическое нарушение может заблокировать выпуск независимо от общего процента успешных случаев.

📚 Дополнительные бесплатные материалы

🎯 Итоговый проект

К концу курса у вас будет собственный Python-проект для тестирования Service Desk AI: HTTP-клиент, наборы проверочных данных, оценщики фактов и цитат, тесты полномочий и действий, сравнение прогонов и проверки в CI.

В финале вы получите изменённую конфигурацию release-review-v1 без готового перечня ошибок. Сначала зафиксируете критерии приёмки и исходные данные, затем выполните сравнение с baseline-v1 на одинаковых наборах. Исследуете подтверждённые регрессии, проверите источники, трассировки и состояние заявок после действий агента. Отдельно учтёте неполные наблюдения, стоимость и задержки.

Итогом станет воспроизводимый пакет приёмки: план проверки, реестр обнаруженных изменений, тесты и краткое техническое заключение. В нём вы обоснуете решение BLOCK, REVIEW или RELEASE, укажете ограничения проверки и условия, при которых решение нужно пересмотреть. Результаты сохраните в собственном репозитории.

🧪 Поддержка

🤝 Вопросы по материалам курса можно задавать в комментариях Stepik. Разбирая сложную ситуацию, приложите название урока, свои действия и полученный результат — так проще понять причину ошибки и предложить следующий шаг.

✅ Практические работы проверяет преподаватель. Вы получаете обратную связь по выполненному заданию: что соответствует требованиям, что стоит исправить и на что обратить внимание при повторной проверке.

🚀 О XNova

XNova — практические курсы и учебные проекты для разработчиков, тестировщиков и инженеров. Мы разбираем технологии на работающих примерах: с кодом, наблюдаемым результатом и объяснением инженерных решений.

🔗 xnova.dev — другие курсы и материалы XNova.

📬 Контакты и сообщество

Продолжить знакомство с XNova, следить за новыми материалами или задать организационный вопрос можно здесь:

  • 📣 Telegram-канал: @xnova_dev — анонсы курсов, статьи и новости проекта.
  • 💬 Написать XNova: @xnova_contact — контакт для вопросов о курсах и проекте.
  • ✉️ Почта: contact@xnova.dev — если удобнее написать письмом.
  • 💻 GitHub: xnova-tech — открытые учебные проекты и примеры.

🔒 Доступ к разделам

⚠️ Важно! Модули курса открываются постепенно. Чтобы перейти к следующему модулю, необходимо набрать определённое количество баллов в текущем. Это вынужденная мера. Выполнять все задания не требуется, достаточно выполнить основную часть.

Для кого этот курс

— QA/AQA-инженеры, которые уже пишут тесты на Python и pytest и хотят научиться проверять ответы LLM-приложений, вызовы инструментов, права доступа и регрессии между версиями. — SDET, QA Lead и инженеры, отвечающие за качество AI-функций, которым нужно определять критерии приёмки, собирать воспроизводимые доказательства ошибок и обосновывать решение о выпуске. — Python- и Backend-разработчики, которые интегрируют языковые модели и инструменты с HTTP-сервисами и хотят проверять корректность ответов, побочные эффекты и безопасность поведения приложения. — Инженеры, которые занимаются оценкой качества AI-приложений и хотят разобраться в эталонных наборах данных, смысловых оценках, калибровке LLM-судьи и измерении изменений качества на фиксированной выборке.

Начальные требования

📚 Что нужно знать

  • Python и pytest: уверенно писать и запускать тесты, работать с фикстурами и проверками результатов.
  • HTTP и JSON: понимать запросы к API и структуру ответов.
  • Git и терминал: работать с репозиторием и запускать Python-проекты.
  • Основы LLM: понимать назначение промпта и вызова инструмента.

Разрабатывать собственного агента или обучать языковую модель для прохождения курса не нужно.

🧰 Что понадобится

  • Python 3.12, uv 0.13.0 и Git. Проверенное окружение использует CPython 3.12.2.
  • Компьютер для запуска локального учебного приложения и тестов pytest. Docker не требуется.

Обязательные задания выполняются без платных запросов к моделям и API-ключей. Сравнения с реальными моделями доступны отдельно, по желанию; при их использовании возможны расходы.

Как проходит обучение

🧪 Каждый тест отвечает на конкретный риск AI-приложения. После объяснения и вопросов вы добавляете проверки в Python-проект и видите результат на готовом Service Desk AI.

  • 📚 Готовите эталоны: фиксируете ожидаемые факты, цитаты и ответы для сравнения.
  • 🔐 Проверяете действия: исследуете вызовы инструментов, права доступа и побочные эффекты.
  • ✅ Ловите регрессии: запускаете набор проверок в CI и оформляете вывод для решения о выпуске.

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

В курс входят

  • 43 урока
  • 1час 21минута видео
  • 40 тестов
  • 39 интерактивных задач
загружаем...

Наши преподаватели

Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • Собственный Python-проект автоматизированного тестирования готового приложения Service Desk AI с воспроизводимыми проверками через HTTP API
  • Типизированный клиент HTTPX/Pydantic, фикстуры pytest, параметризованные сценарии и сохранённые результаты неуспешных проверок
  • Версионируемые эталонные наборы случаев для проверки ответов, источников и регрессий между конфигурациями
  • Проверки структуры ответов, подтверждения фактов, актуальности цитат, обоснованного отказа и смыслового соответствия
  • Автоматизированные проверки контрактов инструментов, последовательности вызовов, полномочий и фактических изменений заявок
  • Набор негативных сценариев для prompt injection, разграничения доступа, защиты данных и запрещённых действий агента
  • Расчёты метрик качества и повторяемости, результаты калибровки LLM-судьи на размеченных примерах
  • Проверки трассировок, ошибок выполнения, времени ответа, расхода токенов и стоимости по сохранённым наблюдениям
  • Скрипты сравнения исходной и изменённой конфигураций, регрессионный набор и правила проверок в CI
  • Итоговый пакет приёмки изменённого Service Desk AI: результаты прогонов, подтверждённые регрессии, оценка рисков и обоснованное решение о выпуске

Сколько стоит обучение

3 990 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям