Что Claude Code может делать в процессе QA
- Генерировать модульные тесты для модуля в принятом в проекте стиле и с используемым фреймворком.
- Превращать отчёт об ошибке в падающий регрессионный тест, а затем исправлять код, пока тест не пройдёт.
- Добавлять недостающие граничные случаи в существующий набор тестов (пустой ввод, Unicode, тайм-ауты, параллельное выполнение).
- Писать сквозные тесты для Playwright или Cypress и с помощью браузерного сервера MCP запускать их на работающем приложении.
- Разбирать неудачный запуск CI: читать журнал, находить причину, предлагать или применять исправление.
- Проверять запрос на слияние на наличие непокрытых тестами путей выполнения и публиковать результаты.
Чего он не может — так это решить, что важно. Он охотно доведёт покрытие строк до 100% тестами, которые не проверяют ничего полезного. Качество результата зависит от качества инструкций, поэтому настройка ниже начинается с файла памяти, а не с промпта.
Настройка: объясните, как запускать тесты
# CLAUDE.md
## Testing
- Unit tests: `npm test` (vitest). Files live next to the source as `*.test.ts`.
- E2E: `npx playwright test`, specs in `e2e/`. Needs the dev server: `npm run dev`.
- Always run the relevant test file after editing it. Do not mark a test `.skip` to make the suite pass.
- Prefer table-driven tests; one behaviour per `it()`; no snapshot tests for logic.
Этот блок отличает агента, который гадает, от агента, который ведёт себя как коллега, прочитавший руководство для участников проекта. Добавьте желаемый стиль проверок и то, чего делать нельзя (подменять базу данных моками, пропускать тесты, редактировать фикстуры под неверный результат).
Генерация тестов по спецификации или отчёту об ошибке
> Read src/billing/prorate.ts. Write vitest tests covering the documented behaviour in
docs/billing.md, including month boundaries, leap years and a zero-day period.
Run them; if any fail, tell me whether the code or the doc is wrong before changing code.
> Bug #412: uploading a 0-byte file returns 500 instead of 400. Write a failing test that
reproduces it, then fix the handler so the test passes. Do not touch other tests.
Последнее предложение каждого промпта имеет значение. «Скажи, где ошибка — в коде или документации» не даёт агенту молча менять поведение под только что придуманный тест; «не трогай другие тесты» предотвращает типичную ошибку, когда он редактирует несвязанную проверку, чтобы все тесты прошли.
Цикл запуска и исправления
Попросите агента запустить тест после его написания. Он прочитает вывод со сбоем, внесёт изменения и запустит тест снова — обычно хватает двух-трёх итераций. Следите за запросами разрешения: разрешите Bash(npm test*) и Bash(npx playwright test*) один раз с помощью /permissions чтобы цикл не прерывался, а для разрушительных команд оставьте запрос подтверждения. Если агент повторяет цикл больше четырёх-пяти раз для одного теста, остановите его: вероятно, тест проверяет не то, что нужно, и требуется проверка человеком.
Запуск без интерфейса в CI
# generate regression tests for whatever changed, non-interactively
git diff --name-only origin/main...HEAD | grep -E 'src/.*\.ts$' > changed.txt
claude -p "For each file in changed.txt, add or extend tests for the changed behaviour. Run them." \
--allowedTools "Read,Edit,Write,Bash(npm test*),Bash(git diff*)" \
--max-turns 25 --output-format json > claude-qa.json
Режим вывода никогда не задаёт вопросов, поэтому все допустимые действия нужно заранее разрешить с помощью --allowedToolsи --max-turns ограничивает число итераций цикла. Задайте ANTHROPIC_BASE_URL=https://aiprimetech.io и ключ шлюза как секреты CI, и запуск будет оплачиваться из баланса шлюза или в рамках безлимитного тарифа. Сохраните результат коммитом в отдельной ветке и передайте на проверку человеку — не выполняйте автоматическое слияние сгенерированных тестов.
Для каждого запроса на слияние: GitHub Action
GitHub Action для Claude Code запускает тот же цикл, когда кто-то оставляет комментарий @claude в pull request или автоматически при его открытии. Инструкция в рабочем процессе, ориентированная на QA, — «проверь этот PR на наличие ветвей кода, не покрытых тестами, и добавь для них тесты» — обеспечивает первичную проверку каждого PR до того, как его посмотрит ревьюер. Руководство по GitHub описывает установку приложения, файл рабочего процесса и затраты.
Сквозные тесты с Playwright
Два уровня. Без браузера он пишет спецификации Playwright на основе структуры страницы и вашего описания, а вы запускаете их. С подключённым сервером Playwright MCP (/mcp) он может открыть приложение, пройти сценарий с помощью кликов, прочитать DOM и написать тест, соответствующий увиденному, — селекторы получаются гораздо надёжнее, но сеанс занимает больше времени. Ограничивайте каждый сеанс браузера одним сценарием и /clear между ними; снимки экрана и дампы DOM занимают много места и повторно отправляются на каждом ходе.
Как снизить стоимость запусков QA
- Используйте уровень Sonnet; для генерации тестов Opus нужен редко. Уровень Haiku подходит для разбора логов.
- Направляйте его на один модуль или одну ошибку за раз. «Добавь тесты для всего репозитория» — самый дорогой из возможных запросов.
/compactпосле добавления каждого тестового файла; прочитанные им логи сбоев больше не нужны.- В CI задавайте ограничение с помощью
--max-turnsи запускайте только для изменённых файлов. - Для команды, которая запускает это ежедневно, безлимитный тариф с фиксированной оплатой полностью снимает вопрос оплаты за токены.
| План | Срок действия | Цена |
|---|---|---|
| Безлимит на 1 час | 1 час | $1 |
| Безлимит на 24 часов | 24 часа | $10 |
| Безлимит на 1 неделю | 1 неделя | $49 |
| Безлимит на 15 дней | 15 дней | $89 |
Сначала попробуйте бесплатно
Новые аккаунты получают $5 бесплатного баланса для API по коду CLAUDECODE — этого хватит на вечер работы с Claude Code на Sonnet — затем кредиты с балансом в 7.69231 раза больше номинала.
export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_keyЧасто задаваемые вопросы
Может ли Claude Code писать модульные тесты?
Да — с использованием принятого в проекте фреймворка и стиля, если они указаны в CLAUDE.md. Попросите его затем запустить тесты, чтобы он исправил собственные ошибки.
Может ли Claude Code запускать тесты Playwright?
Да. Он может самостоятельно писать спецификации, а с сервером Playwright MCP — управлять настоящим браузером для их создания и проверки.
Подходит ли Claude Code для автоматизации QA?
Для генерации тестов, выполнения цикла «написать — запустить — исправить» и разбора сбоев CI — очень хорошо. Он не заменяет решение о том, что нужно тестировать, а сгенерированные тесты всё равно требуют проверки человеком перед слиянием.
Как запускать Claude Code в CI для тестирования?
Используйте claude -p с --allowedTools и --max-turns, храните учётные данные шлюза или Anthropic в секретах и фиксируйте результат в отдельной ветке для проверки. GitHub Action оборачивает тот же процесс для pull request.
Запускайте Claude Code через шлюз
Те же модели, две переменные окружения, кредиты с балансом в 7.69231 раза больше номинала — или безлимитный тариф с фиксированной оплатой. Для новых аккаунтов: $5 бесплатного баланса для API по коду CLAUDECODE.
Получить API-ключ Посмотреть безлимитные тарифыAI Prime Tech — независимый API-шлюз, который не связан с Anthropic, не одобрен и не спонсируется этой компанией. «Claude» и «Claude Code» — товарные знаки Anthropic. Описанные здесь возможности Claude Code соответствуют публичной документации Anthropic на момент написания и часто меняются; цены и списки моделей на этой странице берутся из текущих настроек шлюза.