Nykyiset AI-kooditestit menevät pieleen
Olen miettinyt paljon, miksi testamme tekoälyjen koodauskykyjä väärin. Kysymme aivan vääriä asioita.
Kuvittele, että testaat jonkun ajotaitoja vain yhdellä täydellisellä pysäköinnillä. Se onnistuu, mutta entä kun pitää ajaa ruuhkassa kuukausikaupalla? Sitä samaa me teemme AI:lle.
Useimmat testit antavat yhden ongelman ja yhden ratkaisun. Koodi pyörii, ja homma on siinä. Mutta todellinen ohjelmointi ei ole yhtään sellainen.
Miltä oikea koodaus näyttää
Todellisuudessa koodaat yhä uudelleen:
- Lisäät ominaisuuksia vanhaan koodiin
- Korjaat bugeja, jotka ilmestyvät viikkoja myöhemmin
- Käsittelet vanhaa koodia uusien vaatimusten takia
- Varmistat, että muutokset eivät riko muuta
Se on sotkuista, toistuvaa työtä. Tänään toimiva pikaratkaisu voi olla painajainen puolivuotta myöhemmin.
SWE-CI: Testi pitkäjänteiselle työlle
Tutkijat huomasivat ongelman ja loivat SWE-CI:n – ensimmäisen testin, joka mittaa AI:n kykyä ylläpitää koodia pitkään.
Ei kertaluonteisia tehtäviä, vaan oikean softan kehitystä muistuttavia haasteita:
- 100 erilaista koodiongelmaa
- Keskiverto 233 päivän kehityshistoria
- Keskimäärin 71 peräkkäistä commitia
- Useita analyysikierroksia ja koodausta
Tämä testaa koodin ylläpidettävyyttä, ei vain sitä, toimiiko koodi.
Miksi tämä on iso juttu
Huolestuttava fakta: koodin ylläpito vie 60–80 % softaprojektin budjetista. Uudet ominaisuudet ovat vain pieni osa.
Silti olemme testanneet AI:ta vain helpoimmasta päästä.
Tutkijat viittaavat Lehmanin lakeihin: softa rappeutuu ajan myötä, ellei sitä aktiivisesti paranna. Se on koodin entropia – asiat menevät luonnostaan sekaisiksi.
Mitä tämä tarkoittaa AI-kehitykselle
SWE-CI muuttaa peliä. Sen sijaan että kysymme "Kirjoittaako AI toimivaa koodia?", kysymme "Kirjoittaako AI koodia, jota ihmiset voivat muokata pitkään?"
Ero on valtava. Yksi AI voi väsätä pikakiinnityksen, joka menee testeistä läpi. Toinen tekee joustavaa koodia. Nykytestit eivät erota niitä. Todellisuudessa jälkimmäinen on kultaa.
Laajempi näkökulma
Tämä tutkimus vahvistaa ajatukseni: tarvitsemme AI:ta, joka ajattelee vanhemman kehittäjän tavoin, ei juniorin.
Juniorit saavat koodin toimimaan. Vanhemmat miettivät muutettavuutta, debuggausta ja laajennettavuutta. He ajattelevat seuraavaa kehittäjää – ehkä itseäänkin.
SWE-CI on ensimmäinen testi, joka mittaa tätä pitkän tähtäimen ajattelua.
Tulevaisuus
Odotan innolla, miten nykyiset AI-mallit pärjäävät SWE-CI:ssä. Veikkaan, että pitkän ylläpidon kanssa on hankaluuksia, vaikka yksittäiset ongelmat ratkeaisivatkin.
Ei huono juttu – se näyttää kehityssuunnan. Sen sijaan että AI kirjoittaa koodia nopeammin, se pitää kirjoittaa paremmin, kestämään aikaa.
Mitä mieltä olet? Oletko huomannut eroa AI-avustajien pikafikseissä ja pidemmissä projekteissa? Kerro kommenteissa kokemuksistasi.