210 показання

Дослідження виявило, що мутації коду AI допомагають розробникам швидше спіймати помилки

за mutation...6m2025/06/03
Read on Terminal Reader

Надто довго; Читати

Це дослідження показує, що GPT-4 та інші LLM можуть генерувати різноманітні мутації коду, що розкривають помилки в Java, перевершуючи традиційні інструменти тестування мутацій на 18%.
featured image - Дослідження виявило, що мутації коду AI допомагають розробникам швидше спіймати помилки
Mutation Technology Publications HackerNoon profile picture
0-item

Автори :

(1) Бо Ван, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(2) Mingda Chen, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(3) Youfang Lin, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(4) Майк Пападакіс, Люксембурзький університет ([email protected]);

(5) Jie M. Zhang, Королівський коледж Лондона, Лондон, Великобританія ([email protected]).

Authors:

(1) Бо Ван, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(2) Mingda Chen, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(3) Youfang Lin, Пекінський університет Цзяотон, Пекін, Китай ([email protected]);

(4) Майк Пападакіс, Люксембурзький університет ([email protected]);

(5) Jie M. Zhang, Королівський коледж Лондона, Лондон, Великобританія ([email protected]).

абстрактних і1 Введення

1 Введення

2 Background and Related Work

2 Базові та пов'язані з ними роботи

3 Study Design

3.1 Огляд та питання досліджень

3.2 Набір даних

3.3 Генерація мутацій через LLMs

3.4 Оцінювальні метрики

3.5 Експериментальні налаштування

4 Evaluation Results

4.1 RQ1: продуктивність з точки зору вартості та зручності

4.2 RQ2: схожість поведінки

4.3 RQ3: Вплив різних промптів

4.4 RQ4: Вплив різних LLM

RQ5: Кореневі причини і типи помилок некомпільованих мутацій

5 Discussion

5.1 Чутливість до вибраних налаштувань експерименту

5.2 Вплив

5.3 Загрози валидності

6 Conclusion and References

6 Висновки та посилання

Абстрактність

У контексті питання про те, як генерувати мутації даних високої корисності, які використовуються для тестування, є ключовим викликом у літературі тестування мутацій. Великі мовні моделі (LLM) продемонстрували великий потенціал у завданнях, пов'язаних з кодом, але їх користь у тестуванні мутацій залишається невивченою. Для цього ми систематично досліджуємо продуктивність LLM у генеруванні ефективних мутацій у порівнянні з існуючими підходами, потенціалом виявлення помилок та зв'язком з реальними помилками. Зокрема, ми проводимо масштабне емпіричне дослідження, що включає 4 LLM, включаючи як відкриті, так і замкнуті моделі, і 440 реальних помилок на двох

1 Введення

Випробування мутації є одним з найбільш ефективних методів тестування програмного забезпечення [17, 18, 27, 33, 59]. Воно здійснюється шляхом вироблення варіантів програми шляхом здійснення простих синтаксичних змін (тобто мутацій) у вихідному коді програми походження (тобто мутантів). Ці варіанти утворюють цілі тестування, у сенсі запиту тестів, щоб викликати різні поведінки на оригінальній і мутантній програмах. Мутант називається вбитим або живим залежно від того, чи веде тестування до іншого виходу програми (спостережуваної поведінки) від того, що в оригінальній програмі, чи ні. Пропорція вбитих мутантів по всьому набору мутантів утворює метрику адекватності тесту


Оскільки мутації є цілями тестування, ефективність методу сильно залежить від набору мутантів, які використовується.Традиційні методи використовують прості синтактичні трансформації (правила), звані операторами мутації, які вводять синтактичні зміни в кожному місці коду, яке вони застосовують [33, 59].Ми називаємо ці підходи підходами, заснованими на правилах.


На жаль, підходи, засновані на правилах, виробляють велику кількість надлишкових мутантів, тобто мутантів, які не сприяють процесу тестування [5, 57] і, таким чином, посилюють обчислювальні переваги методу, а також людські зусилля, залучені до вивчення живих мутантів. Щоб вирішити цю проблему, дослідники використовують підходи глибокого навчання для формування операторів мутацій на основі історії проекту [62, 70, 73], з надією, що вони будуть виробляти невеликі, але ефективні мутації.


