The impact of prompting on code quality in large language model usage
Norppa, Mikael (2026)
Kandidaatintyö
Norppa, Mikael
2026
School of Engineering Science, Tietotekniikka
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2026053158617
https://urn.fi/URN:NBN:fi-fe2026053158617
Tiivistelmä
This study examined the impact of prompting on code quality in large language model usage. The study focused on a single large language model, ChatGPT 5.4, and investigated how different prompting techniques affected the quality of generated code. Four prompting techniques were compared: zero-shot prompting, few-shot prompting, zero-shot prompting with Chain-of-Thought, and persona prompting.
The research material consisted of 20 adapted Python programming tasks based on the MBPP dataset. Each prompting technique was applied to all tasks, resulting in a total of 80 generated code outputs. The quality of the generated code was evaluated using SonarQube and manual functional correctness testing. The evaluated quality dimensions were functional correctness, maintainability issues, reliability issues, and code smells.
The results showed that prompting had a small effect on code quality. Zero-shot prompting produced the weakest overall results, as it was the only technique that did not achieve full functional correctness. Few-shot prompting and persona prompting produced the strongest overall results, with full functional correctness and fewer maintainability issues than zero-shot prompting. No reliability issues were detected in any of the generated outputs. Tässä kandidaatin työssä tutkittiin kehotteiden vaikutusta koodin laatuun suurta kielimallia käytettäessä. Tämä työ keskittyi yhteen suureen kielimalliin, ChatGPT 5.4:ään, ja tarkasteli, kuinka erilaiset kehotetekniikat vaikuttivat generoidun koodin laatuun. Tutkimuksessa vertailtiin neljää eri kehotetekniikkaa: zero-shot prompting, few-shot prompting, zero-shot prompting with Chain-of-Thought ja persona prompting.
Tutkimusmateriaali koostui 20 mukautetusta Python-ohjelmointitehtävästä, jotka perustuivat MBPP-aineistoon. Jokaista kehotetekniikkaa käytettiin jokaisessa tehtävässä, jolloin muodostui yhteensä 80 generoitua koodituotosta. Generoidun koodin laatua arvioitiin SonarQuben sekä manuaalisen toiminnallisuustestauksen avulla. Tarkasteltuja ulottuvuuksia olivat toiminnallinen oikeellisuus, ylläpidettävyysongelmat, luotettavuusongelmat sekä koodihajut.
Tulokset osoittivat, että kehotteilla oli pieni vaikutus generoidun koodin laatuun. Zero-shot prompting tuotti heikoimmat kokonaistulokset, sillä se oli ainoa kehotetekniikka, joka ei saavuttanut täyttä toiminnallista oikeellisuutta. Few-shot prompting ja persona prompting tuottivat parhaat tulokset, sillä ne saavuttivat täyden toiminnallisen oikeellisuuden ja niissä havaittiin vähemmän ylläpidettävyysongelmia kuin zero-shot promptingissa. Yhdessäkään tuotoksessa ei todettu luotettavuusongelmia.
The research material consisted of 20 adapted Python programming tasks based on the MBPP dataset. Each prompting technique was applied to all tasks, resulting in a total of 80 generated code outputs. The quality of the generated code was evaluated using SonarQube and manual functional correctness testing. The evaluated quality dimensions were functional correctness, maintainability issues, reliability issues, and code smells.
The results showed that prompting had a small effect on code quality. Zero-shot prompting produced the weakest overall results, as it was the only technique that did not achieve full functional correctness. Few-shot prompting and persona prompting produced the strongest overall results, with full functional correctness and fewer maintainability issues than zero-shot prompting. No reliability issues were detected in any of the generated outputs.
Tutkimusmateriaali koostui 20 mukautetusta Python-ohjelmointitehtävästä, jotka perustuivat MBPP-aineistoon. Jokaista kehotetekniikkaa käytettiin jokaisessa tehtävässä, jolloin muodostui yhteensä 80 generoitua koodituotosta. Generoidun koodin laatua arvioitiin SonarQuben sekä manuaalisen toiminnallisuustestauksen avulla. Tarkasteltuja ulottuvuuksia olivat toiminnallinen oikeellisuus, ylläpidettävyysongelmat, luotettavuusongelmat sekä koodihajut.
Tulokset osoittivat, että kehotteilla oli pieni vaikutus generoidun koodin laatuun. Zero-shot prompting tuotti heikoimmat kokonaistulokset, sillä se oli ainoa kehotetekniikka, joka ei saavuttanut täyttä toiminnallista oikeellisuutta. Few-shot prompting ja persona prompting tuottivat parhaat tulokset, sillä ne saavuttivat täyden toiminnallisen oikeellisuuden ja niissä havaittiin vähemmän ylläpidettävyysongelmia kuin zero-shot promptingissa. Yhdessäkään tuotoksessa ei todettu luotettavuusongelmia.
