При запуске программы необходимо в файловой системе выбрать папку с локальным репозиторием. Построение графиков доступно после анализа данных при вводе порядкового номера разработчика из консоли. Текстовые файлы с отчётами обновляются после выполнения программы и содержатся в папке task.
Гипотеза 1.
Разработчик в одних и тех же файлах ошибается чаще, чем в других.
Гипотеза 2.
Разработчик чаще ошибается в коде, с которым он реже работает.
Задание 1.
Проверить гипотезы.
Задание 2.
Предполагая, что первая гипотеза верна, определить:
- Коммиты, в которых весьма вероятна ошибка
- Разработчика, которому лучше доверить ревью таких коммитов
Выводом к данной задаче в нашем проекте являются отчёты - файлы формата .txt, а также графики, показывающие отклонение процента ошибки в файлах от среднего для каждого разработчика.
По отчётам можно проследить за ходом выполнения задачи.
Таким образом:
-
Первый отчёт - stats_start приводит данные о том, сколько каждым разработчиком было сделано изменений, требующих исправлений и не требующих исправления. Вывод осуществлён в формате:
Разработчик - {файл: [количество_"неудачных"_изменений, количество_"удачных"_изменений]}.
-
Второй отчёт - stats_probability выводит данные о вероятности, что коммит будет требовать исправления. Данная вероятность выводится на основе процента ошибки в файлах, входящих в коммит. Вывод осуществлён в формате:
Хэш_коммита - вероятность_ошибки_в_коммите (%)
-
Третий отчёт - stats_reviewers выводит данные о том, какого разработчика, слудует назначить на ревью коммита. Для ревью выбирается тот разработчик, у которого наименьшее число ошибок в файлах данного коммита. Вывод осуществляется в формате:
Хэш_коммита - ревьюер
-
Четвёртый отчёт - stats_deviation выводит данные об отклонении процента ошибки от среднего для каждого разработчика по файлам. Также выводится Fail rate - отношение количества отклонений выше среднего к общему количеству файлов. Вывод осуществляется в формате:
Разработчик - [отклонение_от_среднего]
Fail_rate
-
На основе четвёртого отчёта строятся графики для каждого разработчика, по ним мы можем видеть, что существуют файлы, в которых ошибки совершаются чаще, чем в остальных, что, в свою очередь, является подтверждением первой гипотезы.
Пример графика:
-
На основе зависимости между количеством изменений файла и средняя вероятность ошибки за такого количество изменений. По графику видно, что, в общем случае, с большим числом изменений выше и вероятность ошибки, что является опровержением второй гипотезы.
Пример графика:

