Hagnaður:
- Geta til að framleiða eininga-, samþættingar- og notendapróf með gervigreind í samræmi við prófunarpýramídann og ná yfir mörk og villuaðstæður sem og ánægjulegar aðstæður
- Hæfni til að eyða tómum/gagnslausum prófum og uppblásinni þekju með því að athuga hvort hvert próf sem myndast staðfestir í raun hegðun
- Tryggja að prófið grípi villuna og kemur í veg fyrir að hún lagfæri villuna með því að segja gervigreindinni hvað kóðinn ætti að gera
Að skrifa kóða er hálf vinnan; Að sanna að kóðinn virkar rétt er hinn helmingurinn. Farsímaforrit hitta hundruð mismunandi tækja, skjástærða, stýrikerfisútgáfur og notendahegðun. Það er ómögulegt að prófa allt þetta handvirkt; Þess vegna er sjálfvirk prófun (kóðaprófunarkóði – prófun sem keyrir án mannssmells) burðarás farsímagæða. Gervigreind er ótrúlega dugleg að skrifa próf vegna þess að ritun próf er nákvæmlega sú tegund af mynsturvinnu sem henni líkar við: að staðfesta ákveðna hegðun fyrir tiltekna inntak. Í þessari einingu munum við læra hvernig á að flýta fyrir einingaprófun, viðmótsprófun og sjálfvirkni með gervigreind, en tryggja gæði prófsins með augum manna.
Pýramídapróf: hvað á að prófa og hversu mikið
Heilbrigð prófunarstefna líkist pýramída. Grunnurinn inniheldur mikinn fjölda einingaprófa (hraðpróf sem prófar eina aðgerð eða flokk í einangrun); þeir eru fljótir og ódýrir. Í miðjunni er minna samþættingarpróf (prófun á hvernig margir hlutar vinna saman). Efst er lágmarks UI/end-to-end prófun (prófun gerð með því að smella á skjáinn eins og notandinn gerir); þau eru raunsæ en hæg og viðkvæm. Gervigreind hjálpar í hverju lagi, en mest gildi er í grunninn: fljótt að framleiða einingapróf á viðskiptarökfræði.
Próf gerð
Gildissvið
hraða
AI skilvirkni
einingaprófun
Einfalt fall/flokkur
mjög hratt
mjög hátt
samþættingu
millilag
miðlungs
hátt
HÍ / enda til enda
Allur skjástraumur
hægur
Miðlungs (viðkvæmt)
Ábending: Þegar þú segir gervigreindinni að „búa til próf fyrir þessa aðgerð“ skaltu beinlínis biðja um jaðartilvik: tómt inntak, núll, neikvæð tala, mjög mikið gildi, netvilla. AI framleiðir hamingjusöm leið auðveldlega; Raunveruleg mistök leynast í landamærunum og hoppa út ef þú vilt ekki hafa þau þar.
Skref til að skrifa próf með gervigreind
- Skilgreindu hegðunina sem á að prófa. "Þessi aðgerð ætti að gefa þetta úttak til þessa inntaks."
- Tilgreindu rammann. JUnit + MockK á Android, XCTest á iOS, Espresso (Android) eða XCUITest (iOS) fyrir UI.
- Biðjið um takmarkanir. Góð atburðarás + villa + brotpunktar.
- Stjórna spotthlutum. Ytri ósjálfstæði eins og netkerfi og gagnagrunnur er líkt eftir til prófunar (spotti - stjórnað spotti í stað raunverulegrar þjónustu).
- Keyrðu prófið og staðfestu. Standist prófið, staðfestir það eitthvað raunverulega þýðingarmikið?
Fimmta skrefið er mikilvægt. Gervigreind framleiðir stundum gagnslaus próf sem „standast alltaf“; til dæmis próf sem sannreynir ekki neitt eða athugar eigin fölsuð gögn. Staðpróf og dýrmætt próf eru ólíkir hlutir.
Varúð: Bara vegna þess að gervigreind getur framleitt þýðir ekki að prófið sé rétt. Stundum samþykkir gervigreind núverandi (kannski gallaða) hegðun kóðans sem „rétt“ og skrifar próf í samræmi við það. Slík próf lagar villuna frekar en að grípa hana. Þú ákveður hverju prófið býst við; Segðu gervigreindinni hvað það ætti að gera, ekki hvað kóðinn gerir.
Prófþekjumæling og rökvilla
Prófumfjöllun (hversu hlutfall kóðans er keyrt af prófum) er gagnlegt en villandi mælikvarði. 90% umfang gefur til kynna að 90% af kóðanum hafi verið keyrt; en það hefur ekki verið sannreynt að þær línur virki rétt. Próf sem keyrir línu og athugar ekki niðurstöðuna blása upp umfangið en veitir ekki öryggi. Markmiðið er ekki háar tölur, heldur þýðingarmikil staðfesting. Þú getur stækkað fljótt með gervigreind, en vertu viss um að hvert próf prófi raunverulega hegðun.
þrjú smámál
Mál 1 - Landamæraástand gripið. Gervigreind var beðin um próf fyrir peningaflutningsaðgerð í bankaforriti og sérstaklega var „neikvæð upphæð“ og „meira en jafnvægi“ bætt við. Prófið leiddi í ljós að millifærslan var ekki læst með neikvæðri upphæð; þetta væri mikil öryggisveikleiki í framleiðslu. Lokað með því að bæta við einni línu stjórn. Lærdómur: landamærapróf eru verðmætustu prófin.
Mál 2 - Falspróf. Eitt teymi var létt yfir því að auka umfjöllun í 85% með 40 einingaprófum framleiddum af gervigreind. Við skoðun kom í ljós að flest prófin sannreyndu í raun ekki neina útkomu, þau kölluðu bara fallið og skrifuðu assertTrue(true). Umfjöllun var mikil en vörnin var núll. Próf voru endurskoðuð og endurskrifuð með raunverulegum staðfestingum. Lexía: umfjöllunartölur geta logið.
Tilfelli 3 - HÍ prófun flýtt. Rafræn viðskiptateymi skrifaði XCUITest handrit af bætikörfuflæðinu með gervigreind á 20 mínútum; Ef það væri skrifað í höndunum tæki það hálfan dag. AI giska á auðkenni skjáþátta; Liðið passaði þá við raunverulegan kóða og lagaði þá. Dröghraði er raunverulegur, en sannprófun auðkennis er mannleg vinna.
Veik kvaðning / Sterk kvaðning
Veik kvaðning: "Skrifaðu próf fyrir þessa aðgerð."
Öflug hvetja: "Framleiða einingapróf fyrir þessa Kotlin-aðgerð með JUnit5 + MockK. Virkni: peningaflutningur (upphæð, uppspretta, markmið). Hegðun til að prófa (hvað kóðinn ætti að GERA):- Gild millifærsla verður að heppnast- Neikvæð eða núll upphæð verður að hafna- Upphæð sem er hærri en staðan verður að hafna- Netprófsvillan ætti að vera viðeigandi undantekning, hver hlutur ætti að vera viðeigandi undantekning m utanaðkomandi þjónusta. Ekki skrifa tóma fullyrðingu.“
Afritanleg sniðmát
Einingaprófunarsniðmát: "Búa til [JUnit/XCTest] einingapróf fyrir þessa aðgerð fyrir [tungumál]. Vænt hegðun: [hvað á að gera]. Látið fylgja með: hamingjusöm atburðarás, núllinntak, brotpunktar, villutilvik. Leyfðu hverju prófi að sannreyna staka hegðun; notaðu marktæka fullyrðingu; spotta. [kóði]"
HÍ prófunarsniðmát: "Skrifaðu notendapróf af eftirfarandi flæði með [Espresso/XCUITest]: [notendaflæði skref fyrir skref]. Veldu skjáeiningar með aðgengisauðkenni, notaðu auðkenni í stað texta. Bættu við biðstefnu. Minndu mig á að passa þáttaauðkenni við raunverulegan kóða."
Sniðmát fyrir prófendurskoðun:"Skoðaðu þessi próf:1) Sannreyna þau í raun úttak/hegðun eða eru þau ógild?2) Nær þau til takmörkunartilvika?3) Villulaga þau kóðann eða búast við réttri hegðun? Flagga og styrkja veik próf. [próf]"
Sniðmát fyrir fínstillingu umfjöllunar: "Auðkenndu óprófaða hluta þessa flokks og stingdu upp á þýðingarmiklum prófum. Forgangsraðaðu leiðum með raunverulegri áhættu, ekki bara fjölda umfjöllunar. [kóði]"
Algeng mistök
- Bara að prófa hamingjusömu atburðarásina. Villur eru geymdar í mörkum; Biddu um þau opinskátt.
- Samþykkja tómt/gagnslaust próf. Prófanir af gerðinni assertTrue(true) blása upp umfangið og veita enga vernd.
- Að láta gervigreindina sannreyna hvað kóðinn er að gera. Próf ætti að búast við því sem kóðinn ætti að gera; annars lagar það villuna.
- Að misskilja umfangsnúmerið í þeim tilgangi. 90% umfang þýðir ekki 90% nákvæmni.
- Tengill á texta í HÍ prófun. Prófið er bilað þegar textinn breytist; Notaðu stöðugt auðkenni (id).
- Rangt sett upp spotta. „Einingaprófið“ sem kallar á raunverulega þjónustu verður hægt og brothætt.
Í stuttu máli
Prófun er burðarás farsímagæða og gervigreind er mjög dugleg á þessu sviði, sérstaklega í einingaprófunum. Fylgdu prófunarpýramídanum: margar einingar, miðlungs samþætting, lítil notendaprófun. Spyrðu gervigreindina beinlínis um ánægjulega atburðarásina sem og takmarka tilvik og villuleiðir. Gakktu úr skugga um að hvert próf sem búið er til staðfestir raunverulega hegðun; Tóm próf og uppblásin umfjöllun eru villandi. Mikilvægast er, segðu gervigreindinni hvað kóðinn ætti að gera, ekki hvað hann gerir, svo prófið grípur villuna, lagar hana ekki.
Umsóknarverkefni
Biðjið um prófanir frá gervigreindinni með því að nota „Einingaprófunarsniðmátið“ fyrir viðskiptarökfræðiaðgerð (t.d. afsláttarútreikning eða eyðublaðsfullgildingu) og tilgreinið sérstaklega mörk tilvik (null, neikvæð, of stór). Keyrðu útbúna prófin og láttu síðan endurskoða sömu próf með "Prófendurskoðunarsniðmátinu". Finndu að minnsta kosti eitt veikt próf, styrktu það og prófaðu hvort prófin nái raunverulegri villu í aðgerðinni (með því að bæta við litlum villu).
gátlisti
- [ ] Ég valdi viðeigandi lag fyrir prófunarpýramídann (forgangseining)
- [ ] Ég vildi takmarka og villutilvik fyrir utan hamingjusama atburðarásina
- [ ] Ég sannreyndi að hvert próf inniheldur marktæka fullyrðingu
- [ ] Ég sagði gervigreindinni hvað kóðinn ætti að gera, ekki hvað hann gerir
- [ ] Ég einbeitti mér að raunverulegum áhættuleiðum, ekki fjölda trygginga
- [ ] Ég notaði stöðugt auðkenni í HÍ prófum, ég bundist ekki texta