Girdeji:
- AI bilen birlik synagyny, gyradaky ýagdaýlary we örtük boşlugynyň derňewini öndürmek ukyby
- Kodyň häzirki özüni alyp barşyna däl-de, spesifikasiýa esasynda synag garaşmalaryny çap etmek ukyby
- Synagyň hakykatdanam ýalňyş sanjymlary bilen goraýandygyny ýa-da ýokdugyny barlamak ukyby
Synaglary ýazmak, döredijileriň köpüsiniň goýýan iň gymmatly meselelerinden biridir. Gowy synag toplumy, koduň garaşylşy ýaly işleýändigini we geljekdäki üýtgeşmeler üçin durmuş ýolunyň subutnamasydyr. Mesele, synag synaglaryny gaýtalamak we köp wagt talap etmek - AI-iň şöhle saçýan ýeri. Aöne bir täsir bar: AI köplenç bolmalysy ýaly däl-de, koduň bar bolan özüni alyp barşyny barlaýar. Bu tapawudy dolandyrmak bu bölümiň özenidir.
Bu bölümde birlik synagyny (ýeke özi funksiýany barlaýan synag, izolýasiýa), gyradaky synaglary we AI bilen synag maglumatlary döretmegi öwrenersiňiz; synag gurşawyndaky boşluklary ýapmak; we näme üçin AI synaglaryna kör ynanmak howply.
Synagyň iki tarapy: Özüňi alyp barşyňy düzetmek we barlamak
Synag iki dürli maksat bilen hyzmat edip biler. Birinjisi barlamak: koduň dogrudygyny, spesifikasiýa laýyk gelýändigini barlaýar. Ikinjisi regressiýany goramak: bu gün koduň özüni alyp barşyny doňdurýar, şonuň üçin ertir kimdir biri tötänleýin üýtgetse, synag bozular we habar berer.
AI soňkusynda gaty gowy; Koda seredýär we "şu wagt näme edýändigini" barlaýan ýagdaýlary döredýär. Theöne kod ilkibaşdan nädogry bolsa, AI bu nädogry hereketi “dogry” diýip görkezip biler. Şonuň üçin AI öndürýän her synagyň tassyklamasyny gözden geçirmeli: "Kod 42 gaýdyp gelýär we synag 42 garaşýar" 42-iň dogry jogapdygyny aňlatmaýar.
Üns beriň: AI synagdan geçse, koduň "işleýändigini" aňlatmaýar; diňe "AI-iň garaşyşy ýaly özüni alyp barşyny" aňladýar. Spesifikasiýa seredip, garaşmagyň dogrudygyny ýa-da ýokdugyny çözýärsiňiz.
Stepdimme-ädim: AI bilen berk synaglary ýazmak
- Diňe kod däl-de, spesifikasiýa beriň. "Bu funksiýa muny etmeli" maglumatyny goşsaňyz, AI dogry garaşmagy ýazyp biler; Diňe kod berseňiz, häzirki özüni alyp barşyny synap görer.
- Gyrasy ýagdaýlary soraň. Boş, null, nol, negatiw, gaty uly, erbet format, ylalaşyk - bagtly ýoldan aç-açan talap edýär.
- Synag çarçuwasyny we stilini görkeziň. "pytest ulanyň", "Arrange-Act-Assert nagşy", "her synag bir zady synasyn" we ş.m.
- Garaşylýan zatlary barlaň (tassyklama). Her tassyklamanyň dogry bahasyny barlaýan spesifikasiýa bilen deňeşdiriň.
- Ulanyşdaky boşluklary ýapyň. Bar bolan synaglary beriň we "haýsy şahalar we ýagdaýlar synagdan geçirilmedi?" soramaga mejbur etmek; soň öndürilen goşmaça synaglary barlaň.
Üç kiçi waka
1-nji hadysa - 52% -den 85% -e çenli. Bir hyzmat modulynyň synag gurşawy 52% boldy. Topar bar bolan synaglary AI-e iýmitlendirdi, eger barlanmadyk şahalary sanasa we olar üçin synaglar dörederdi. Adam gözden geçirmesi bilen gurşaw 85% -e çenli ýokarlandy; Bu işde AI ozal hiç wagt synag edilmedik bir bug şahasynda hakyky näsazlygy (nädogry säwlik koduny yzyna gaýtarýan ýol) açdy.
2-nji hadysa - falsealan garaşmagyň duzagy. Pul ýygnamak funksiýasy aslynda nädogrydy; 2.675-den 2.67-e tegelemegiň ýerine, 2.68-e derek 2.67 tegelekdi. AI koda seredip, “round_money” (2.675) == 2.67 ýazdy - ýalňyşlygy “dogry” diýip doňdurdy. Öndüriji spesifikasiýany okanda, garaşyşy düzedip, hakyky ýalňyşlygy tutdy. Kod däl-de, düzgüni barlamak tapawudy döretdi.
3-nji hadysa - Gyradaky partlama. AI-den sene aralygy funksiýasy üçin diňe “gyradaky ýagdaýlar” soralanda; Başlangyç = soňy, ters aralyk, böküş ýyly 29-njy fewral, dürli wagt zolaklary we null aralyk ýaly 8 hadysany öndürdi. Bularyň ikisi (ters aralyk we böküş ýyly) aslynda ýalňyşlyga sebäp boldy. Bu ýagdaýlary el bilen göz öňünde tutmak köplenç atlanýar; AI bu ýerde “gyrada beýni hüjümi” hyzmatdaşy boldy.
Göçürip boljak dört şablon
Spesifikasiýa esasly synag nesli:
Roly: Synaglary ýazýan dörediji. Çarçuwaly: {y pytest / JUnit / Jest ...}}. Näme etmeli funksiýa (spesifikasiýa): {{düzgün} following Aşakdaky funksiýa üçin synag ýazyň. Kodyň häzirki çykyşy däl-de, spesifikasiýa laýyklykda garaşýan zatlary ýazyň. Bagtly ýol + azyndan 4 gyrasy goşuň. Her synag bir zady barlasyn, düşündirişli at ulanyň. {{funksiýa}}
Gyrasy beýni hüjümi:
Bu funksiýany barlamak üçin synag edilmeli gyra / şowsuzlyk ýagdaýlaryny sanaň (null, null, nokatlar, erbet format, ylalaşyk, daşarky ýalňyşlyk) .Her ýagdaý üçin: giriş, garaşylýan hereket. Entek kod ýazmaň, diňe sanawlaň. {{Funksiýa}}
Örtük boşlugynyň derňewi:
Aşakda funksiýalar we elýeterli synaglar bar. Haýsy şahalar, şertler we ýagdaýlar synagdan geçirilmedi? Kemçilikleri sanaň we diňe kemçilikler üçin täze synaglary ýazyň. Bar bolanlary gaýtalamaň. Funksiýa: {{funksiýa}} Synaglar: {{bar bolan synaglar}}
Synag maglumatlary / obýektiň döredilmegi:
{{Funksiýa / hyzmat}} synaglary üçin hakyky synag maglumatlary dörediň: dogry nusgalar, serhet nusgalary we nädogry nusgalar. Daşarky garaşlylyk üçin {{X} simple ýönekeý masgaraçylyk häsiýetini teklip ediň. Hakyky gizlin maglumatlary ulanmak / PII; Galp maglumatlary dörediň.
Gowşak haýyş / Güýçli haýyş
Gowşak: "Bu funksiýa üçin synag ýazyň."
Güýçli: "pytest bilen. Funksiýa ulanylýar_diskount (jemi, göterim) - düzgün: arzanladyş 0% –30% bolmaly, çäkden çykyp, ValueError zyňmaly, netijesi 2 onka çenli tegelek bolmaly. Bu RULE tarapyndan garaşylýan zatlary ýazyň (kod bilen däl). Bagtly ýol + bu gyradaky ýagdaýlar: 0%, 30%, 31% (ýalňyşlyk), kody"
Güýçli goýberiş düzgünini berýär we "garaşmany kod däl-de, düzgüne görä ýaz" diýýär; Bu ýeke sözlem, AI-iň özüni alyp barşyny düzetmek duzagyny ýapýar.
Synag görnüşi
AI goşant
adam gözegçiligi
Roadol bölüminiň synaglary gutly bolsun
çalt skelet
Garaşmak dogrymy?
Gyradaky ýagdaýlar
Giňişleýin beýni hüjümi
Baglanyşyksyzlary ýok et
Giňişlik boşlugy
Geçirilen şahalary tapýar
Möhümligini tassyklaň
Synag maglumatlary / masgaralamak
Hakyky nusga öndürýär
PII ýok, realizm gözegçiligi
Synaglar kepillendirmeýär, hilini dolandyrýar
Testokary synag gurşawy ynam döredýär, ýöne ýalňyş hem bolup biler: 100 göterim gurşaw "her setir dogry" däl-de "her setir işledi" diýmekdir. AI bilen gurşawy köpeltmek aňsat; Asyl gymmaty manyly garaşmalary ýazmakda. Synagyň gymmaty, kod bozulanda sizi döwmek we duýduryş bermek ukybydyr. Şonuň üçin AI tarapyndan döredilen synaglar "kod üýtgese hakykatdanam bozulýarmy?" Diýen soraga esaslanýar. Sorag bilen barlaň; Bilgeşleýin bir setiri döwmek we synag arakesmesini görmek (mutasiýa pikiri) synagyň işleýändigini görkezýär.
Maslahat: AI ýazýan synagyň işleýändigini ýa-da ýokdugyny bilmek üçin kodda kiçijik bir näsazlyk dörediň (meselem, a + a - üýtgediň) we synagyň bozulýandygyny görüň. Eger bozulmasa, bu synag sizi goramaz.
Adaty ýalňyşlyklar
- Düzgün bermän synag soramak. Model häzirki özüni alyp barşyny doňdurýar; ýalňyşlygy "dogry" diýip düzedýär.
- Garaşylyşy okamazdan kabul etmek. Tassyklamalaryň dogry bahasyny barlamasaňyz, synag ýalňyşdyr.
- Diňe bagtly ýoly synap görmek. Hakyky ýalňyşlyklar gyrada ýaşaýar; Gyradaky ýagdaýlary aç-açan soraň.
- Maksadyň çägini ýalňyşdyrmak. Percentokary göterim dogry alyp barmagyň kepili däl.
- Synag maglumatlary hökmünde hakyky / gizlin maglumatlary etmek. Müşderi maglumatlary ýa-da syrlary synag we ammarlara girmeli däldir; Sintetiki maglumatlary dörediň.
Gysgaça
AI ýazuw synaglaryndan gaýtalanýan ýüküň köpüsini alýar: çalt süňkleri, gyralaryň uly sanawlaryny we örtük boşlugynyň derňewini öndürýär. Mostöne iň möhüm zat garaşyşlar: AI koduň häzirki özüni alyp barşyny barlamaga synanyşýar, synag bolsa spesifikasiýa laýyklykda ýazylmaly. Düzgüne beriň, garaşylýanlary barlaň, gyradaky ýagdaýlary ýerine ýetiriň we synaglaryň hakykatdanam bir näsazlyk sanjym bilen goraýandygyny ýa-da ýokdugyny barlaň. Synag gurşawy maksat däl-de, gural.
Programma meselesi
Funksiýany saýlaň we ilki bilen koduny berip AI-e synag çap ediň; Garaşylýan zatlara üns beriň. Soňra şol bir funksiýa üçin spesifikasiýa (zerur hereket) berip, synagy täzeden çap ediň. Iki synag toplumynyň garaşyşlaryny deňeşdiriň: hakyky ýalňyşlygy ýüze çykarýan başga bir zat barmy? Netijede, döredilen synaglaryň biriniň koda bilkastlaýyn näsazlyk goşmak we synag arakesmesini görmek arkaly işleýändigini barlaň.
gözegçilik sanawy
- [] Synagyň özüni alyp barşyny düzetmek ýa-da barlamakdygyny tapawutlandyrýaryn.
- [] Synag soranymda, kod däl-de, ýerinde bolmaly düzgüni (spesifikasiýa) berýärin.
- [] Her döredilen tassyklamany spesifikasiýa bilen deňeşdirýärin.
- [] Gyrasy we şowsuzlyk ýagdaýlaryny aç-açan soraýaryn.
- [] Göterim göterimini maksat däl-de, gural hökmünde görýärin.
- [] Synagyň hakykatdanam ýalňyş sanjymlary bilen goraýandygyny ýa-da ýokdugyny barlaýaryn.