Статья опубликована в рамках: CXXVIII Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 26 августа 2026 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ МЕТОДА ЛОКАЛИЗАЦИИ ДЕФЕКТОВ ПО НА УРОВНЕ СЕМАНТИЧЕСКИХ КЛАСТЕРОВ ИСХОДНОГО КОДА
EXPERIMENTAL STUDY OF A DEFECT LOCALIZATION METHOD AT THE LEVEL OF SEMANTIC CLUSTERS OF SOURCE CODE
Syroezhko Aleksandr Aleksandrovich
Postgraduate student, Moscow Technical University of Communications and Informatics (MTUCI),
Russia, Moscow
АННОТАЦИЯ
Статья посвящена экспериментальному исследованию метода локализации дефектов в исходном коде, основанного на анализе семантических кластеров, и оценке его эффективности. В работе ставится задача количественно измерить влияние предложенного метода на сокращение временных затрат как на этапе локализации дефекта, так и на этапе назначения исполнителя для его устранения. Исследование проводилось посредством A/B-тестирования с участием 20 разработчиков для оценки времени локализации, а также на исторических данных для оценки времени назначения; статистическая значимость различий между группами определялась с помощью U-критерия Манна – Уитни. Результаты показали, что медианное время локализации сокращается на 22,9% относительно ручного подхода, а медианное время назначения – на 88%, при этом для обоих показателей достигнут уровень значимости p < 0.05, что подтверждает статистическую достоверность наблюдаемых различий.
ABSTRACT
The article is devoted to an experimental study of a method for defect localization in source code based on semantic cluster analysis and an evaluation of its effectiveness. The paper aims to quantitatively measure the impact of the proposed method on reducing time costs both at the defect localization stage and at the stage of assigning a developer to fix it. The study was conducted via A/B testing involving 20 developers to assess localization time, as well as on historical data to assess assignment time; statistical significance of differences between groups was determined using the Mann–Whitney U test. The results showed that the median localization time is reduced by 22.9% relative to the manual approach, and the median assignment time is reduced by 88%, with both indicators reaching a significance level of p < 0.05, which confirms the statistical reliability of the observed differences.
Ключевые слова: локализация дефектов; семантические кластеры; исходный код; векторные представления; кластеризация; большие языковые модели; автоматизация назначения.
Keywords: defect localization; semantic clusters; source code; vector representations; clustering; large language models; assignment automation.
Современная разработка программного обеспечения (ПО) сопряжена с ростом сложности и объемов кодовых баз. Современные проекты могут насчитывать миллионы строк кода, написание которых производилось распределенными командами в течение многих лет. В таких условиях критически важной и трудоемкой задачей становится локализация дефектов — процесс определения части исходного кода, которая ответственна за возникновение дефекта, описанного пользователем или тестировщиком на естественном языке. Как правило, этот процесс выполняется вручную и требует от разработчика изучения незнакомого или давно написанного кода, что ведет к значительным временным затратам и, как следствие, к увеличению стоимости исправления ошибок [1]. Однако, на данный момент уже существуют и постоянно совершенствуются подходы, способные автоматизировать данный процесс.
Существующие автоматизированные подходы, основанные на методах информационного поиска [2] и специализированных моделях машинного обучения для поиска кода [3], рассматривают задачу локализации как поиск релевантных фрагментов кода или файлов по текстовому запросу, но не пытаются работать с более высокоуровневыми представлениями: системы, сервисы и т.д. Исходя из этого в работе [4] была предложена иная постановка задачи локализации: рассматривать локализацию дефекта как поиск релевантных семантических кластеров исходного кода, а не отдельных файлов/сегментов, и разработан метод её решения, не требующий предварительной ручной разметки кода. Целью работы являлась разработка метода её решения с использованием LLM. Предложенный метод базируется на кластеризации векторных представлений исходного кода и включает в себя: сегментацию исходного кода по абстрактному семантическому дереву (abstract syntax tree, AST), его векторизацию, кластеризацию с предварительным снижением размерности (UMAP+HDBSCAN) и векторный поиск.
Ключевая идея предложенного метода заключается в переходе от поиска на уровне отдельных файлов, функций или строк к поиску на уровне семантических кластеров — множеств семантически близких сегментов кода, объединенных общей функциональностью. Под сегментами подразумевается непрерывная часть файла с исходным кодом, которую можно идентифицировать по пути к файлу и номерам строк начала и конца фрагмента файла. Исходя из приведенных определений, метод базируется на допущении, что семантическая схожесть сегментов кода влечет за собой схожесть функциональную [5].
Для автоматизации формирования семантических кластеров исходный код предлагается представить как множество точек в многомерном пространстве, которое образует семантическое пространство [6] исследуемого исходного кода. Векторизация сегментов сходного кода производится путем применения больших языковых моделей. Каждой точке однозначно соответствует уникальный сегмент, а расстояние между ними характеризует насколько сегменты близки между собой по смыслу. Сегменты не имеют пересечений и полностью покрывают исходный код. Выделение кластеров производится путем плотностной кластеризации полученных точек.
Поиск релевантных кластеров по описанию дефекта реализуется подходом code-retrieval [7]. Для запроса формируется векторное представление в образованном семантическом пространстве. Далее отбирается
ближайших к нему точек, которые затем заменяются на кластеры, к которым они принадлежат. После этого производится ранжирование отобранных кандидатов и предоставление списка релевантных кластеров.
Целью данной работы является экспериментальное исследование эффективности локализации дефектов на уровне семантических кластеров с применением предложенного метода.
В рамках данного исследования в качестве метрик эффективности используются:
- время локализации – длина временного интервала от назначения дефекта на специалиста для его устранения и до установления им достоверных причин возникновения дефекта;
- время назначения – длина временного интервала от обнаружения дефекта и его фиксации до принятия его в работу релевантным специалистом, который будет его устранять.
Эксперименты проводились на базе разработанного программного комплекса, который автоматизирует назначение дефектов на исполнителей и выполняет первичную локализацию дефекта с применением предложенного метода локализации на уровне семантических кластеров исходного кода.
Оценка эффективность локализации дефектов при использовании предложенного метода производилась через проведение A/B тестирование [8] на группе разработчиков, которые устраняют дефекты в пределах одной функциональной системы. Разработчики были разделены на 2 равные по объему группы: группа ручной локализации и группа автоматизированной локализации. В качестве метрики эффективности локализации использовалось рабочее время от момента взятия задачи на устранение дефекта до момента определения первопричины его возникновения. Исходя из этого были сформулированы следующие гипотезы:
- нулевая гипотеза: статистически значимой разницы во времени локализации дефектов между группами нет;
- проверяемая гипотеза: применение разработанного программного комплекса автоматизации для локализации дефектов приведет к сокращению времени необходимого для выполнения локализации, по сравнению с группой ручной локализации, и это различие является статистически значимым: уровень значимости
.
Для обеспечения чистоты эксперимента и предотвращения шума во входных данных из рассмотрения исключаются дефекты, которые:
- не были устранены за период проведения тестирования;
- дефект был переоткрыт и направлен на доработку;
- задача на устранение дефекта меняла исполнителя;
- для устранения дефекта не были внесены изменения в исходный код.
Фиксация целевых показателей и критериев отбора производилась на основании данных о действиях разработчиков в системе отслеживания дефектов.
Оценка эффективности назначения исполнителей для устранения дефектов при использовании предложенного метода и разработанного программного комплекса производилась на исторических данных. Для этого за фиксированный период из системы отслеживания дефектов были отобраны задачи, удовлетворяющие следующим критериям:
- дефект был заведен и исправлен за исследуемый период;
- после взятия дефекта в работу исполнитель не менялся;
- для устранения дефекта были внесены изменения в исходный код.
В качестве метрики эффективности использовалось время от обнаружения дефекта до назначения исполнителя для его устранения. Данные о времени назначения для исторических данных извлекались из системы отслеживания дефектов. Для оценки эффективности метод применялся к данным историческим данным и время назначения исполнителя рассчитывалось по следующим правилам:
- если метод сделал верный прогноз на исторических данных, то время назначения соответствует времени исполнения алгоритма;
- если метол сделал ошибочный прогноз, то время назначения рассчитывалось как сумма времени затраченного на исполнение алгоритма и времени ручного назначения по историческим данным.
Таким образом, рассматривались 2 набора одинаковых задач, но с различным временем, затраченным на назначение.
Исходя из данной постановки, были сформулированы следующие гипотезы:
- нулевая гипотеза: статистически значимой разницы во времени назначения дефектов между наборами задач нет;
- проверяемая гипотеза: применение разработанного программного комплекса автоматизации для назначения исполнителей приведет к сокращению времени необходимого для выполнения назначения, по сравнению с набором задач с ручным назначением, и это различие является статистически значимым: уровень значимости
.
Далее приведены собранные экспериментальные данные и подтверждения для выдвинутых выше гипотез об эффективности локализации и назначения.
Для оценки эффективности локализации дефектов была привлечена команда разработчиков в составе 20 человек. На её основе были сформированы 2 группы равного размера: одна производит локализацию вручную, а другая с использованием разработанного программного комплекса для автоматизации. Количество задач в обоих группах составляет 124. Результаты эксперимента представлены на рисунке 1.
Медианное время локализации с применением разработанного комплекса автоматизации ниже на 1,1 часа, что составляет 22,9% от медианного времени, затрачиваемого в группе без автоматизации. Для подтверждения проверяемой гипотезы необходимо рассчитать степень статистической значимости. Так как распределения времени локализации не распределены нормально: значение W-статистики [9] составляет 0.73 и 0.78 для контрольной и тестируемой группы соответственно, то для расчета статистической значимости применим U-критерий Манна — Уитни [10].
Для полученных данных уровень статистической значимости [11] равен 0,008525, что позволяет утверждать о статистической значимости наблюдаемой разницы между исследуемыми группами, а следовательно, подтверждает и проверяемую гипотезу о том, что применение разработанного программного комплекса автоматизации для локализации дефектов приведет к сокращению времени необходимого для выполнения локализации, по сравнению с группой ручной локализации, и это различие является статистически значимым: уровень значимости
. Таким образом, предложенный метод и разработанный программный комплекс позволяют повысить эффективность локализации дефектов на 22,9%, что в перспективе способно оказать значимый экономический эффект при полноценном внедрении.

