Koodintarkastuksen automatisointi generatiivisen tekoälyn avulla
Nikander, Tami (2025-04-25)
Koodintarkastuksen automatisointi generatiivisen tekoälyn avulla
Nikander, Tami
(25.04.2025)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2025042933089
https://urn.fi/URN:NBN:fi-fe2025042933089
Tiivistelmä
Koodintarkastus on aikaa vievä mutta olennainen osa nykyaikaista ohjelmistokehitystä. Sen avulla vähennetään tuotantokoodiin päätyviä ohjelmointivirheitä sekä varmistetaan, että projektissa noudatetaan sovittuja ohjelmointikäytänteitä. Koodintarkastuksen automatisointi generatiivisen tekoälyn avulla voisi säästää kehittäjien aikaa tehostaen koko ohjelmistokehitysprosessia. Tässä tutkielmassa selvitettiin yksinkertaisen kirjallisuuskatsauksen avulla, miten koodintarkastusta on tähän mennessä pyritty automatisoimaan Transformer-arkkitehtuuriin perustuvien laajojen kielimallien avulla. Tutkielmassa tarkasteltiin Transformer-arkkitehtuurin vuonna 2017 julkaisemisen jälkeen julkaistua kirjallisuutta koodintarkastuksen automatisointiin pyrkivistä työkaluista ja kehittäjien käyttämistä tekoälyapuvälineistä. Tutkielmassa havaittiin, että generatiivista tekoälyä voidaan koodintarkastuksessa käyttää erilaisiin pienempiin tehtäviin, kuten kommenttien generointiin tai koodikorjausten ehdottamiseen. Lisäksi todettiin, että kehittäjät kokevat nykyiset käytössä olevat tekoälytyökalut hyödyllisiksi, mutta merkittävänä rajoitteena nykyaikaisissa automaattisissa koodintarkastustyökaluissa on kuitenkin kielimalleille esitettävä hyvin rajallinen projektin lähdekoodiin liittyvä tiedon määrä, joka haittaa mallien tarkkuutta. Mahdolliseksi ratkaisuksi tähän ongelmaan ehdotettiin RAG-menetelmien käytön tutkimista automaattisessa koodintarkastuksessa. Code review is a time-consuming but essential part of modern software development. It's used to reduce the number of bugs in production code and to enforce a project's code style and architecture guidelines. Code review automation with generative AI could save developer time, streamlining the software development process. Using a simple literature review, this paper explored currently proposed and used methods of code review automation based on large language models using the Transformer architecture. This paper examined literature published after the publication of the Transformer architecture in 2017 on code review automation tools and AI tools used by developers to assist in code review. In the paper it was observed that generative AI can be used for various smaller tasks in code review, like comment generation or suggesting code fixes. Moreover, it was noted that developers find existing AI-based tools useful, but a significant limitation of current methods is the limited information about a project's source code provided to language models, hindering model accuracy. Studying the possibility of utilizing RAG in automatic code review was suggested as a possible solution.