Как крупные языковые модели улучшают тестирование на мутацию - и что еще нужно работать
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 Заключение и ссылки
5.2 Последствия
Основываясь на наших выводах, мы обсуждаем плюсы и минусы использования LLM для генерации мутаций и предлагаем потенциальные улучшения.
Во-первых, наше исследование показывает, что существующие LLM могут генерировать высококачественные мутации для тестирования на мутации с приемлемыми затратами. Наибольшим преимуществом LLM является их способность генерировать мутации, которые более близко имитируют реальные ошибки в поведении. Например, в листинге 1 показаны две компилируемые мутации, генерируемые GPT-3.5 в диаграмме-1, которые теоретически выходят за рамки возможностей существующих подходов. В мутации-1 выводы LLM должны существовать левый блок из-за возникновения правого блока и заменяют переменную соответственно. Эта мутация не убивается в результате теста, вызывающего ошибки. Без естественного языка понимание возможностей (то есть понимание соответствия

Между «правым» и «слева») невозможно создать такие мутации. В мутации-2 LLM изменяет ветвь Else, если, используя целочисленную переменную серию из контекста, чтобы синтезировать условие, показывая возможности структурного изменения кода, которые не могут достичь существующих методов. Кроме того, эта мутация жива и может направлять улучшение тестов.
Во-вторых, наше исследование исследует, как различные подсказки, модели, контексты и несколько выстрелов влияют на производительность генерации мутаций. Наше исследование подчеркивает важность использования правильных подсказок и моделей с более сильными возможностями кодирования. В частности, проектирование подсказок требует предоставления важной контекстной информации (например, всего метода), но включение слишком большого количества информации (например, целевой модульный тест) может снизить эффективность.
В -третьих, хотя LLM достигают многообещающих результатов в тестировании мутаций, наше исследование показывает, что все еще существует значительное место для улучшения. В частности, текущие LLMS генерируют значительное количество мутаций, которые не подлежат компиляции. Поэтому мы анализируем типы мутаций, которые приводят к некомпилируемому коду и определяем некоторые корневые причины LLMS. Мы выступаем за дополнительные исследовательские усилия по подходам к анализу программ и ремонту для решения подверженных ошибкам кода для мутаций, таких как вызовы методов.
Эта статья есть
Оригинал