FORSKNINGSNOTAT
KI-assistert refaktorering: metoder og dokumentasjon
Hvordan nyere metoder for KI-assistert refaktorering kan evalueres uten å forveksle en plausibel generert endring med verifisert bevaring av atferd.
DIREKTE SVAR
Hvilke metoder og hvilken dokumentasjon er relevante for KI-assistert, atferdsbevarende refaktorering?
Skill mellom forslag til transformasjon, betrodd utførelse og verifikasjon. La om mulig modellen identifisere en refaktorering og utfør den med en refaktoreringsmotor; krev deretter kompilering, tester, statiske kontroller og dokumentasjon på at den tilsiktede transformasjonen fant sted.
Hvorfor skillet er viktig
Påstanden må avgrenses til det metoden faktisk gjør observerbart.
Refaktorering forventes å bevare observerbar atferd samtidig som den interne strukturen forbedres. En språkmodell kan foreslå en overbevisende omskriving uten å dokumentere noen av disse sidene ved kontrakten; overflatisk plausibilitet er derfor ikke tilstrekkelig.
Nyere arbeider skiller rollene på ulike måter: En modell kan identifisere en kjent transformasjon som utføres av en betrodd motor, eller generere en endring som deretter gjennomgår kompilering, testing, statisk analyse og deteksjon av refaktorering. Verifikasjonsflaten er like viktig som modellen.
En praktisk fremgangsmåte
Angi den tilsiktede refaktoreringen
Angi den strukturelle endringen og atferden som må forbli stabil, fremfor å be om en generell opprydding.
Foretrekk betrodd kjøring for kjente transformasjoner
Når en refaktoreringsmotor støtter operasjonen, bør modellen brukes til deteksjon eller parametervalg og motoren til selve utførelsen.
Kontroller genererte endringer på repositoriumnivå
Kompiler, kjør relevante tester, utfør statiske kontroller og bekreft at den tilsiktede refaktoreringen fant sted uten uvedkommende endringer.
Revider restrisiko
Registrer atferd som ikke dekkes, ustabile tester, virkninger på tvers av filer og tilfeller der en plausibel endring ikke lot seg verifisere.
Påkrevd dokumentasjon
En påstand kan ikke gå lenger enn det som dokumenteres av egenskapen som måles etter generering eller dekoding.
- Transformasjonen identifiseres konkret og omtales ikke bare som en forbedring av kodekvaliteten.
- Kompilering og relevante tester lykkes etter endringen.
- Statiske kontroller og påvisning av refaktorering underbygger den strukturelle påstanden.
- Urelaterte differanser utenfor det tiltenkte omfanget måles eller gjennomgås.
- Begrensninger ved repositoriekonteksten og testdekningen oppgis.
Resultater fra den tilknyttede studien
- Nettstedets artikkel om hierarkisk latent styring gir tilgrensende evidens om avgrenset generering, men er ikke en referansetest for atferdsbevarende refaktorering.
- Målingene av parserate, redigeringsfrihet og mangfold kan gi grunnlag for utformingen av kontrollflaten, men erstatter ikke kompilering, tester eller deteksjon av refaktorering.
- For påstander om refaktorering bør evidenskravene fortsatt ta hensyn til både atferd og repositorium.
Avgrensning
- Beståtte tilgjengelige tester beviser ikke semantisk ekvivalens for atferd som ikke er testet.
- En mindre diff er ikke automatisk en korrekt refaktorering.
- Det tilknyttede nettstedseksperimentet omfatter korte Python-funksjoner og evaluerer ikke refaktorering på repositorienivå.
Primærkilder og nærliggende kilder
Se de lenkede artiklene for de opprinnelige metodene, målingene og oppgitte begrensningene.
- An Empirical Study on the Potential of LLMs in Automated Software Refactoring
Undersøker refaktoreringer foreslått av LLM-er og ny anvendelse med en betrodd refaktoreringsmotor.
- SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring
Kompilering, testing og refaktoreringsorientert evaluering på repositorienivå.
- Inspectable Control for Structure-Preserving Software Regeneration
Tilhørende evidens for avgrenset generering og uttrykkelig angitte begrensninger.