Qligħ:
- Kapaċità li tipproduċi testijiet ta 'unità, integrazzjoni u UI b'intelliġenza artifiċjali skont il-piramida tal-ittestjar u tkopri sitwazzjonijiet ta' limitu u żball kif ukoll xenarji kuntenti
- Kapaċità li tneħħi testijiet vojta/inutli u kopertura minfuħa billi tiċċekkja li kull test iġġenerat fil-fatt jivvalida mġiba
- L-iżgurar li t-test jaqbad il-bug u ma jħallihx jirranġa l-bug billi tgħid lill-AI x'għandu jagħmel il-kodiċi
Il-kodiċi tal-kitba huwa nofs ix-xogħol; Li jipprova li l-kodiċi jaħdem b'mod korrett huwa n-nofs l-ieħor. L-apps mobbli jiltaqgħu ma’ mijiet ta’ apparati differenti, daqsijiet tal-iskrin, verżjonijiet tas-sistema operattiva, u mġiba tal-utenti. Huwa impossibbli li dawn kollha jiġu ttestjati manwalment; Huwa għalhekk li l-ittestjar awtomatizzat (kodiċi tat-test tal-kodiċi — ittestjar li jaħdem mingħajr klikk umana) huwa s-sinsla tal-kwalità mobbli. L-AI hija oerhört effiċjenti fit-testijiet tal-kitba minħabba li t-testijiet tal-kitba huma eżattament it-tip ta 'xogħol tal-mudell li jħobb: il-validazzjoni ta' mġiba speċifika għal inputs speċifiċi. F'din l-unità, se nitgħallmu kif naċċelleraw l-ittestjar tal-unità, l-ittestjar tal-interface u l-awtomazzjoni bl-AI, iżda niżguraw il-kwalità tat-test permezz tal-għajnejn tal-bniedem.
Piramida tal-ittestjar: x'għandek tittestja u kemm
Strateġija ta 'ttestjar b'saħħitha tixbah piramida. Il-bażi tinkludi numru kbir ta 'testijiet ta' unità (ittestjar ta 'malajr li jittestja funzjoni waħda jew klassi b'mod iżolat); huma veloċi u irħas. Fin-nofs hemm inqas ittestjar ta 'integrazzjoni (ttestjar ta' kif partijiet multipli jaħdmu flimkien). Fuq nett hemm UI minimu/testjar minn tarf sa tarf (testjar isir billi tikklikkja fuq l-iskrin kif jagħmel l-utent); huma realistiċi iżda bil-mod u fraġli. L-AI tgħin f'kull saff, iżda l-aktar valur huwa fil-bażi: tipproduċi malajr testijiet tal-unità tal-loġika tan-negozju.
Tip tat-test
Ambitu
veloċità
Effiċjenza tal-AI
ittestjar tal-unità
Funzjoni/klassi waħda
malajr ħafna
għolja ħafna
integrazzjoni
saff ta' bejn is-saffi
medju
għolja
UI / tarf sa tarf
Il-fluss tal-iskrin kollu
bil-mod
Medju (fraġli)
Tip: Meta tgħid lill-AI biex "jiġġenera testijiet għal din il-funzjoni", espliċitament staqsi għal każijiet tat-tarf: input vojt, null, numru negattiv, valur kbir ħafna, żball tan-netwerk. AI tipproduċi mogħdija kuntenta faċilment; L-iżbalji reali jinħbew fil-fruntieri u jaqbżu 'l barra jekk ma triduhomx hemm.
Passi tal-kitba tat-testijiet bl-AI
- Iddefinixxi l-imġieba li trid tiġi ttestjata. "Din il-funzjoni għandha tagħti dan l-output għal dan l-input."
- Speċifika l-qafas. JUnit + MockK fuq Android, XCTest fuq iOS, Espresso (Android) jew XCUITest (iOS) għall-UI.
- Staqsi għal stati limitu. Xenarju kuntent + żball + breakpoints.
- Immaniġġja oġġetti mock. Dipendenzi esterni bħal netwerk u database huma emulati għall-ittestjar (mock — mock kkontrollata minflok is-servizz attwali).
- Mexxi t-test u vverifika. It-test jgħaddi, jikkonferma xi ħaġa tassew sinifikanti?
Il-ħames pass huwa kritiku. L-AI kultant tipproduċi testijiet inutli li "dejjem jgħaddu"; pereżempju, test li ma jivverifika xejn jew jiċċekkja d-dejta falza tiegħu stess. Test li jgħaddi u test siewi huma affarijiet differenti.
Attenzjoni: Sempliċement għax l-AI tista 'tipproduċi ma jfissirx li t-test huwa korrett. Xi drabi l-AI taċċetta l-imġieba attwali (forsi difettuża) tal-kodiċi bħala "korretta" u tikteb it-testijiet kif xieraq. Tali ttestjar jiffissa l-bug aktar milli jaqbadha. Inti tiddetermina x'jistenna t-test; Għid lill-AI x'għandha tagħmel, mhux x'jagħmel il-kodiċi.
Miżura tal-kopertura tat-test u fallacy
Il-kopertura tat-test (liema persentaġġ tal-kodiċi jitmexxa mit-testijiet) hija metrika utli iżda qarrieqa. Kopertura ta '90% tindika li 90% tal-kodiċi ġie esegwit; iżda ma ġiex ivverifikat li dawk il-linji qed jaħdmu sew. Test li jmexxi linja u ma jiċċekkjax ir-riżultat jintefaħ l-ambitu iżda ma jipprovdix sigurtà. L-għan mhuwiex numri għoljin, iżda validazzjoni sinifikanti. Tista 'malajr tiżdied bl-AI, iżda kun żgur li kull test fil-fatt jittestja mġiba.
tliet każijiet żgħar
Każ 1 — Sitwazzjoni tal-fruntiera maqbuda. AI ġiet mitluba għal testijiet għal funzjoni ta 'trasferiment ta' flus f'applikazzjoni bankarja, u speċifikament ġew miżjuda xenarji ta '"ammont negattiv" u "aktar minn bilanċ". It-test ]vela li t-trasferiment ma kienx imblukkat b’ammont negattiv; din tkun vulnerabbiltà kbira tas-sigurtà fil-produzzjoni. Magħluq billi żżid kontroll ta 'linja waħda. Lezzjoni: it-testijiet tal-konfini huma l-aktar testijiet siewja.
Każ 2 — Test falz. Tim wieħed kien meħlus biex iżid il-kopertura għal 85% b'40 test unitarju prodotti mill-AI. Waqt l-ispezzjoni, deher li ħafna mit-testijiet fil-fatt ma vverifikaw l-ebda output, huma biss sejħu l-funzjoni u kitbu assertTrue(true). Il-kopertura kienet għolja iżda l-protezzjoni kienet żero. It-testijiet ġew riveduti u miktuba mill-ġdid b'validazzjonijiet reali. Lezzjoni: in-numri tal-kopertura jistgħu jimteddu.
Każ 3 — L-ittestjar tal-UI aċċellerat. Tim tal-kummerċ elettroniku kiteb skript XCUITest tal-fluss add-to-cart b'AI f'20 minuta; Kieku jinkiteb bl-idejn, kien jieħu nofs ġurnata. Identifikaturi ta' l-element ta' l-iskrin guessed AI; It-tim qabbilhom mal-kodiċi reali u rranġahom. Il-veloċità tal-abbozz hija reali, iżda l-verifika tal-identifikatur hija xogħol tal-bniedem.
Pront dgħajjef / Pront qawwi
Pront dgħajjef: "Ikteb test għal din il-funzjoni."
Prompt qawwi: "Ipproduċi testijiet ta 'unità għal din il-funzjoni Kotlin ma' JUnit5 + MockK. Funzjoni: trasferiment ta 'flus (ammont, sors, mira). Imġieba li tittestja (x'għandu Jagħmel il-kodiċi):- Trasferiment validu għandu jkun ta' suċċess- Ammont negattiv jew żero għandu jiġi miċħud- Ammont akbar mill-bilanċ għandu jiġi miċħud- Żball tan-netwerk għandu jarmi eċċezzjoni waħda xierqa, is-servizz ta 'testjar għandu jivverifika biss ħaġa. ma tiktebx affermazzjoni vojta."
Mudelli kopjabbli
Mudell tat-test tal-unità: "Iġġenera testijiet tal-unità [JUnit/XCTest] għal din il-funzjoni għal [lingwa]. Imġieba mistennija: [x'għandek tagħmel]. Inkludi: xenarju kuntent, input null, breakpoints, każ ta' żball. Ħalli kull test jivverifika mġiba waħda; uża asserzjoni sinifikanti; mock. [kodiċi]"
Mudell tal-ittestjar tal-UI: "Ikteb test tal-UI tal-fluss li ġej bi [Espresso/XCUITest]: [fluss tal-utent pass pass]. Agħżel elementi tal-iskrin b'id tal-aċċessibbiltà, uża id minflok test. Żid strateġija ta' stennija. Fakkarni biex tqabbel ids tal-element mal-kodiċi attwali."
Mudell ta' verifika tat-test:"Eżamina dawn it-testijiet:1) Fil-fatt jivverifikaw output/imġieba jew huma nulli?2) Jkopru każijiet ta' limitu?3) Jirranġaw il-kodiċi jew jistennew imġieba korretta? Jiffirmaw u jsaħħu testijiet dgħajfa. [testijiet]"
Mudell ta' ottimizzazzjoni tal-kopertura: "Identifika partijiet mhux ittestjati ta' din il-klassi u ssuġġerixxi testijiet sinifikanti. Ipprijoritizza mogħdijiet b'riskju reali, mhux biss in-numru ta' kopertura. [kodiċi]"
Żbalji komuni
- Tittestja biss ix-xenarju kuntent. Żbalji huma maħżuna fi stati limitu; Staqsi għalihom fil-miftuħ.
- Taċċetta test vojt/inutli. Testijiet tat-tip assertTrue(true) jintefħu l-ambitu u ma jipprovdu l-ebda protezzjoni.
- Wara li l-AI tivverifika x'qed jagħmel il-kodiċi. L-ittestjar għandu jistenna x'għandu jagħmel il-kodiċi; inkella jirranġa l-bug.
- Żball in-numru tal-ambitu għall-iskop. Kopertura ta '90% ma tfissirx preċiżjoni ta' 90%.
- Linking mat-test fl-ittestjar tal-UI. It-test jitkisser meta t-test jinbidel; Uża identifikatur stabbli (id).
- It-twaqqif ta' mocks ħażin. It-"test unitarju" li jsejjaħ is-servizz attwali se jkun bil-mod u fraġli.
Fil-qosor
L-ittestjar huwa s-sinsla tal-kwalità mobbli, u l-AI hija effiċjenti ħafna f'dan il-qasam, speċjalment fl-ittestjar tal-unità. Segwi l-piramida tal-ittestjar: ħafna unitajiet, integrazzjoni medja, ftit ittestjar tal-UI. Staqsi b'mod espliċitu lill-AI għax-xenarju kuntent kif ukoll tillimita l-każijiet u l-mogħdijiet ta 'żbalji. Kun żgur li kull test iġġenerat fil-fatt jivvalida mġiba; Testijiet vojta u kopertura minfuħa huma qarrieqa. L-aktar importanti, għid lill-AI x'għandu jagħmel il-kodiċi, mhux dak li jagħmel, sabiex it-test jaqbad il-bug, mhux jirranġah.
Kompitu ta' applikazzjoni
Itlob testijiet mill-AI billi tuża l-"Mudell tat-test tal-unità" għal funzjoni loġika tan-negozju (eż. kalkolu tal-iskont jew validazzjoni tal-formola) u speċifika b'mod espliċitu każijiet ta' limitu (null, negattiv, kbir wisq). Mexxi t-testijiet iġġenerati, imbagħad ikkontrolla l-istess testijiet bil-"mudell ta' verifika tat-test". Sib mill-inqas test wieħed dgħajjef, saħħuh, u ttestja jekk it-testijiet jaqbdux żball attwali tal-funzjoni (billi żżid bug żgħir).
lista ta' kontroll
- [ ] Għażilt is-saff xieraq għall-piramida tat-test (unità ta' prijorità)
- [ ] Ridt każijiet ta' limitu u żball minbarra x-xenarju kuntent
- [ ] Ivverifikajt li kull test fih affermazzjoni sinifikanti
- [ ] Għidt lill-AI x'għandu jagħmel il-kodiċi, mhux dak li jagħmel
- [ ] Iffukajt fuq il-mogħdijiet tar-riskju attwali, mhux in-numru ta' kopertura
- [ ] Jien użajt identifikatur stabbli fit-testijiet tal-UI, ma torbotx mat-test