Bugbug: управление багами и качеством ПО с машинным обучением
Bugbug — платформа, использующая машинное обучение для управления багами и качеством программного обеспечения. Проект направлен на автоматизацию задач, таких как выбор тестов и предсказание дефектов, что может значительно упростить процессы разработки.
В отличие от традиционных инструментов отслеживания ошибок, Bugbug предлагает набор классификаторов для автоматической оценки и назначения багов, что поможет командам быстрее реагировать на проблемы. Это может быть полезно как разработчикам, так и тестировщикам, которые хотят оптимизировать рабочий процесс и повысить эффективность.
Bugbug написан на Python и можно запустить, следуя инструкциям в репозитории. Учти, что проект находится на ранней стадии и возможно отсутствие некоторых функций, а полученные данные можно использовать независимо. Вдобавок, для работы может потребоваться доступ к API Bugzilla.
Проект bugbug разрабатывается для использования техник машинного обучения в управлении ошибками, качеством и других задачах программной инженерии, включая выбор тестов и предсказание дефектов. Он предназначен в первую очередь для работы с проектами Mozilla, такими как Firefox и Bugzilla.
Классификаторы
Bugbug включает в себя несколько классификаторов, которые помогают в автоматизации процессов управления ошибками:
- assignee — предлагает подходящего исполнителя для ошибки.
- backout — определяет патчи, которые могут быть отменены из-за сбоев в сборке или тестах.
- bugtype — классифицирует ошибки по типу (например, «сбой», «память», «производительность» и т. д.).
- component — назначает компонент продукта для (не прошедших предварительную проверку) ошибок.
- defect — различает истинные ошибки и запросы на функции или рефакторинг с точностью около 93%.
- И другие классификаторы для задач, таких как обнаружение спама, определение необходимости проверки качеством и диагностики проблем.
Установка и зависимости
Чтобы установить проект, необходимо установить зависимости Python с помощью:
uv sync
Для зависимостей тестирования используй:
uv sync --group test
Для дополнительных возможностей обработки естественного языка:
uv sync --extra nlp
Проект требует Python версии 3.12 или выше и, возможно, необходимо установить библиотеку libgit2.
sudo apt-get -t experimental install libgit2-dev
Использование
Для обучения модели, запусти скрипт trainer.py:
python -m scripts.trainer
Чтобы использовать модель для классификации ошибки, запусти:
python -m scripts.bug_classifier MODEL_NAME --bug-id ID_OF_A_BUG_FROM_BUGZILLA
Если модели еще не обучены, она будет автоматически загружена из уже обученных.
Структура проекта
Структура проекта включает в себя несколько ключевых компонентов:
bugbug/labels— содержит собранные вручную метки.bugbug/db.py— простая реализация JSON базы данных.bugbug/bugzilla.py— функции для получения данных об ошибках из Bugzilla.bugbug/repository.py— функции для извлечения данных из репозитория mozilla-central.bugbug/models— реализации конкретных моделей.
Использование Bugbug в не-Mozilla проектах
Хотя Bugbug ориентирован на использование в проектах Mozilla, разработчики рады видеть pull requestы, добавляющие поддержку других проектов или трекеров ошибок.
Радар проекта: 66 из 100 — крепкий проект
- Импульс 3 ≈ 6 звёзд в месяц
- Темп разработки 100 430 коммитов за 12 недель
- Зрелость 50 проекту 8 лет, релизов нет
- Сообщество 82 149 участников, 368 форков
- Свежесть 97 последний коммит — 6 дней назад
- Быстрый старт 45 есть: Docker
- Готовность к продакшену 50 автосборка, тесты
- Безопасность и доверие 75 лицензия MPL-2.0, организация
- Документация 98 README 9.1 тыс. знаков, 12 разделов, папка docs
- Экосистема 60 29 подписчиков на обновления, 8 тем
Как считаем
Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: mozilla/bugbug →
RepoRadar