Bugbug: управление багами и качеством ПО с машинным обучением

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ы, добавляющие поддержку других проектов или трекеров ошибок.

Открыть на GitHub: mozilla/bugbug →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте