Tekoälyavusteinen ohjelmistokehitys: Koodivirheiden löytäminen ja korjaaminen ChatGPT:n avulla
Mäkelä, Emilia (2024)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052013321
https://urn.fi/URN:NBN:fi:amk-2024052013321
Tiivistelmä
Tässä opinnäytetyössä tutkitaan ChatGPT:n potentiaalia ohjelmointivirheiden löytämisessä ja korjaamisessa. Opinnäytetyössä pyritään vastaamaan kysymyksiin: Miten ChatGPT:tä voi hyödyntää koodivirheiden löytämisessä ja korjaamisessa? Minkälaisia koodivirheitä voi löytää tai korjata ChatGPT:n avulla? Kuinka onnistuneesti ChatGPT suorittaa virheiden löytämisen ja korjaamisen? Mitä lisäarvoa ChatGPT:n käyttö virheiden löytämisessä ja korjaamisessa voi tuoda ohjelmistokehittäjälle?
Opinnäytetyön tietoperustassa käsitellään keskeisiä teknologioita, jotka liittyvät ChatGPT:hen ja ohjelmointivirheisiin. Näihin kuuluvat tekoäly ja sen eri teknologiat, kuten syväoppiminen, koneoppiminen, suuret kielimallit ja luonnollisen kielen prosessointi. Nämä teknologiat yhdessä muodostavat perustan ChatGPT:n toiminnalle. Lisäksi tarkastellaan erilaisia ohjelmointivirheitä, kuten syntaksi-, logiikka-, ajoaika- ja käännösvirheitä sekä erilaisia vianjäljitystyökaluja sekä miten ohjelmointivirheet vaikuttavat ohjelmoijien arkeen.
Tutkimus toteutetaan laadullisena tapaustutkimuksena, jolla ei tavoitella määrällisiä tai yleistettäviä tutkimustuloksia vaan analysoidaan yksittäisiä ChatGPT:n vastauksia anettuihin syötteisiin. Tutkimuksessa ChatGPT:lle syötetään 15 erilaista syötettä, joissa kaikissa on erilainen virheellinen koodinpätkä eri lähteistä. ChatGPT:n vastaukset tallennetaan ja esitetään kuvakaappauksin. Tutkimuksessa käytetään ilmaista ChatGPT versiota, joka oli huhtikuussa 2024 ChatGPT-3.5.
Tutkimustulokset osoittivat, että ChatGPT:ä voidaan hyödyntää ohjelmointivirheiden löytämisessä ja korjaamisessa, mutta sen tehokkuus vaihtelee. ChatGPT onnistui tehtävässä vaihtelevasti riippuen virheen tyypistä. Esimerkiksi jos syötteessä olevassa koodissa ei ollut tarpeeksi tietoa virheen aiheuttamisesta, ChatGPT ei usein kyennyt löytämään virhettä eikä tarjoamaan toimivaa korjausta. Parhaiten se kuitenkin pärjäsi syntaksi- ja logiikkavirheiden havaitsemisessa ja korjaamisessa.
Jotta ohjelmistokehittäjä voisi maksimoida ChatGPT:n käytön hyödyn, tulosten perusteella on suositeltavaa käyttää sitä erityisesti syntaksi- ja logiikkavirheiden vianjäljityksessä. Muissa virhetilanteissa perinteiset työkalut saattavat tarjota parempia vaihtoehtoja. Näin ollen ChatGPT:llä ei siis ainakaan tässä vaiheessa korvata kaikkia virheenkorjaustyökaluja, vaan sen avulla voidaan täydentää ja tehostaa perinteisten työkalujen ja vianetsintämenetelmien.
Opinnäytetyön tietoperustassa käsitellään keskeisiä teknologioita, jotka liittyvät ChatGPT:hen ja ohjelmointivirheisiin. Näihin kuuluvat tekoäly ja sen eri teknologiat, kuten syväoppiminen, koneoppiminen, suuret kielimallit ja luonnollisen kielen prosessointi. Nämä teknologiat yhdessä muodostavat perustan ChatGPT:n toiminnalle. Lisäksi tarkastellaan erilaisia ohjelmointivirheitä, kuten syntaksi-, logiikka-, ajoaika- ja käännösvirheitä sekä erilaisia vianjäljitystyökaluja sekä miten ohjelmointivirheet vaikuttavat ohjelmoijien arkeen.
Tutkimus toteutetaan laadullisena tapaustutkimuksena, jolla ei tavoitella määrällisiä tai yleistettäviä tutkimustuloksia vaan analysoidaan yksittäisiä ChatGPT:n vastauksia anettuihin syötteisiin. Tutkimuksessa ChatGPT:lle syötetään 15 erilaista syötettä, joissa kaikissa on erilainen virheellinen koodinpätkä eri lähteistä. ChatGPT:n vastaukset tallennetaan ja esitetään kuvakaappauksin. Tutkimuksessa käytetään ilmaista ChatGPT versiota, joka oli huhtikuussa 2024 ChatGPT-3.5.
Tutkimustulokset osoittivat, että ChatGPT:ä voidaan hyödyntää ohjelmointivirheiden löytämisessä ja korjaamisessa, mutta sen tehokkuus vaihtelee. ChatGPT onnistui tehtävässä vaihtelevasti riippuen virheen tyypistä. Esimerkiksi jos syötteessä olevassa koodissa ei ollut tarpeeksi tietoa virheen aiheuttamisesta, ChatGPT ei usein kyennyt löytämään virhettä eikä tarjoamaan toimivaa korjausta. Parhaiten se kuitenkin pärjäsi syntaksi- ja logiikkavirheiden havaitsemisessa ja korjaamisessa.
Jotta ohjelmistokehittäjä voisi maksimoida ChatGPT:n käytön hyödyn, tulosten perusteella on suositeltavaa käyttää sitä erityisesti syntaksi- ja logiikkavirheiden vianjäljityksessä. Muissa virhetilanteissa perinteiset työkalut saattavat tarjota parempia vaihtoehtoja. Näin ollen ChatGPT:llä ei siis ainakaan tässä vaiheessa korvata kaikkia virheenkorjaustyökaluja, vaan sen avulla voidaan täydentää ja tehostaa perinteisten työkalujen ja vianetsintämenetelmien.