Qligħ:
- Kapaċità li tipproduċi ittestjar ta 'unità, każijiet edge, u analiżi tad-distakk fil-kopertura bl-AI
- Kapaċità li tipprintja l-aspettattivi tat-test ibbażati fuq l-ispeċifikazzjoni, mhux l-imġiba attwali tal-kodiċi
- Kapaċità li tittestja jekk test fil-fatt jipproteġix billi jinjetta żbalji
Il-kitba tat-testijiet hija waħda mill-aktar kompiti li jipproduċu valur li l-biċċa l-kbira tal-iżviluppaturi jpoġġuhom. Suite tat-test tajba hija prova li l-kodiċi jaħdem kif mistenni u linja ta 'salvataġġ għal bidliet futuri. Il-problema hija li t-testijiet tal-kitba huma ripetittivi u jieħdu ħafna ħin - eżattament it-tip ta 'xogħol fejn tiddi l-AI. Iżda hemm qabda: l-AI ħafna drabi tittestja l-imġieba eżistenti tal-kodiċi, mhux l-imġieba li għandha tkun. Il-ġestjoni ta 'din id-differenza hija l-essenza ta' din l-unità.
F'din l-unità, int se titgħallem l-ittestjar tal-unità (ittestjar li jittestja funzjoni waħedha, b'mod iżolat), testijiet tal-każ tat-tarf u jiġġeneraw data tat-test bl-AI; l-għeluq tal-lakuni fil-kopertura tat-test; u għaliex il-fiduċja bl-addoċċ fit-testijiet tal-AI hija perikoluża.
Iż-żewġ naħat ta 'l-Ittestjar: Imġieba ta' Iffissar vs verifika
Test jista' jservi żewġ skopijiet differenti. L-ewwel hija l-verifika: tittestja li l-kodiċi huwa korrett, li jikkonforma mal-ispeċifikazzjoni. It-tieni hija l-protezzjoni tar-rigressjoni: tiffriża l-imġieba tal-kodiċi llum, għalhekk jekk xi ħadd aċċidentalment jibdelha għada, it-test jinkiser u jinnotifika.
AI hija tajba ħafna f'dan tal-aħħar; Hija tħares lejn il-kodiċi u tiġġenera każijiet li jittestjaw "dak li qed tagħmel bħalissa." Imma jekk il-kodiċi huwa żbaljat mill-bidu, l-AI tista’ tpinġi dik l-imġieba ħażina bħala “korretta”. Allura trid tirrevedi l-affermazzjoni ta 'kull test li tipproduċi l-AI: "Il-kodiċi jirritorna 42 u t-test jistenna 42" ma jfissirx li 42 hija t-tweġiba t-tajba.
Attenzjoni: Jekk l-AI tgħaddi mit-test, dan ma jfissirx li l-kodiċi qed "jaħdem"; tfisser biss "jiġixxi kif tistenna l-AI". Inti tiddeċiedi jekk l-aspettattiva hijiex korretta jew le billi tħares lejn l-ispeċifikazzjoni.
Pass pass: Kitba ta' Testijiet Robusti bl-AI
- Agħti l-ispeċifikazzjoni, mhux biss il-kodiċi. Jekk iżżid l-informazzjoni "Din il-funzjoni għandha tagħmel dan", l-AI tista 'tikteb l-aspettattiva korretta; Se tittestja l-imġieba attwali jekk tipprovdi biss il-kodiċi.
- Staqsi għal każijiet edge. Vojta, null, żero, negattiv, kbir wisq, format ħażin, konkorrenza — espliċitament talba barra mit-triq kuntenta.
- Speċifika l-qafas u l-istil tal-ittestjar. "uża pytest", "Arrange-Act-Assert pattern", "ħalli kull test jittestja ħaġa waħda" eċċ.
- Iċċekkja l-aspettattivi (affermazzjoni). Qabbel mal-ispeċifikazzjoni li kull asserzjoni jiċċekkja għall-valur korrett.
- Agħlaq il-lakuni fl-ambitu. Agħti testijiet eżistenti u staqsi "liema fergħat u każijiet ma ġewx ittestjati?" jġiegħlek tistaqsi; imbagħad tivverifika testijiet addizzjonali prodotti.
Tliet Każijiet Mini
Każ 1 — Kopertura minn 52% sa 85%. Il-kopertura tat-test ta' modulu ta' servizz wieħed kienet ta' 52%. It-tim ta t-testijiet eżistenti lill-AI, kien jelenka l-fergħat mhux ittestjati u jiġġenera testijiet għalihom. B'reviżjoni umana, il-kopertura żdiedet għal 85%; Fil-proċess, l-AI skopriet bug attwali (mogħdija li rritornat il-kodiċi ta 'żball ħażin) f'fergħa ta' bug li qatt ma kienet ittestjata qabel.
Każ 2 — In-nassa tal-iffissar tal-aspettattivi foloz. Funzjoni ta' arrotondament tal-flus kienet fil-fatt żbaljata; Minflok qarreb 2.675 għal 2.67, kien qed idawwar 2.67 minflok 2.68. L-AI ħares lejn il-kodiċi u kitbet assert round_money(2.675) == 2.67 — iffriżat l-iżball bħala "veru". Meta l-iżviluppatur qara l-ispeċifikazzjoni, huwa kkoreġa l-aspettattiva u qabad il-bug reali. L-ittestjar tar-regola, mhux tal-kodiċi, għamel id-differenza.
Każ 3 — Splużjoni tal-istat tat-tarf. Meta titlob lill-AI għal "każijiet tarf" biss għal funzjoni ta 'firxa ta' data; Hija pproduċiet 8 każijiet bħal bidu=tmiem, intervall invers, sena biżestili 29 ta 'Frar, żoni tal-ħin differenti u intervall null. Tnejn minn dawn (ispazjar b'lura u sena biżestili) fil-fatt kienu qed jikkawżaw l-iżball. Meta wieħed iqis dawn il-każijiet manwalment ħafna drabi jinqabeż; L-AI saret sieħeb ta' "brainstorming edge-case" hawnhekk.
Erba' Mudelli Kopjabbli
Ġenerazzjoni tat-test ibbażata fuq l-ispeċifikazzjoni:
Rwol: Żviluppatur li jikteb it-testijiet. Qafas: {{pytest/JUnit/Jest...}}.X'GĦANDHA TAGĦMEL il-funzjoni (speċifikazzjoni): {{regola}}Ikteb testijiet għall-funzjoni li ġejja. Ikteb l-aspettattivi skont l-ispeċifikazzjoni, MHUX l-output kurrenti tal-kodiċi. Mogħdija kuntenta + żid mill-inqas 4 każijiet tat-tarf. Ħalli kull test jittestja ħaġa waħda, uża isem deskrittiv. {{funzjoni}}
Brainstorming tal-każ tat-tarf:
Elenka l-każijiet tarf/fallimenti li għandhom jiġu ppruvati fl-ittestjar għal din il-funzjoni (null, null, breakpoints, format ħażin, koncurrent, żball estern). Għal kull każ: input, imġieba mistennija. Tiktebx kodiċi għadha, elenka biss.{{funzjoni}}
Analiżi tad-distakk fil-kopertura:
Hawn taħt jinsabu l-funzjonijiet u t-testijiet disponibbli. Liema fergħat, kundizzjonijiet u każijiet ma ġewx ittestjati? Elenka n-nuqqasijiet u ikteb testijiet ġodda għan-nuqqasijiet biss. Tirrepetix dawk eżistenti. Funzjoni:{{function}}Testijiet:{{existing_tests}}
Dejta tat-test / ġenerazzjoni ta' oġġett finta:
Iġġenera data tat-test realistika għal testijiet ta' {{funzjoni/servizz}}: kampjuni validi, kampjuni tal-fruntiera u kampjuni invalidi separatament. Issuġġerixxi imġiba finta sempliċi għad-dipendenza esterna {{X}}. L-użu ta' data/PII vera kunfidenzjali; Iġġenera data falza.
Pront dgħajjef / Pront qawwi
Dgħajjef: "Ikteb test għal din il-funzjoni."
Qawwija: "b'pytest. Funzjoni apply_discount(total, perċentwali) — regola: skont għandu jkun 0%–30%, barra mill-limiti għandu jitfa ValueError, ir-riżultat għandu jkun imqarreb għal 2 deċimali. Ikteb l-aspettattivi b'din ir-REGOLA (mhux bil-kodiċi). Mogħdija kuntenta + dawn il-każijiet tat-tarf: 0%, 30%, negattiv, kodiċi % = 0 (żball, 30%).
Huwa jagħti r-regola ta 'rilaxx b'saħħtu u jgħid "ikteb l-aspettattiva skond ir-regola, mhux il-kodiċi"; Din is-sentenza waħda tagħlaq in-nassa tal-AI li tiffissa l-imġiba ħażina.
Tip tat-test
Kontribuzzjoni AI
kontroll tal-bniedem
Happy road unit testing
skeletru mgħaġġel
L-aspettattiva hija korretta?
Każijiet tat-tarf
Brainstorming estensiv
Elimina l-irrelevanti
Mili tal-vojt tal-ambitu
Isib fergħat maqbuża
Ikkonferma s-sinifikat
Data tat-test/mock
Tipproduċi kampjun realistiku
Nru PII, kontroll realiżmu
It-Testijiet Immaniġġjaw il-Kwalità, Mhux Jiggarantixxuha
Kopertura għolja tat-test tagħti kunfidenza, iżda tista 'wkoll tkun qarrieqa: kopertura ta' 100 fil-mija tfisser "kull linja kienet immexxija," mhux "kull linja hija korretta." Huwa faċli li tiżdied il-kopertura bl-AI; Il-valur reali huwa bil-miktub aspettattivi sinifikanti. Il-valur ta 'test huwa l-abbiltà tiegħu li jkisser u javżak meta l-kodiċi jinkiser. Huwa għalhekk li t-testijiet iġġenerati mill-AI huma bbażati fuq il-mistoqsija "il-kodiċi verament jinkiser meta jinbidel?" Ittestja bil-mistoqsija; Tkissir deliberatament ta 'linja u tara l-waqfa tat-test (idea ta' mutazzjoni) hija prova li t-test ħadem.
Tip: Biex tara jekk test li tikteb l-AI jaħdem, oħloq bug żgħir fil-kodiċi (eż. ibdel + għal -) u ara jekk it-test jinkiserx. Jekk ma tkisserx, dak it-test ma jipproteġikx.
Żbalji komuni
- Titlob għal test mingħajr ma tagħti r-regola. Il-mudell jiffriża l-imġieba attwali; jiffissa l-iżball bħala "veru".
- Taċċetta aspettattivi mingħajr ma taqrahom. L-ittestjar huwa qarrieqi jekk ma tiċċekkjax li l-asserzjonijiet qed jiċċekkjaw għall-valur korrett.
- Tittestja biss it-triq kuntenta. Żbalji reali jgħixu fuq il-marġini; Staqsi għal każijiet edge b'mod espliċitu.
- Jiżbalja l-iskop għall-iskop. Persentaġġ għoli mhuwiex garanzija ta 'imġieba korretta.
- Nagħmlu data reali/moħbija bħala data tat-test. Id-dejta jew is-sigrieti tal-klijenti m'għandhomx jidħlu fl-ittestjar u l-ħażna; Iġġenera data sintetika.
Fil-qosor
L-AI tieħu ħafna mill-piż ripetittiv tat-testijiet tal-kitba: tipproduċi skeletri veloċi, listi kbar ta 'każijiet tat-tarf, u analiżi tal-vojt fil-kopertura. Iżda l-aktar punt kritiku huwa l-aspettattivi: l-AI għandha tendenza li tittestja l-imġieba attwali tal-kodiċi, filwaqt li l-ittestjar għandu jinkiteb skont l-ispeċifikazzjoni. Agħti r-regola, iċċekkja l-aspettattivi, inforza l-każijiet tat-tarf, u ttestja jekk it-testijiet fil-fatt jipproteġux billi tinjetta bug. Il-kopertura tat-test hija għodda, mhux għan.
Kompitu ta' applikazzjoni
Agħżel funzjoni u l-ewwel ipprintja test lill-AI billi sempliċement tagħti l-kodiċi tagħha; Innota l-aspettattivi. Imbagħad ipprintja t-test mill-ġdid, billi tagħti l-ispeċifikazzjoni (imġieba meħtieġa) għall-istess funzjoni. Qabbel l-aspettattivi taż-żewġ settijiet tat-test: hemm xi differenti, liema waħda tiżvela bug reali? Fl-aħħarnett, ivverifika li wieħed mit-testijiet iġġenerati ħadem billi żżid bug intenzjonat mal-kodiċi u tara l-waqfa tat-test.
lista ta' kontroll
- [ ] Niddistingwi jekk it-test huwiex biex jiffissa jew jivverifika l-imġieba.
- [ ] Meta nitlob test, nagħti r-regola (speċifikazzjoni) li għandha tkun fis-seħħ, mhux il-kodiċi.
- [ ] Jien inqabbel kull asserzjoni ġġenerata mal-ispeċifikazzjoni.
- [ ] Nitlob b'mod espliċitu każijiet ta' xifer u ta' falliment.
- [ ] Jien inqis il-kopertura perċentwali bħala għodda, mhux mira.
- [ ] Nittestja jekk test fil-fatt jipproteġix billi jinjetta żbalji.