Рисунок 1. Распределение времени локализации дефектов
Для оценки эффективности автоматизированного назначения исполнителей был подготовлен набор исторических данных из 471 дефекта. Медиана времени назначения на исторических данных составляет 5,86 часа, а при использовании разработанного комплекса 0,69 часа. Разница по медиане 5,17 часа, что позволяет утверждать о сокращении времени назначения на 88 %. Для подтверждения проверяемой гипотезы необходимо рассчитать степень статистической значимости. Так как распределения времени назначения не распределены нормально: значение W-статистики составляет 0.97 и 0.74 для контрольного и тестируемого набора данных соответственно, то для расчета статистической значимости применим U-критерий Манна — Уитни. Результаты экспериментов представлены на рисунках 2–3.

Рисунок 2. Время ручного назначения задач
Для полученных данных уровень статистической значимости стремится к нулю, что позволяет утверждать о статистической значимости наблюдаемой разницы между исследуемыми наборами данных, а следовательно, подтверждает и проверяемую гипотезу о том, что применение разработанного программного комплекса автоматизации для назначения исполнителей приведет к сокращению времени необходимого для выполнения назначения, по сравнению с набором задач с ручным назначением, и это различие является статистически значимым: уровень значимости
.

Рисунок 3. Время автоматизированного назначения задач
Таким образом, предложенный метод и разработанный программный комплекс позволяют повысить эффективность назначения исполнителей для устранения дефектов на 88%, что в перспективе способно оказать значимый экономический эффект при полноценном внедрении.
В процессе исследования экспериментальных данных, собранных при апробации метода, были получены следующие результаты:
- разработанный метод позволяет повысить эффективность локализации дефектов на 22,9%;
- разработанный метод позволяет повысить эффективность назначения исполнителей для устранения дефектов на 88%;
- полученные показатели эффективности являются статистически значимыми.
Список литературы:
- A large-scale study of programming languages and code quality in GitHub / B. Ray, D. Posnett, P. Devanbu, V. Filkov.// Communications of the ACM. — 2017. — № 60. — С. 91-100.
- Potvin, R. Why Google Stores Billions of Lines of Code in a Single Repository / R. Potvin, J. Levenberg. // Communications of the ACM. — 2016. — № 59(7). — С. 78–87.
- Israeli, A. The Linux kernel as a case study in software evolution / A. Israeli, D. G. Feitelson. // Journal of Systems and Software. — 2010. — № 3. — С. 485-501.
- Леохин, Ю. Л. Метод локализации дефектов на уровне систем с использованием больших языковых моделей / Ю. Л. Леохин, А. А. Сыроежко. // Вестник Рязанского государственного радиотехнического университета. — 2026. — № 96.
- Modeling Functional Similarity in Source Code With Graph-Based Siamese Networks / N. Mehrotra, N. Agarwal, P. Gupta [и др.]. // IEEE Transactions on Software Engineering. — 2022. — № 10. — С. 3771–3789.
- Distributed representations of words and phrases and their compositionality / T. Mikolov, I. Sutskever, K. Chen [и др.]. // Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2 (NIPS'13). — 2013. — С. 3111–3119.
- CodeRetriever: A Large Scale Contrastive Pre-Training Method for Code Search / X. Li, Y. Gong, Y. Shen [и др.]. // Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing. — Abu Dhabi : Association for Computational Linguistics, 2022. — С. 2898–2910.
- Kohavi, R. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing / R. Kohavi, D. Tang, Y. Xu. — : Cambridge University Press, 2020.
- Razali N. M., Wah Y. B. Power comparisons of Shapiro-Wilk, Kolmogorov-Smirnov, Lilliefors and Anderson-Darling tests // Journal of Statistical Modeling and Analytics. — 2011. — Т. 2, № 1. — С. 21–33.
- Nachar N. The Mann-Whitney U: A Test for Assessing Whether Two Independent Samples Come from the Same Distribution // Tutorial in Quantitative Methods for Psychology. — 2008. — Т. 4, № 1. — С. 13–20.
- Montgomery D. C., Runger G. C. Applied statistics and probability for engineers. — 7th ed. — Hoboken : Wiley, 2018.
дипломов