Проте питання про те, які мутанти слід використовувати при проведенні тестування мутацій, залишається відкритим через наступні виклики: (1) Формування ефективних мутацій. Щоб бути ефективним, мутації повинні бути синтактично правильними, що не є випадком більшості існуючих методів навчання, і, ймовірно, виявляти помилки [10, 80], тобто, мають хороший потенціал для спілкування з реальними помилками. У той час як існуючі методи є ефективними, все ще є значний простір для поліпшення [15]. (2) Формування природних мутацій. Мутації повинні узгоджуватися з природними шаблонами і практиками кодування, щоб вони узгоджувалися з очікуваннями розробників, тобто змушуючи їх відчувати, що вони варті вирішення [7]. Це


Щоб впоратися з цими проблемами, ми прагнемо використовувати мальовничі мовні моделі (LLM), які були навчені великому коду і здатні виробляти код, схожий на людський [11]. Після існуючих досліджень [26, 49, 65], ми розробили замовлення за замовчуванням, яке містить інструкції для завдань, елемент коду, який має бути мутований, відповідний код методу, а також кілька прикладів, зібраних з реальних помилок. Ми провели масштабну оцінку, включаючи 4 LLM, 2 комерційні з закритим кодом та 2 з відкритим кодом, 440 реальних помилок з двох бенчмарків Java, тобто Defects4J [37] і ConDefects [82], і порівняли з існуючими методами та інстру


Наша оцінка включає в себе як кількісний, так і якісний аналіз мутацій, що генеруються LLM, порівнюючи їх з існуючими підходами для оцінки їх вартості та ефективності. Крім того, ми вивчаємо, як різні стратегії інженерної інженерії і LLM (тобто, GPT-3.5-Turbo [4], GPT-4-Turbo, CodeLlama-13bInstruct [64], і StarChat-β-16b [45]) впливають на ефективність завдання.


Наші результати показують, що найкращою моделлю для генерування мутантів є GPT-4, оскільки вона перевершує інші LLM у всіх використовуваних метриках, тобто виробляє менше еквівалентних мутантів, мутантів з більш високим потенціалом виявлення помилок, а також більш високу сполучність і семантичну схожість з реальними помилками. GPT-3.5 є другою найкращою з точки зору потенціалу виявлення помилок, що призводить до виявлення 96,7% помилок у Defects4J і 86,7% у ConDefects. З решти методів, Major є найкращим, з потенціалом виявляти 91,6% помилок у Defects4J і 68,9% у ConDefects, що вказує на перевагу приблизно 18% для


Ще один цікавий висновок нашого аналізу стосується різноманітності мутантів (вимірюється з точки зору нововведених типів вузлів AST). Зокрема, наші результати показують, що GPT демонструють найбільшу різноманітність, недавно вводячи 45 різних типів вузлів AST, на відміну від всього 2 використовуваних традиційними підходами, такими як Major, і підсумуючи всі існуючі підходи, що вказує на набагато кращу контекстуалізацію підходу, заснованого на LLM.


Ми також проаналізували мутації, що генеруються GPT, які не спрацьовують, що є спільною проблемою з мутаціями, заснованими на навчанні, і виявили, що вони належать до 9 типів помилок компіляції з використанням невідомих методів та типів структурного руйнування коду, які є найбільш поширеними.


Ми упакували наш метод в мутаційний інструмент під назвоюKumoНа основі експериментальних даних ми також побудували набір даних, який містить високоякісні генеровані LLM-мутанти, які можуть бути використані не тільки в тестуванні мутацій, але і в інших додатках, що посівають помилки, таких як локалізація помилок та прогнозування помилок.


Підсумовуючи, наша стаття робить наступні основні внески:


• Ми досліджуємо придатність LLM у тестуванні мутацій. Ми проводимо великі та детальні порівняльні експерименти для оцінки LLM проти існуючих інструментів / методів. Наші висновки вказують на те, що моделі GPT відрізняються генеруванням мутацій, які тісно наслідують реальні помилки.


• Ми порівнюємо різні запрошення, і виявляємо, що вивчення кількох кадрів з відповідним контекстом коду архівує найкращу продуктивність.


• Ми аналізуємо типи помилок некомпільованих мутацій і з'ясовуємо, що методологічне покликання та оцінка членів, швидше за все, призводять до генерування некомпільованих мутацій.


• Ми створюємо високоякісний набір даних про мутації Java, який включає ручний аналіз еквівалентних мутантів.


Цей документ доступний на архіві під ліцензією CC by 4.0 Deed (Attribution 4.0 International).

Цей документ доступний на архіві під ліцензією CC by 4.0 Deed (Attribution 4.0 International).

Доступно в архіві


L O A D I N G
. . . comments & more!

About Author

Mutation Technology Publications HackerNoon profile picture
Mutation Technology Publications@mutation
Mutation: process of changing in form or nature. We publish the best academic journals & first hand accounts of Mutation

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks