Что такое тестирование AI и LLM, чем оно отличается от традиционного QA и какие навыки нужны начинающему тестировщику.
Искусственный интеллект и большие языковые модели (LLM) сегодня — часть продуктов, которые тестируют QA-инженеры: чат-боты, AI-поиск, генераторы контента, инструменты автоматического принятия решений. Тестирование таких систем опирается на тот же подход, что и классическое QA, но добавляет набор проблем, с которыми традиционное ручное и автоматизированное тестирование никогда не сталкивалось.
В этой статье рассматриваются:
Традиционное ПО детерминировано: при одинаковом вводе и одинаковом коде результат всегда одинаков. Форма входа либо принимает пароль, либо отклоняет его, и это поведение не меняется от запуска к запуску. AI-системы, особенно построенные на моделях машинного обучения, работают иначе. Их поведение формируется на основе данных, а не явно заданных правил, поэтому система может «работать правильно» и всё равно выдавать ответ, который никто не предсказывал.
Отсюда три практических следствия для тестирования. Во-первых, редко существует единственный правильный ответ, с которым можно сравнить результат, — тестировщики работают с диапазоном допустимых ответов, а не с одним ожидаемым значением. Во-вторых, поведение системы может меняться со временем по мере дообучения или донастройки модели, поэтому тест, который проходил в прошлом месяце, не гарантированно пройдёт сегодня. В-третьих, ошибки часто незаметны: система отвечает уверенно и связно, даже когда ошибается, поэтому тестировщику приходится активно искать ошибки, а не ждать явного сбоя.
Задайте LLM один и тот же вопрос дважды — и вы можете получить два по-разному сформулированных, а иногда и противоречащих друг другу ответа. Это происходит потому, что большинство языковых моделей генерируют текст, выбирая слова на основе распределения вероятностей, а не всегда самое вероятное следующее слово. У некоторых систем эту случайность можно уменьшить (часто это называют «температурой»), но полностью убрать её удаётся редко, а многие продакшн-системы намеренно сохраняют долю случайности, поскольку это делает ответы более естественными.
Для тестирования это означает, что один прогон теста мало что доказывает. Тест-кейс, который прошёл один раз, может не пройти при следующем запуске с тем же вводом, а тест, который не прошёл один раз, может оказаться случайностью, а не реальным багом. Эффективное AI-тестирование обычно запускает один и тот же ввод несколько раз и анализирует закономерность в ответах — как часто система даёт правильный, допустимый или неверный ответ, — вместо того чтобы считать один запуск окончательным результатом.
AI-тестирование обычно строится вокруг нескольких пересекающихся направлений, и зрелая тест-стратегия охватывает их все:
Каждое из этих направлений требует своего подхода к дизайну тестов, и большинство реальных проектов расставляют приоритеты по-разному в зависимости от назначения AI-системы: например, для клиентского чат-бота безопасность и предвзятость важнее, чем для внутреннего инструмента суммаризации данных.
AI-тестирование — это не единая фаза в конце разработки, оно происходит на нескольких этапах:
QA-инженеры обычно наиболее вовлечены в интеграционное тестирование и мониторинг в продакшне, работая вместе с дата-сайентистами и ML-инженерами, которые отвечают за более ранние этапы.
Чтобы начать тестировать AI-функции, не обязательно иметь опыт в машинном обучении. Базовые навыки тестирования — проектирование тест-кейсов, мышление в граничных случаях, чёткая документация дефектов, системный подход к покрытию — переносятся напрямую. Меняется мышление: вместо сравнения с одним ожидаемым значением вы учитесь определять диапазон допустимых ответов, запускать тесты многократно, а не один раз, и внимательно следить за тем, насколько уверенно система утверждает то, что на самом деле оказывается неверным.
Практический способ начать — выбрать функцию, которой вы уже пользуетесь: чат-бот, AI-поиск, инструмент для написания текста, — и намеренно попытаться её «сломать»: спросить что-то за пределами её задач, дать противоречивые инструкции или задать один и тот же вопрос пять раз и сравнить ответы. Закономерности, которые вы заметите в ходе такого исследования, — основа для остальных статей этого раздела.
Определение «правильности» в AI-системах
Решение проблемы нестабильности LLM на маркетплейс-платформах
Retrieval-Augmented Factuality
Тестирование галлюцинаций в чат-ботах