KAS TAI YRA
Agentinės programinės įrangos kūrimo augimas reiškia, kad kodas rašomas, peržiūrimas ir pristatomas greičiau nei bet kada anksčiau visoje pramonėje. Tai taip pat reiškia, kad šiame greitai besikeičiančiame kraštovaizdyje turi būti tobulinami testavimo sistemos. Spartesnis kūrimas reikalauja greitesnio testavimo, kuris gali sugauti klaidas, kai jos patenka į kodų bazę, nereikalaujant reguliarių atnaujinimų ir priežiūros.
„Just-in-Time“ testai (JiTTtestai) yra iš esmės naujas bandymo metodas, kai bandymus automatiškai generuoja dideli kalbų modeliai (LLM), kad būtų galima užfiksuoti klaidas – net tokias, kurių tradicinis testavimas gali nepagauti – pačiu laiku, kol kodas nepaleidžiamas į gamybą.
Gaudantis JiTTest daugiausia dėmesio skiriama regresijų, įvestų pakeitus kodą, paieškai. Šio tipo bandymai iš naujo įsivaizduojami dešimtmečius iš programinės įrangos testavimo teorija ir praktika. Nors tradicinis testavimas remiasi statiniais testų rinkiniais, rankiniu kūrimu ir nuolatine priežiūra, Catching JiTTests nereikalauja jokios testavimo priežiūros ir testavimo kodo peržiūros, o tai reiškia, kad inžinieriai gali sutelkti savo žinias į tikras klaidas, o ne į klaidingus teigiamus rezultatus. „Caching JiTTests“ naudoja sudėtingus metodus, kad padidintų bandymo signalo vertę ir sumažintų klaidingai teigiamą pasipriešinimą, nukreipiant testo signalus ten, kur jie yra svarbiausi: esant rimtiems gedimams.
KAIP TRADICIAI VEIKIA TESTAVIMAS
Pagal tradicinę paradigmą testai kuriami rankiniu būdu, kai naujas kodas patenka į kodų bazę ir nuolat vykdomas, todėl reikia reguliariai atnaujinti ir prižiūrėti. Šiuos testus kuriantys inžinieriai susiduria su iššūkiu, kai reikia patikrinti ne tik dabartinio kodo, bet ir visų galimų būsimų pakeitimų elgseną. Įgimtas neapibrėžtumas dėl būsimų pokyčių lemia testus, kurie nieko nepagauna, arba kai jie tai padaro, tai klaidingai teigiama. Agentų kūrimas žymiai padidina kodo keitimo tempą, apkrauna testų kūrimo naštą ir sumažina klaidingų teigiamų rezultatų bei testo priežiūros išlaidas iki lūžio taško.
KAIP VEIKIA CATCHING JITTESTS
Apskritai „JiTTests“ yra specialiai pritaikyti testai, pritaikyti konkrečiam kodo pakeitimui, suteikiantys inžinieriams paprastą, veiksmingą grįžtamąjį ryšį apie netikėtus elgesio pokyčius, nereikia skaityti ar rašyti bandomojo kodo. LLM gali automatiškai generuoti JiTTestus, kai tik pateikiamas prašymas. Kadangi pats „JiTTest“ yra sukurtas LLM, jis dažnai gali daryti išvadą apie tikėtiną kodo pakeitimo ketinimą ir imituoti galimus gedimus, kurie gali atsirasti dėl to.
Suprasdami ketinimus, „Catching JiTTests“ gali žymiai sumažinti klaidingų teigiamų rezultatų skaičių.
Štai pagrindiniai Catching JiTTest proceso žingsniai:
- Naujas kodas patenka į kodų bazę.
- Sistema daro išvadą apie kodo keitimo ketinimą.
- Tai sukuria mutantai (kodo versijos su gedimais įterptos sąmoningai), kad būtų galima imituoti, kas gali nutikti.
- Jis sukuria ir vykdo bandymus, kad nustatytų šias klaidas.
- Taisyklėmis pagrįstų ir LLM pagrįstų vertintojų ansambliai sutelkia signalą į tikras teigiamas nesėkmes.
- Inžinieriai gauna aiškias, aktualias ataskaitas apie netikėtus pokyčius būtent tada, kai tai yra svarbiausia.
KODĖL TAI SVARBU
„Catching JiTTests“ yra skirtos dirbtinio intelekto pagrindu veikiančios agentinės programinės įrangos kūrimo pasauliui ir pagreitina testavimą sutelkiant dėmesį į rimtas netikėtas klaidas. Su jais inžinieriams nebereikia gaišti laiko rašydami, peržiūrėdami ir išbandydami sudėtingą testo kodą. „JiTTests“ sukūrimas vienu metu pašalina daugelį problemų, susijusių su tradiciniu testavimu:
- Jie generuojami skrydžio metu kiekvienam kodo pakeitimui ir nėra kodų bazėje, todėl pašalinamos nuolatinės priežiūros išlaidos ir perkeliamos pastangos nuo žmonių prie mašinų.
- Jie yra pritaikyti kiekvienam pakeitimui, todėl yra tvirtesni ir mažiau linkę lūžti dėl numatytų atnaujinimų.
- Jie automatiškai prisitaiko keičiantis kodui.
- Žmogaus juos peržiūrėti reikia tik tada, kai klaida iš tikrųjų užfiksuojama.
Visa tai reiškia svarbų testavimo infrastruktūros pokytį, kai dėmesys perkeliamas nuo bendro kodo kokybės prie to, ar bandymas iš tikrųjų nustato konkretaus pakeitimo gedimus, nesukeliant klaidingai teigiamo rezultato. Tai padeda pagerinti bendrą testavimą, taip pat leidžia neatsilikti nuo agentinio kodavimo tempo.
PERSKAITYKITE BIURATĮ
„Meta“ „Just-in-Time“ bandymo generavimas