
Мы разработали исследование, чтобы увидеть, сможет ли ИИ подражать реальным программным ошибкам
4 июня 2025 г.Авторы:
(1) Бо Ван, Университет Пекин Цзиотонг, Пекин, Китай (wangbo_cs@bjtu.edu.cn);
(2) Mingda Chen, Пекинский университет Цзиотонга, Пекин, Китай (23120337@bjtu.edu.cn);
(3) Youfang Lin, Пекинский университет Цзиотонг, Пекин, Китай (yflin@bjtu.edu.cn);
(4) Майк Пападакис, Университет Люксембурга, Люксембург (michail.papadakis@uni.lu);
(5) Цзе М. Чжан, Королевский колледж Лондон, Лондон, Великобритания (jie.zhang@kcl.ac.uk).
Таблица ссылок
Аннотация и1 Введение
2 предыстория и связанная с ним работа
3 Учебный дизайн
3.1 Обзор и исследования исследований
3.2 Наборы данных
3.3 генерация мутаций через LLMS
3.4 Метрики оценки
3.5 Настройки эксперимента
4 Результаты оценки
4.1 RQ1: производительность по стоимости и юзабилити
4.2 RQ2: сходство поведения
4.3 RQ3: воздействие различных подсказок
4.4 RQ4: воздействие различных LLMS
4.5 RQ5: основные причины и типы ошибок некомпилируемых мутаций
5 Обсуждение
5.1 Чувствительность к выбранным настройкам эксперимента
5.2 Последствия
5.3 Угрозы достоверности
6 Заключение и ссылки
3 Учебный дизайн
3.1 Обзор и исследования исследований
Наша статья намерена тщательно исследовать возможности существующих LLM в генерации мутаций. Мы разрабатываем вопросы исследований, охватывающие оценку настройки нашего исследования по умолчанию, влияние быстрых инженерных стратегий и моделей, а также анализ основной причины для неэффективных аспектов. В частности, мы стремимся ответить на следующие пять вопросов исследования.
• rQ1: Как LLM работают при создании мутаций с точки зрения стоимости и удобства использования?
• RQ2: Как LLM работают в генерации мутаций с точки зрения сходства поведения с реальными ошибками?
• RQ3: Как различные подсказки влияют на производительность при создании мутаций?
• RQ4: Как различные LLM влияют на производительность при создании мутаций?
• RQ5: Каковы основные причины и типы ошибок компиляции для генерации некомпилируемых мутаций?
3.2 Наборы данных
Мы намерены оценить наш подход с помощью реальных ошибок, и поэтому нам нужно использовать наборы данных ошибок со следующими свойствами:
• Наборы данных должны включать Java -программы, поскольку существующие методы в основном основаны на Java, и нам нужно сравнить с ними.
• Ошибки наборов данных должны быть ошибками в реальном мире, чтобы мы могли сравнить разницу между мутациями и реальными ошибками.
• Каждая ошибка в наборах данных имеет правильную фиксированную версию, предоставленную разработчиками, чтобы мы могли мутировать фиксированную версию и сравнить их с соответствующими реальными ошибками.
• Каждая ошибка сопровождается хотя бы одним тестом, вызывающим ошибку, потому что нам нужно измерить, влияют ли мутации на выполнение тестов, вызывающих ошибки.
С этой целью мы используем Defects4j v1.2.0 [37] и проводят проведения [82] для оценки подходов к генерации мутаций, показанных в таблице 1. В целом, мы проводим эксперименты на 440 ошибках.
Defects4J является широко используемым эталоном в области тестирования на мутации [15, 38, 40, 43, 55, 70], который содержит исторические ошибки из 6 проектов с открытым исходным кодом, обеспечивая широкое представление реальных ошибок. В общей сложности эти 6 проектов содержат 395 реальных ошибок. Тем не менее, из таблицы 2 и таблицы 1 мы наблюдаем, что промежутки времени ошибок Defects4J раньше, чем время обучения LLMS, что может вводить утечку данных. Поэтому мы дополняем еще один набор данных, проводятся [82], предназначенные для решения проблем утечки данных. Condefects состоит из задач из конкурса программирования Atcoder [2]. Чтобы предотвратить утечку данных, мы используем исключительно ошибки, о которых сообщалось после даты выпуска LLMS, в частности, те, которые были идентифицированы 31 августа 2023 года или после этого, и в общей сложности мы собираем 45 программ Java из Cindefects.
Эта статья есть
Оригинал