Qligħ:
- Jifhmu l-iskop tal-ittestjar tar-rigressjoni u tkun kapaċi tagħżel testijiet u tipproduċi każijiet ta 'rigressjoni skont bidliet b'intelliġenza artifiċjali
- Kapaċità li jiġu djanjostikati l-kawżi fundamentali tat-testijiet fraġli (ħin, dipendenza tal-ordnijiet, stat kondiviż, dipendenza esterna) u japplikaw soluzzjonijiet permanenti mingħajr ma jrażżnu s-sintomu
- Kapaċità li żżomm id-dixxiplina tat-tmexxija tal-pakkett sħiħ qabel ir-rilaxx filwaqt li żżomm il-suite ta' rigressjoni veloċi, indipendenti u affidabbli billi telimina l-ittestjar duplikat
Is-softwer jinbidel kontinwament; Kull karatteristika ġdida, kull tiswija, tista 'tkisser xi ħaġa li ħadmet qabel. L-interruzzjoni sussegwenti ta 'funzjoni li kienet taħdem qabel tissejjaħ rigressjoni. L-ittestjar tar-rigressjoni qed ittestja mill-ġdid il-funzjonalità eżistenti b'kull bidla biex jaqbad dawn id-degradazzjonijiet. Maż-żmien, dawn it-test suites jikbru — eluf ta’ testijiet — u jinqalgħu żewġ problemi kbar: is-suite jonqos, u flaky tests — testijiet inaffidabbli li kultant jgħaddu u kultant ifallu fl-istess kodiċi — jeqirdu l-fiduċja tat-tim fir-riżultati tat-test. L-intelliġenza artifiċjali (AI) hija għajnuna qawwija biex iżżomm il-suite tar-rigressjoni miżmuma tajjeb, veloċi u affidabbli. Iżda l-twissija ċentrali tibqa ': Filwaqt li l-AI tista' toffri li "tgħaddi" test fraġli, ħafna drabi tista 'tipproduċi garża li tkopri bug reali. Ix-xogħol tiegħek huwa li ssib il-kawża ewlenija tal-instabilità, mhux irażżan is-sintomu.
Kawżi għeruq ta 'testijiet fraġli
L-ittestjar fraġli huwa l-aktar problema ta 'ttestjar insidjuż: mhuwiex affidabbli jekk jgħaddix jew ifalli, u jimbotta lit-tim fil-vizzju li "għandu reġa' jeħel, erġa' ħaddem" - u dan il-vizzju xi darba jinjora bug reali bħala "flaky". Kawżi ewlenin ewlenin:
- Kundizzjoni tal-ħin/tlielaq: It-test jiċċekkja r-riżultat mingħajr ma jistenna li tispiċċa operazzjoni. L-aktar raġuni komuni.
- Dipendenza tal-ordnijiet: It-testijiet jiddependu fuq id-dejta li jħallu xulxin; Tkisser meta l-ordni tinbidel.
- Każ kondiviż: Testijiet multipli jużaw l-istess data tat-test/utent, konfliġġenti.
- Dipendenza esterna: Netwerk reali, servizz ta 'parti terza, ħin tas-sistema, valur każwali.
- Differenza fl-ambjent: Taqleb għal lokali, tibqa 'f'CI (ambjent ta' integrazzjoni kontinwa).
Attenzjoni: Li tgħaddi minn test fraġli billi "repprova ftit drabi" ħafna drabi jaħbi żball reali ta' konkorrenza. Ipprova mill-ġdid hija għodda dijanjostika, mhux trattament. Sib il-kawża ewlenija l-ewwel; Uża biss ipprova mill-ġdid bħala l-aħħar għażla għal instabbiltà dokumentata, tassew esterna.
Manutenzjoni tat-test: iżżomm il-pakkett b'saħħtu
Il-suite ta 'rigressjoni hija bħal ġnien; Jekk ma jittieħedx ħsieb, il-ħaxix ħażin jieħu f’idejh. L-AI tassisti fi tliet kompiti ta’ manutenzjoni:
1. Tindif tat-test duplikat/mhux meħtieġ. Maż-żmien numru kbir ta’ każijiet jakkumulaw jittestjaw l-istess ħaġa. L-AI tissuġġerixxi li tiġbor u tgħaqqad testijiet simili.
2. Dijanjosi tat-test fraġli. Int tagħti lill-AI il-kodiċi tat-test u l-mudell ta 'instabilità; jissuġġerixxi kawżi ewlenin possibbli u soluzzjoni permanenti.
3. Għażla tat-test/prijoritizzazzjoni. Huwa għali li tmexxi l-pakkett kollu ma 'kull bidla. Bl-analiżi tal-impatt tat-test (b'għażla ta' testijiet rilevanti biss ibbażati fuq kodiċi mibdul), AI tirrakkomanda liema testijiet għandhom isiru l-ewwel. Madankollu, il-pakkett sħiħ ta 'qabel il-ħruġ huwa meħtieġ.
Kwarantina: ġestjoni tad-dritt tal-ittestjar fraġli
Int sibt li test huwa fraġli, imma m'għandekx ħin biex tirranġa l-kawża ewlenija mill-ewwel. X'għandek tagħmel? Hemm żewġ modi żbaljati: biex tħassar it-test kompletament (dik l-imġieba m'għadhiex ippreservata xejn) jew biex isikketha b'prova mill-ġdid (tgħatti l-bug reali). Il-mod korrett huwa l-kwarantina (separazzjoni temporanja tat-test fraġli mill-pakkett ewlieni u ssegwih f'lista separata). L-ittestjar fil-kwarantina ma jipprevjenix l-għaqda tal-verżjoni, iżda jibqa' dejn viżibbli u jiġi indirizzat regolarment. Il-punt kritiku huwa dan: il-kwarantina hija kamra ta 'stennija, mhux bott taż-żibel. Jekk il-lista tal-kwarantina qed tikber, dan huwa allarm li s-saħħa tat-test tat-tim qed tiddeterjora. L-AI tista' perjodikament tirrevedi l-lista tal-kwarantina tiegħek u tiġborha skont il-mudelli tal-kawża ewlenija; Jippermetti soluzzjonijiet kollettivi billi jiżvela kawżi komuni, bħal "is-6 testijiet kollha huma konnessi mal-istess utent tat-test kondiviż".
Tip: Żid "sid" u "l-aħħar data riveduta" għal kull rekord tal-kwarantina. Il-kwarantina mitluqa ssir miżbla permanenti; Testijiet fraġli jgħixu hemm għal dejjem għax ħadd ma jimpurtah.
Tabella ta' strateġija ta' rigressjoni
Status
Strateġija
Rwol tal-AI
korrezzjoni minuri
Żona affettwata + test tad-duħħan
Agħżel it-testijiet rilevanti
karatteristika ġdida
Modulu relatat + integrazzjoni
Ipproponi każ ġdid ta' rigressjoni
refactor kbir
Pakkett sħiħ tar-rigressjoni
Analiżi tad-distakk fil-kopertura
pre-rilaxx
Pakkett sħiħ + esplorazzjoni
Stima tal-prijorità u tat-tul
Fix urġenti live
Iffukat + triq kritika
Sett minimu tat-test sigur
Pront dgħajjef / Pront qawwi
Dgħajjef: "Dan it-test kultant ifalli, irranġah."
Qawwija: "Dan it-test ifalli 3 minn 10 ġirjiet, kodiċi mhux mibdul. Iddijanjostika l-kawża ewlenija ta 'instabilità: jista' jkun ħin/razza, dipendenza fuq l-ordni, stat kondiviż, dipendenza esterna, jew differenza fl-ambjent. Uri liema linja fit-test tindika kull kawża possibbli. Issuġġerixxi soluzzjoni permanenti; TIssuġġerixxix soluzzjoni li trażżan is-sintomi bħal "żid it-test mill-ġdid" — jekk ikteb b'mod ċar. [log]."
Pront qawwija; jidderieġi d-dijanjosi għall-kawża ewlenija u jipprojbixxi b'mod espliċitu t-trażżin tas-sintomi.
Erba' mudelli li jistgħu jiġu kkupjati
1) Dijanjosi tat-test fraġli:
Dan il-kodiċi tat-test kultant jgħaddi u kultant ifalli mingħajr tibdil. Elenka l-kandidati tal-kawża ewlenija (razza, dipendenza tal-ordni, stat kondiviż, dipendenza esterna, arloġġ / każwali, differenza ambjentali) u uri l-linja tal-evidenza fit-test għal kull wieħed. Issuġġerixxi soluzzjoni permanenti; immarka soluzzjoni soppressiva bħal erġa' pprova bħala l-aħħar għażla u b'ġustifikazzjoni. Test: [kodiċi] / Mudell ta' instabbiltà: [kemm-il darba f'kemm ġirjiet]
2) Tipproponi każ ta' rigressjoni:
Saret il-bidla li ġejja: [Sommarju tal-bidla/PR].Elenka l-imġieba KURRENTI li din il-bidla tkisser u tipproponi każ tat-test tar-rigressjoni għal kull wieħed. B'mod partikolari jenfasizzaw oqsma ta 'effetti sekondarji u dipendenzi kondiviżi.
3) Tindif tat-test duplikat:
Iċċekkja t-test suite hawn taħt. Jiggruppaw każijiet duplikati jew li jikkoinċidu li jittestjaw l-istess imġieba; Issuġġerixxi liema minnhom għandi nżomm u liema għandi ngħaqqad għal kull grupp. Wissi jekk ikun hemm riskju ta’ telf ta’ kopertura. Testijiet: [lista/kodiċi]
4) Għażla tal-effett tat-test:
Il-fajls/funzjonijiet li ġejjin inbidlu: [lista]. Mis-suite tat-test eżistenti, agħżel u ġġustifika t-testijiet li għandi bżonn nagħmel l-ewwel (dawk li huma direttament/indirettament marbuta mal-kodiċi mibdul). Nota: fakkarni li xorta se nmexxi s-suite sħiħa ta' qabel ir-rilaxx.
tliet każijiet żgħar
Każ 1 — Żball reali kopert minn Retry. Tim wieħed żied 3 tentattivi mill-ġdid għal test tal-ħlas okkażjonali li kien fadal; It-test kien dejjem "jgħaddi" issa. L-applikazzjoni tat-"test fraġli dijanjostiku" sabet li l-instabilità ġiet minn kundizzjoni ta 'razza reali: b'tagħbija għolja, il-konferma tal-ħlas ġieli ġiet ipproċessata doppjament. Għal xhur sħaħ, Retry kopriet bug li seta 'irriżulta f'telf reali ta' flus ħajjin. Kawża ta' l-għerq imwaqqfa, ipprova mill-ġdid imneħħija.
Każ 2 — Il-pakkett naqas, il-veloċità żdiedet. Suite ta 'rigressjoni ta' 1,400 test ħa 55 minuta. Bi "tindif tat-test duplikat", 380 test irriżultaw li kienu duplikati jew koperti; magħquda. Il-pakkett tnaqqas għal 900 test, il-ħin tnaqqas għal 34 minuta, il-kopertura ma tnaqqsitx b'mod li jitkejjel. Feedback aktar mgħaġġel ħeġġeġ lit-tim biex jittestja aktar spiss.
Każ 3 — Dipendenza tal-ordni. Test dejjem jgħaddi lokalment, iżda b'mod każwali ifalli f'CI. Id-dijanjostika tal-AI wriet li t-test kien jiddependi fuq l-utent maħluq minn test ieħor, f'CI kissru minħabba li t-testijiet dam f'ordni parallela/differenti. Kull test sar biex tiġi stabbilita d-dejta tiegħu stess; L-indeċiżjoni spiċċat.
Żbalji komuni
- Issikket it-test fraġli b'retry. Jipprova mill-ġdid mingħajr ma tfittex il-kawża ewlenija; jgħatti l-iżball reali.
- Kultura "Stuck again". Rutina tinjora r-riżultati ħomor; Ġurnata waħda, taqbeż l-iżball reali.
- Mhux żbir tal-pakkett xejn. Li tippermetti li testijiet duplikati jinġabru u jnaqqsu l-pass fil-pakkett.
- Dipendenza bejn it-testijiet. It-testijiet huma bbażati fuq kundizzjoni/sekwenza komuni; sors ta’ inċertezza.
- Ittestja biss il-parti mibdula u taqbeż il-pakkett sħiħ. Shortcut ta' qabel ir-rilaxx; Effetti sekondarji moħbija jaħarbu.
- Jiddependu fuq dipendenza esterna. Testijiet ibbażati fuq netwerk attwali/arloġġ/valur każwali; naturalment instabbli.
Fil-qosor
L-ittestjar tar-rigressjoni jaqbad bidliet li jkissru funzjonijiet li qabel kienu jaħdmu; Iżda hekk kif il-pakketti jikbru, ir-ritmu u l-ittestjar fraġli jnaqqsu l-fiduċja. Il-kawżi ewlenin tal-ittestjar fraġli huma ġeneralment iż-żmien, id-dipendenza tal-ordnijiet, l-istat kondiviż, u d-dipendenzi esterni. AI hija għajnuna qawwija fid-dijanjosi, it-tindif u l-għażla tat-test; Imma s-soppressjoni ta' l-indeċiżjoni b'retry tkopri żbalji reali. Sib il-kawża ewlenija, agħmel it-testijiet indipendenti u deterministiċi, aqla l-pakkett regolarment, mexxi l-pakkett sħiħ qabel ir-rilaxx.
Kompitu ta' applikazzjoni
Agħżel test mill-proġett tiegħek stess li taf li huwa fraġli (jew jidher instabbli). Oħroġ il-kandidati tal-kawża ewlenija u vverifika l-linji ta’ evidenza fit-test bil-mudell ta’ “dijanjosi tat-test fraġli”. Identifika l-kawża ewlenija u implimenta soluzzjoni permanenti mingħajr ma terġa' tipprova. Imbagħad agħżel 10 testijiet mill-pakkett tiegħek u sib dawk li jistgħu jiġu kkombinati ma '"tindif tat-test duplikat." Irrapporta kemm ssolvit instabbiltajiet tat-test mill-kawża ewlenija tagħhom u kemm neħħejt każijiet bla bżonn mis-suite.
lista ta' kontroll
- [ ] Iddijanjostikajt il-kawża ewlenija tat-test fraġli; Ma nrażżnix is-sintomu.
- [ ] Jien ikkunsidrajt Retry bħala l-aħħar għażla ġustifikata, mhux kura.
- [ ] Għamilt it-testijiet indipendenti u deterministiċi (iżolati minn dipendenzi esterni).
- [ ] Inqajt testijiet duplikati/mhux meħtieġa mis-suite ta' rigressjoni.
- [ ] Għażilt li nittestja bbażat fuq il-bidla, iżda għamilt il-pakkett sħiħ qabel ir-rilaxx.
- [ ] Ħadt kull aħmar bis-serjetà, kontra l-kultura "stack again, pass".