Dogfood

Исследовательское QA веб-приложений: поиск багов, доказательства, отчёты.

Метаданные навыка

ИсточникВстроенный (установлен по умолчанию)
Путьskills/dogfood
Версия1.0.0
Платформыlinux, macos, windows
Тегиqa, testing, browser, web, dogfood

Справочник: полный SKILL.md

инфо

Ниже приведено полное определение навыка, которое Hermes Agent загружает при его активации. Именно эти инструкции видит агент во время работы навыка.

Dogfood: систематическое QA-тестирование веб-приложений

Обзор

Навык ведёт агента через систематическое исследовательское QA-тестирование веб-приложений с помощью набора браузерных инструментов. Агент обходит приложение, взаимодействует с элементами, фиксирует доказательства проблем и формирует структурированный отчёт о багах.

Требования

  • Должен быть доступен браузерный набор инструментов: browser_navigate, browser_snapshot, browser_click, browser_type, browser_vision, browser_console, browser_scroll, browser_back, browser_press
  • Целевой URL и область тестирования от пользователя

Входные данные

Пользователь передаёт:

  1. Целевой URL — точка входа для тестирования
  2. Область — какие разделы/функции тестировать (или «full site» для полного охвата)
  3. Директория вывода (опционально) — куда сохранять скриншоты и отчёт (по умолчанию: ./dogfood-output)

Рабочий процесс

Следуй пятифазному систематическому рабочему процессу:

Фаза 1: Планирование

  1. Создай структуру директории вывода:
{output_dir}/
├── screenshots/       # Evidence screenshots
└── report.md          # Final report (generated in Phase 5)
  1. Определи область тестирования на основе данных от пользователя.
  2. Составь предварительную карту сайта — запланируй, какие страницы и функции тестировать:
    • Лендинг/главная страница
    • Навигационные ссылки (шапка, подвал, боковая панель)
    • Основные пользовательские сценарии (регистрация, вход, поиск, оформление заказа и т.д.)
    • Формы и интерактивные элементы
    • Граничные случаи (пустые состояния, страницы ошибок, 404)

Фаза 2: Исследование

Для каждой страницы или функции из плана:

  1. Перейди на страницу:

    browser_navigate(url="https://example.com/page")
  2. Сделай снапшот, чтобы понять структуру DOM:

    browser_snapshot()
  3. Проверь консоль на наличие ошибок JavaScript:

    browser_console(clear=true)

    Делай это после каждого перехода и после каждого значимого взаимодействия. Скрытые JS-ошибки — находки высокой ценности.

  4. Сделай аннотированный скриншот, чтобы визуально оценить страницу и выявить интерактивные элементы:

    browser_vision(question="Describe the page layout, identify any visual issues, broken elements, or accessibility concerns", annotate=true)

    Флаг annotate=true накладывает на элементы пронумерованные метки [N]. Каждый [N] соответствует рефу @eN для последующих команд браузера.

  5. Проверяй интерактивные элементы методично:

    • Кликай по кнопкам и ссылкам: browser_click(ref="@eN")
    • Заполняй формы: browser_type(ref="@eN", text="test input")
    • Тестируй клавиатурную навигацию: browser_press(key="Tab"), browser_press(key="Enter")
    • Прокручивай контент: browser_scroll(direction="down")
    • Тестируй валидацию форм с невалидными данными
    • Тестируй отправку пустых форм
  6. После каждого взаимодействия проверяй:

    • Ошибки консоли: browser_console()
    • Визуальные изменения: browser_vision(question="What changed after the interaction?")
    • Ожидаемое vs фактическое поведение

Фаза 3: Сбор доказательств

Для каждой найденной проблемы:

  1. Сделай скриншот, фиксирующий проблему:

    browser_vision(question="Capture and describe the issue visible on this page", annotate=false)

    Сохрани screenshot_path из ответа — он понадобится в отчёте.

  2. Запиши детали:

    • URL, где возникает проблема
    • Шаги для воспроизведения
    • Ожидаемое поведение
    • Фактическое поведение
    • Ошибки консоли (если есть)
    • Путь к скриншоту
  3. Классифицируй проблему по таксономии (см. references/issue-taxonomy.md):

    • Серьёзность: Critical / High / Medium / Low
    • Категория: Functional / Visual / Accessibility / Console / UX / Content

Фаза 4: Категоризация

  1. Просмотри все собранные проблемы.
  2. Удали дубли — объедини проблемы, которые являются одним и тем же багом, проявляющимся в разных местах.
  3. Присвой каждой проблеме итоговые серьёзность и категорию.
  4. Отсортируй по серьёзности (сначала Critical, затем High, Medium, Low).
  5. Подсчитай количество проблем по серьёзности и категории для управленческой сводки.

Фаза 5: Отчёт

Сформируй итоговый отчёт по шаблону templates/dogfood-report-template.md.

Отчёт должен содержать:

  1. Управленческую сводку с общим числом проблем, разбивкой по серьёзности и охватом тестирования
  2. Раздел по каждой проблеме с:
    • Номером и заголовком проблемы
    • Бейджами серьёзности и категории
    • URL, где обнаружена проблема
    • Описанием проблемы
    • Шагами для воспроизведения
    • Ожидаемым vs фактическим поведением
    • Ссылками на скриншоты (используй MEDIA:<screenshot_path> для встроенных изображений)
    • Ошибками консоли, если применимо
  3. Сводную таблицу всех проблем
  4. Примечания по тестированию — что тестировалось, что нет, любые блокеры

Сохрани отчёт в {output_dir}/report.md.

Справочник инструментов

ИнструментНазначение
browser_navigateПерейти по URL
browser_snapshotПолучить текстовый снапшот DOM (дерево доступности)
browser_clickКликнуть по элементу по рефу (@eN) или тексту
browser_typeВвести текст в поле ввода
browser_scrollПрокрутить страницу вверх/вниз
browser_backВернуться назад в истории браузера
browser_pressНажать клавишу
browser_visionСкриншот + AI-анализ; annotate=true добавляет метки на элементы
browser_consoleПолучить вывод JS-консоли и ошибки

Советы

  • Всегда вызывай browser_console() после перехода и после значимых взаимодействий. Скрытые JS-ошибки — одни из самых ценных находок.
  • Используй annotate=true вместе с browser_vision, когда нужно разобраться с позицией интерактивных элементов или когда рефы из снапшота неоднозначны.
  • Тестируй как с валидными, так и с невалидными данными — баги валидации форм встречаются часто.
  • Прокручивай длинные страницы — контент ниже «линии сгиба» может иметь проблемы с отрисовкой.
  • Тестируй навигационные сценарии — проходи многошаговые процессы от начала до конца.
  • Отслеживай адаптивное поведение, обращая внимание на проблемы с раскладкой на скриншотах.
  • Не забывай про граничные случаи: пустые состояния, очень длинный текст, специальные символы, быстрые клики.
  • При передаче скриншотов пользователю используй MEDIA:<screenshot_path> — так он увидит доказательства прямо в сообщении.
ESC