Как крупные языковые модели улучшают тестирование на мутацию - и что еще нужно работать

Как крупные языковые модели улучшают тестирование на мутацию - и что еще нужно работать

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 должны существовать левый блок из-за возникновения правого блока и заменяют переменную соответственно. Эта мутация не убивается в результате теста, вызывающего ошибки. Без естественного языка понимание возможностей (то есть понимание соответствия

Listing 1: Two Example Mutations of GPT-3.5 on Chart-1

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

Во-вторых, наше исследование исследует, как различные подсказки, модели, контексты и несколько выстрелов влияют на производительность генерации мутаций. Наше исследование подчеркивает важность использования правильных подсказок и моделей с более сильными возможностями кодирования. В частности, проектирование подсказок требует предоставления важной контекстной информации (например, всего метода), но включение слишком большого количества информации (например, целевой модульный тест) может снизить эффективность.

В -третьих, хотя LLM достигают многообещающих результатов в тестировании мутаций, наше исследование показывает, что все еще существует значительное место для улучшения. В частности, текущие LLMS генерируют значительное количество мутаций, которые не подлежат компиляции. Поэтому мы анализируем типы мутаций, которые приводят к некомпилируемому коду и определяем некоторые корневые причины LLMS. Мы выступаем за дополнительные исследовательские усилия по подходам к анализу программ и ремонту для решения подверженных ошибкам кода для мутаций, таких как вызовы методов.

Эта статья естьДоступно на Arxivв соответствии с CC по 4.0 Deed (Attribution 4.0 International) лицензия.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE