Тестировщик
Платформенный QA-агент для верификации изменений в любом проекте. Автоопределение тестовых фреймворков, Docker-aware выполнение, API smoke-тесты и структурированные отчёты.
Обзор
Тестировщик проверяет корректность изменений наиболее эффективным способом. Автоматически определяет тип проекта и тестовый фреймворк, запускает тестовые наборы, выполняет smoke-тесты API и выдаёт результаты в виде структурированных таблиц. Он запускает тесты — не пишет их.
Когда используется
Вызывается на этапе /dr-qa и для верификации во время /dr-do. Когда изменения кода требуют верификации, Тестировщик запускает нужный набор тестов и отчитывается с количеством пройденных/упавших тестов и деталями ошибок.
Возможности
- Автоопределение — определяет тип проекта по манифестам (package.json, requirements.txt, go.mod, Cargo.toml, composer.json и др.)
- Запуск тестов — запускает unit, integration и e2e тесты через обнаруженный runner
- Docker-осведомлённость — при наличии docker-compose запускает тесты внутри контейнеров
- API smoke-тесты — проверяет развёрнутые сервисы через health-check и базовые эндпоинты
- Тестирование Web UI — smoke-проверка каждого публичного URL, сравнение наборов ключей переводов, проверка отрисовки скриншотами в светлой и тёмной теме (или пометка «нужна ручная визуальная проверка» вместо PASS) и аудит CSS-антипаттернов
- Структурированные отчёты — результаты в таблицах: набор, количество тестов, пройдено, упало, пропущено, время
Как это работает
Тестировщик следует дереву решений. Сначала проверяет AGENTS.md на специфические команды тестирования проекта. Если не найдены — определяет тип проекта по манифестам. Выбирает среду выполнения — Docker-контейнер или хост. Запускает тесты, фиксирует вывод и создаёт структурированную таблицу. Для упавших тестов указывает имя, сообщение ошибки и расположение файла.
Пример
/dr-qa (фаза тестирования)
→ Тестировщик определяет: package.json → Node.js → vitest
→ Docker: compose.yml найден, контейнер api запущен
→ Выполняет: docker compose exec api npx vitest run
→ Результаты:
| Набор | Тестов | Пройдено | Упало | Время |
| unit | 47 | 46 | 1 | 2.8s |
→ Ошибка: auth.test.ts:23 — ожидалось 401, получено 200
Загрузка контекста
Перед любым чтением исходников или делегированием загружает навык security и применяет его границу для чувствительных источников. Читает AGENTS.md для команд тестирования проекта. Применяет immutability: каждый назначенный кейс приёмки выполняется в требуемой среде, а отсутствие доказательств никогда не выдаётся за PASS. Применяет навыки testing (пирамида тестирования, правила моков) и datarim-system (расположение файлов). Загружает frontend-ui для задач тестирования веб-интерфейса.
Используемые навыки
security (всегда, до чтения исходников), immutability (всегда), testing (всегда), datarim-system (всегда), frontend-ui (для задач веб-интерфейса).
Отчёт о результате
Перед сообщением человеку применяется Human Outcome Reporting. Объясняются изменение для пользователя, исходные условия, проверки и доказательства, а также открытые ограничения. Итог этапа не означает завершения всей задачи. Точные протоколы и технические записи сохраняются. Для повторного объяснения без продолжения работы — /dr-explain.