Free songs
header_good

AI ulepsza łatanie oprogramowania

Generowanie łatek naprawczych

Generowanie łatek naprawiających błędy w oprogramowaniu jest kluczowym zadaniem w jego utrzymaniu. Błędy oprogramowania są zazwyczaj zgłaszane za pomocą przypadków testowych, które ujawniają niepożądane zachowania. W odpowiedzi na te błędy, deweloperzy tworzą łaty, które muszą przejść walidację przed ich wprowadzeniem do kodu, zapewniając, że test nie ujawnia już defektu.


Problemy z poprawnością łatek

Niemniej jednak, łaty mogą nie skutecznie rozwiązywać problemów lub wprowadzać nowe błędy, co prowadzi do tzw. złych poprawek. Wykrywanie tych niepoprawnych łatek może znacząco wpływać na czas i wysiłek poświęcany przez deweloperów na naprawę błędów oraz ogólne utrzymanie systemów oprogramowania. Automatyczna naprawa programów (APR) dostarcza deweloperom narzędzia do automatycznego generowania łatek dla błędnych programów. Jednak ich użycie ujawniło wiele niepoprawnych łatek, które nie rozwiązują problemu.


Innowacyjne rozwiązanie FIXCHECK

Aby rozwiązać ten problem, naukowcy z IMDEA Software stworzyli FIXCHECK, nowe podejście do poprawy wyników analiz poprawności łatek, które łączy analizę statyczną, testowanie losowe i modele językowe do automatycznego generowania testów wykrywających błędy w potencjalnie niepoprawnych łatkach.


Dwuetapowy proces FIXCHECK

FIXCHECK wykorzystuje dwuetapowy proces. Pierwszy krok polega na generowaniu losowych testów, uzyskując dużą liczbę przypadków testowych. Drugi krok opiera się na użyciu dużych modeli językowych, z których dla każdego przypadku testowego są wyprowadzane znaczące asercje. Dodatkowo, FIXCHECK zawiera mechanizm selekcji i priorytetyzacji, który wykonuje nowe przypadki testowe na załatanym programie, a następnie odrzuca lub klasyfikuje te testy na podstawie ich prawdopodobieństwa ujawnienia błędów w łatce.


Ocena skuteczności FIXCHECK

Skuteczność FIXCHECK w generowaniu przypadków testowych ujawniających błędy w niepoprawnych łatkach została oceniona na 160 łatkach, w tym zarówno tworzonych przez deweloperów, jak i generowanych przez narzędzia RPA. Wyniki pokazują, że FIXCHECK skutecznie generuje testy wykrywające błędy dla 62% niepoprawnych łatek napisanych przez deweloperów, z dużą pewnością. Ponadto, uzupełnia istniejące techniki oceny łatek, dostarczając przypadki testowe ujawniające błędy dla do 50% niepoprawnych łatek zidentyfikowanych przez nowoczesne techniki.


Znaczenie FIXCHECK w naprawie oprogramowania

FIXCHECK stanowi znaczący postęp w dziedzinie naprawy i utrzymania oprogramowania, oferując solidne rozwiązanie do automatycznego generowania testów i wykrywania błędów podczas utrzymania oprogramowania. To podejście nie tylko poprawia skuteczność walidacji łatek, ale także promuje szersze zastosowanie zautomatyzowanych metod naprawy programów.



RSS
Follow by Email
LinkedIn
LinkedIn
Share
YouTube
Instagram
Tiktok
WhatsApp
Copy link
URL has been copied successfully!