Данный набор файлов представляет собой результат моего участия в курсовом проекте на тему "Оценка качества отчетов о дефектах программного обеспечения в системах отслеживания ошибок" с компанией Exactpro (https://exactpro.com/ru).
Файлы: course_work.docx - подробное описание курсовой работы; raw_code.py - исследовательский код (неоформленный)
Ниже приведено краткое описание моей работы.
- Хотелось бы уметь автоматически оценивать качество описаний дефектов ПО на естественном языке. Целью моей части работы по данному курсовому проекту была попытка выполнения этой задачи методами машинного обучения.
- В исследовании N. Bettenburg., T. Zimmermann. What makes a good bug report?, 2008 по результатам опросов разработчиков ПО было выяснено, что в описаниях дефектов на естественном языке наиболее важно наличие следующих смысловых элементов: шаги для воспроизведения дефекта и ожидаемое/фактическое поведение программы. Наличие этих элементов принимается в данной курсовой работе критерием качества описаний дефектов.
- В качестве данных взята размеченная экспертом выборка, состоящая из находящихся в публичном доступе 2122 отчётов о дефектах программного обеспечения из трёх проектов https://issues.jboss.org/browse/MB-1294?jql=project%20%3D%20MB Из них лишь в 9% есть шаги для воспроизведения и лишь в 5% есть ожидаемое/фактическое поведение.
- Произведена предобработка текстов описаний дефектов - удаление шумовых данных (Stack Trace и проч.), удаление стоп-слов, стемминг/лемматизация.
- 2122 описания дефектов, после индексации tf-idf, представлены в виде матрицы объекты-признаки (признаки - термы). Для каждого варианта предобработки (стемминг/лемматизация, токены/биграммы) получена отдельная матрица.
- Произведено сокращение размерности пространства признаков различными методами (Information Gain, Binormal Separation).
- На матрицах, полученных в пунктах 5-6 обучаются несколько классификаторов (SVM, LogReg, Gaussian Naive Bayes, Random Forest), определяющих наличие/отсутствие шагов для воспроизведения дефекта и/или ожидаемого/фактического поведения программы в описании дефекта.
- F-measure лучшего классификатора (Random Forest, обученного на матрице проиндексированных tf-idf биграмм после Information Gain) равна 0.59 для шагов для воспроизведения и 0.55 для ожидаемого/фактического поведения.