Qligħ:
- Kapaċità li tagħraf it-tliet uċuħ tal-psewdo-fiduċja (mhux assertiva, awto-assertiva, asserzjoni trivjali) u tapplika antidoti
- Kapaċità li tuża l-ittestjar tal-mutazzjoni u l-punteġġ tal-mutazzjoni bħala kejl aktar preċiż tal-kwalità mill-kopertura tal-perċentwali bl-għodda jew bl-idejn
- Kapaċità li tippożizzjona l-AI bħala tim aħmar kontra l-ittestjar u tikkaċċa għal lakuni tal-ittestjar mingħajr ma taqa 'fin-nassa tat-tifħir
Fil-qalba ta 'dan il-modulu hemm twissija rikorrenti: panel tat-test aħdar li jleqq mhuwiex evidenza ta' kwalità. Jekk it-testijiet tiegħek jagħtuk kunfidenza, trid tkun taf jekk dik il-kunfidenza hijiex reali jew falza. Fl-era tal-intelliġenza artifiċjali (AI), din il-mistoqsija hija aktar kritika minn qatt qabel, minħabba li l-AI hija kapaċi tipproduċi testijiet fluwidi, li jidhru bla xkiel iżda vojta. Kunfidenza falza — li wieħed jemmen li s-softwer huwa korrett għax it-testijiet huma ħodor, meta fil-fatt it-testijiet ma jivverifikaw xejn—hija l-aktar ħaġa perikoluża li tista’ tiġri lil tim tal-QA; għax jaħbi mhux li m'hemmx żbalji, iżda li ma tistax tara l-iżbalji. Din l-unità tgħaqqad il-filosofija ta' validazzjoni tal-modulu kollu f'dixxiplina waħda: l-ittestjar tat-testijiet tiegħek.
L-istandard tad-deheb għall-kejl tal-kwalità tal-ittestjar: l-ittestjar tal-mutazzjoni
L-aktar mod b'saħħtu biex wieħed jifhem jekk test jipproteġix jew le huwa l-ittestjar tal-mutazzjoni (test tal-mutazzjoni - teknika li tipproduċi distorsjonijiet/mutazzjonijiet żgħar intenzjonati fil-kodiċi tas-sors u tkejjel jekk it-testijiet jiskoprux dawn id-distorsjonijiet). Il-loġika hija sempliċi: jekk tkisser il-kodiċi deliberatament (tagħmel + f'-, a > fi >=, vera f'falza), test suite tajba għandha taqbad dik il-korruzzjoni u ssir ħamra. Jekk ma jagħmilx hekk, dak it-tfixkil huwa mutant li baqgħu ħajjin — għalhekk it-testijiet tiegħek mhumiex fil-fatt jippreservaw dik l-imġieba.
Punteġġ ta' mutazzjoni = mutazzjoni maqtula / mutazzjoni totali. Pakkett b'kopertura tal-linja ta' 90% jista' jkollu punteġġ ta' mutazzjoni ta' 40%; Dan jindika li l-linji qed jaħdmu iżda l-imġieba mhix verifikata. Il-punteġġ tal-mutazzjoni huwa kejl tal-kwalità ħafna aktar onest minn kopertura perċentwali.
Tip: Hemm għodod awtomatiċi ta' mutazzjoni (PIT/Pitest għal Java, Stryker għal JavaScript/TypeScript, Stryker.NET għal .NET, mutmut għal Python). Dawn awtomatikament jiġġeneraw u jittestjaw mijiet ta 'mutazzjonijiet. Jekk ma jkollokx għodda, anke l-metodu manwali "break the code test" huwa imprezzabbli għall-funzjonijiet kritiċi.
It-tliet uċuħ tal-psewdo-fiduċja u l-antidotu tagħha
Forma psewdo-trust
sintomu
antidotu
Test mingħajr affermazzjoni
Il-kodiċi jaħdem, xejn mhu validat
Asserzjoni vera f'kull test; test b'mutazzjoni
test li jikkonferma lilu nnifsu
Mistennija = output tal-kodiċi
Ikkalkula l-valur mistenni b'mod indipendenti
Trivjali jasserixxu
"mhux null", "200 lura"
Ivvalida r-regola tan-negozju/riżultat attwali
Fallacy ta 'skop għoli
90% linji, protezzjoni baxxa
Ħares lejn il-punteġġ tal-mutazzjoni
Tolleranza fraġli tat-test
"Mwaħħla mill-ġdid, għaddi"
Kawża ewlenija + ittestjar deterministiku
L-użu tal-AI bħala "tim aħmar"
L-AI tista' kemm tiġġenera psewdo-fiduċja kif ukoll tkun alleata qawwija fil-kaċċa tagħha. Uża l-AI bħala tim aħmar kontra t-testijiet tiegħek stess: staqsi "ikteb kodiċi li jgħaddi minn dawn it-testijiet iżda li huwa żbaljat" jew "sib sovverżjoni li se tqarraq dawn it-testijiet." Jekk l-AI ssib lakuni fit-testijiet tiegħek, dawk il-lakuni huma riskji reali.
Attenzjoni: Staqsix lill-AI "Il-kwalità tat-test tiegħi hija tajba?" u ħu t-tweġiba "iva, kbira" bħala assigurazzjoni. AI għandha tendenza li tkun tajba. Minflok, sfida lill-AI għal kompitu konkret: "tipproduċi bug li jgħaddi minn dawn it-testijiet." Jekk tista 'tipproduċiha, it-testijiet tiegħek huma għomja għal dak l-iżball.
Mutazzjonijiet ekwivalenti u limiti tal-punteġġ
L-ittestjar tal-mutazzjoni huwa qawwi, iżda għandu qabda: xi mutazzjonijiet ma jbiddlux l-imġiba tal-kodiċi bl-ebda mod. Dawn jissejħu mutazzjonijiet ekwivalenti (mutant ekwivalenti — kodiċi korrotta, mutazzjoni li tipproduċi eżattament l-istess riżultat bħall-oriġinal). Pereżempju, it-tibdil tal-valur inizjali ta 'varjabbli li qatt ma jintuża ma jaffettwax l-output; L-ebda test ma jista 'u m'għandux jaqbad dan. Għalhekk, punteġġ ta 'mutazzjoni ta' 100% ħafna drabi ma jistax jintlaħaq fil-prattika u mhuwiex l-għan. It-tneħħija ta' mutazzjonijiet ekwivalenti bl-idejn hija ta' xogħol intensiv; Allura ma taqrax il-punteġġ tal-mutazzjoni bħala punteġġ ta 'eżami assolut, iżda bħala indikatur onest ta' "it-testijiet tiegħi verament jipproteġu?"
L-approċċ prattiku huwa dan: minflok ma tmexxi kontinwament l-ittestjar tal-mutazzjoni madwar il-bażi tal-kodiċi kollha, ħaddem fuq il-moduli li fihom l-ogħla riskju u r-regoli tan-negozju l-aktar kumplessi. Eżamina l-mutazzjonijiet superstiti f'dawn il-moduli wieħed wieħed; Jekk huwa vojt reali, żid test; jekk hija mutazzjoni ekwivalenti, immarkaha b'ġustifikazzjoni u għaddi. L-AI tista' twettaq screening inizjali biex tevalwa jekk mutazzjoni superstiti hijiex ekwivalenti; iżda d-deċiżjoni finali tittieħed minnek li taf x'jagħmel il-kodiċi.
Attenzjoni: L-ittestjar tal-mutazzjoni jiswa komputazzjoni (it-testijiet rilevanti kollha jerġgħu jsiru għal kull mutazzjoni). Allura strateġija komuni u raġonevoli hija li tiġi skedata bħala kontroll fil-fond ta 'kull ġimgħa jew qabel ir-rilaxx għal moduli kritiċi, aktar milli kull amalgamazzjoni.
Pront dgħajjef / Pront qawwi
Dgħajjef: "It-testijiet tiegħi huma biżżejjed?"
Qawwija: "Aġixxi bħala tim aħmar għal din il-funzjoni u test suite. (1) Iġġenera 8 mutazzjonijiet fil-kodiċi li jistgħu jinqatlu (sostituzzjoni tal-operatur, bidla fil-konfini, inverżjoni tal-kundizzjoni, sostituzzjoni tal-valur tar-ritorn). (2) Għal kull mutazzjoni, indika liema mit-testijiet eżistenti se jaqbduha u liema MHUX. jgħaddi minn dawn it-testijiet kollha iżda jikser ir-regola tan-negozju + testijiet: [paste]"
Pront qawwija; Hija tpoġġi lill-AI bħala eżaminatur li jkisser it-test, mhux magna tat-tifħir.
Erba' mudelli li jistgħu jiġu kkupjati
1) Kontroll manwali tal-mutazzjoni:
Iġġenera 8 mutazzjonijiet sinifikanti (tfixkil intenzjonali minuri) għal dan il-kodiċi: sostituzzjoni ta 'operatur aritmetiku, limitu ta' tqabbil (> vs >=), inverżjoni loġika, ritorn/sostituzzjoni kostanti, qbiż tal-kundizzjoni. Għal kull mutazzjoni, ibassar liema mit-testijiet disponibbli se jaqbadha jew le. Kodiċi+testijiet: [paste]
2) Qtil tal-mutazzjoni superstiti:
Ir-rapport tat-test tal-mutazzjoni li ġej fih mutazzjonijiet superstiti (mhux maqbuda): [lista/rapport]. Għal kull wieħed, ikteb test minimu li se joqtol dik il-mutazzjoni (il-kodiċi se jsir aħmar meta jitkisser b'dan il-mod). Ikkummenta dwar liema mġiba tikkonferma t-test.
3) Tim aħmar - demm it-test:
Tista' tikteb kodiċi li Tgħaddi mit-testijiet KOLLHA li ġejjin, iżda tikser ir-regola tan-negozju li ġejja: [regola tan-negozju]. Jekk iva, liema lakuna f'dawn it-testijiet tippermetti dan? Żid it-test li se jagħlaq dik il-lakuna. Testijiet: [pejst]
4) Spezzjoni tal-kwalità tat-test:
Iċċekkja din it-test suite għall-kwalità. Immarka għal kull test:- Hemm affermazzjoni vera jew hija props?- Il-valur mistenni huwa indipendenti, derivat mill-kodiċi?- Jivverifika r-regola tan-negozju jew xi ħaġa trivjali? Fl-aħħar agħti stima ta '"punteġġ ta' affermazzjoni vera" u t-3 testijiet l-aktar dgħajfa. Testijiet: [pejst]
tliet każijiet żgħar
Każ 1 — Kopertura 92%, punteġġ tal-mutazzjoni 38%. Tim wieħed qagħad fuq kopertura għolja. Meta l-ittestjar tal-mutazzjoni sar bi Stryker, il-punteġġ kien 38%: il-biċċa l-kbira tal-mutazzjonijiet prodotti baqgħu ħajjin. Din kienet prova li t-testijiet ma kinux qed imexxu l-linji u jivverifikaw l-imġieba. It-tim investa tliet ġimgħat fl-ittestjar tal-kwalità; Il-punteġġ tal-mutazzjoni żdied għal 81%, u żewġ żbalji reali ta 'kalkolu nqabdu minn dawn it-testijiet imsaħħa fir-rilaxx li jmiss.
Każ 2 — AI qarraq it-test. B'mudell ta '"tim aħmar", espert talab lill-AI għal kodiċi li għadda mit-testijiet eżistenti iżda kiser ir-regola ta' skont. L-AI kitbet kodiċi li dejjem irritorna skont ta 'żero - u t-testijiet kollha baqgħu ħodor minħabba li l-ebda testijiet ma kienu jivverifikaw il-valur attwali tal-iskont. Gap jidher, asserzjonijiet reali miżjuda.
Każ 3 — In-nassa tat-tifħir. Tester junior staqsa lill-AI, "It-testijiet tiegħi huma tajbin?" u kien meħlus meta sema 'r-risposta, "Komprensiva ħafna." Il-kollega anzjan tiegħu kellu l-istess testijiet ivverifikati bl-użu tal-mudell tal-"verifika tal-kwalità tat-test"; Irriżulta li 12 minn 20 test kienu dekorazzjoni (mingħajr affermazzjoni jew junk). Il-mistoqsija t-tajba ġabet it-tweġiba t-tajba.
Żbalji komuni
- Żball ambitu għall-kwalità. Jiddependu fuq kopertura ta 'ringiela għolja u ma tħares lejn il-punteġġ tal-mutazzjoni xejn.
- Fidu t-tifħir tal-AI. Tistaqsi "It-testijiet tiegħek huma tajbin?" u tikkunsidra t-tweġiba pożittiva bħala assigurazzjoni.
- Derivazzjoni tal-valur mistenni mill-kodiċi. Testijiet li jivverifikaw lilhom infushom li jikkonfermaw kodiċi difettuż.
- Kun kuntent b'affermazzjonijiet trivjali. Kontrolli li ma jivvalidawx ir-regola attwali, bħal "mhux null", "200 lura".
- Injora mutazzjonijiet superstiti. Injora dak li ma nqabadx fir-rapport tal-mutazzjoni.
- Lanqas ma tipprova timmodifika manwalment il-kodiċi kritiku. Taqbeż il-pass "kisser il-kodiċi u test" jekk l-għodda ma tkunx disponibbli.
Fil-qosor
Psewdo-trust qed jemmen li s-softwer huwa korrett minħabba li t-testijiet huma ħodor; billi t-testijiet jistgħu ma jikkonfermaw xejn. L-istandard tad-deheb għall-kejl ta 'dan huwa l-ittestjar tal-mutazzjoni: tkisser il-kodiċi deliberatament u tkejjel jekk it-testijiet jaqbduhx. Il-punteġġ tal-mutazzjoni huwa kejl tal-kwalità ħafna aktar onest minn kopertura perċentwali. L-AI kemm tipproduċi psewdo-fiduċja kif ukoll issir tim aħmar b'saħħtu fil-kaċċa tiegħu — staqsi "tipproduċi bug li jgħaddi minn dawn it-testijiet." Ittestja t-testijiet tiegħek: asserzjoni vera, valur mistenni indipendenti, validazzjoni tar-regoli tan-negozju, u mutazzjonijiet maqtula.
Kompitu ta' applikazzjoni
Importa funzjoni li jkun fiha regola tan-negozju u t-testijiet tagħha mill-proġett tiegħek stess. Jekk possibbli, ħaddem għodda tal-mutazzjoni (Stryker/Pitest/mutmut) u kejjel il-punteġġ tal-mutazzjoni; Jekk ma jkunx hemm għodda, iġġenera mill-inqas 8 mutazzjonijiet bil-mudell "kontroll manwali tal-mutazzjoni" u pprovahom manwalment. Għal kull mutazzjoni superstiti, ikteb test ġdid bil-mudell "qatla mutazzjoni superstiti". Fl-aħħarnett, bil-mudell "tim aħmar", ara jekk l-AI tistax tipproduċi kodiċi li jqarraq it-testijiet tiegħek. Irrapporta l-punteġġ tal-mutazzjoni tal-bidu u tat-tmiem tiegħek (jew ir-rata ta' mutazzjoni maqbuda/total).
lista ta' kontroll
- [ ] I evalwajt il-kwalità tat-test skont il-punteġġ tal-mutazzjoni, mhux il-kopertura.
- [ ] Jien għamilt l-ittestjar tal-mutazzjoni (jew b'għodda jew manwalment) għal kodiċi kritiku.
- [ ] Jien ktibt testijiet ġodda għal kull mutazzjoni superstiti.
- [ ] Użajt l-AI bħala t-tim aħmar u fittixt il-lakuni fit-testijiet tiegħi.
- [ ] Ma ħadtx it-tifħir tal-AI "it-testijiet tiegħek huma tajbin" bħala serħan il-moħħ.
- [ ] Iċċekkjt li kull test jivverifika l-affermazzjoni attwali, il-valur mistenni indipendenti, u r-regola tan-negozju.