Pradedančiųjų bandymų vadovas: klaidų tvarkymas kraštų bylose

Kuriant sudėtingas programinės įrangos dalis, neatsižvelgiant į kalbą, jūs pastebite savo testavimo įpročių modelį. Tos pačios panašios išvaizdos problemos iškils skirtingose ​​platformose ar projektuose. Nepriklausomai nuo to, ar kuriate kitą paprastą darbų sąrašą, kurį norite kalbėti, ar kuriate išsamią „PaaS“ paleidimo programą, pradeda rodytis tie patys bendrieji modeliai.

Reikėtų išbandyti šešis atvejus, kurie nušvies stebėtinai daug klausimų. Tai nėra suprantama nei išsami jų pačių versija. Jie yra lengvai įsimenamas testavimo paradigmų pogrupis, kuris gali būti taikomas bet kuriai kalbai, sistemai ar aplinkai.

Šie atvejai yra iš karto naudingi dviem kasdienio kodavimo rutinos aspektais: derinant konkrečius klausimus, kai jie kyla, ir kuriant kodų bazės testavimo rinkinį. Jie skirti bendrinėms, abstrakčioms bandymų formoms, kurios nušvies kai kurias dažniausiai pasitaikančias problemas, su kuriomis susiduria jaunesnieji kūrėjai.

Tai bus naudinga tik žiedinėje sankryžoje, atliekant funkcinį programavimą. Funkcinis programavimas apeina daugelį žemiau aprašytų paprasčiausių tipų klaidų. Bet kuriuo atveju naudinga nepamiršti tokių abstrakčių ribinių atvejų, nes jie suteikia apsaugą nuo blogos praktikos kode.

Šeši testai yra šie:

  • Nulis
  • Vienas
  • Du
  • Nuo dviejų iki maks. 1
  • maks
  • maks. + 1

Nors tai yra ribiniai atvejai, jų vertė yra tai, ką jie reprezentuoja. Užtikrindami, kad jūsų testai apimtų visas jūsų programos funkcijas, turėtumėte kuo paprastesnius testus.

Nulis

Nulis naudojamas bet kokiai nulinės įvesties formai žymėti, nesvarbu, ar tai neapibrėžta, ar nulis, ar tuščias masyvas, ar tiesiog faktinis skaičius 0. Tikriausiai labiausiai paplitusi ir paprasčiausia klaidos forma yra nuoroda į nulinę vertę, ir ją visada reikia išbandyti. Paprasčiausiai išbandykite funkciją, galutinį tašką arba įkelkite naudodami „Nulis“ įvestį ir patikrinkite, ar jis veikia taip, kaip tikėtasi.

Vienas

Vienas, kaip ir „Zero“, yra pati pagrindinė sugeneruoto vieno testo forma. Funkcija išbandoma su pirmuoju galiojančiu įprastu įėjimu. Tai naudingiausia atliekant regresijos bandymus. Ateityje kartojant kodą šis testas greitai parodys, ar programa (ar procesas) veikia taip, kaip tikėtasi.

Vienas testavimas suteikia jums sėkmės pagrindą, nesvarbu, ar tai sėkmingas administratoriaus galinio taško autentifikavimas, ar galiojantis failo įkėlimas, ar teisingas masyvo modifikavimas.

Du

Du yra ne tik apie masyvo indekso 2 testavimą, ar tai, ar jūsų algoritmas veikia su 2 įėjimais. Ji taip pat apima tai, kas atsitinka, kai du kartus paleidžiate tą patį kodą.

Kas nutiks du kartus iš eilės ištrinti HTTP užklausą tam pačiam šaltiniui, kas nutiks? Jei rūšiavimo funkcija su pasirinktu palyginamuoju numeriu iškviečiama du kartus iš eilės, ar ji elgiasi taip, kaip tikėtasi?

Du yra įdomus skaičius, nes tai pirmas kartas, kai galiojantis kodas, veikiantis, kai pakviečiamas vieną kartą, gali parodyti šalutinį poveikį pakartotinai įvykdžius. Šiek tiek pakeiskite anksčiau išbandytas funkcijas.

Tai susiję su būsenos modifikavimu ir funkcijos elgesio supratimu. Jei viskas, ką turime, yra funkcijos pavadinimas, tada šis kodas elgiasi tiksliai taip, kaip buvo numatyta. Turite kintamąjį, vadinamą 0, paskambinsite funkcija setVarToOne ir tada tvirtinsite, kad ji lygi vienai.

Iš pirmo žvilgsnio tai elgėsi tiksliai taip, kaip tikėtasi. Tačiau išbandžius tai, turint mintyje „Two“ idėją, išryškėtų gilesnės kodo problemos. Išbandytumėte jį paskambinę du kartus ir teigdami, kad abiem atvejais mVar yra lygus 1.

Nuo dviejų iki maks. 1

Nuo dviejų iki maks. 1 yra sveiko proto patikrinimas. Tai labai panašu į „One“ testą, tačiau yra subtilus skirtumas. Tai turėtų būti vidutinio naudojimo atvejis - ne pats paprasčiausias ar paprasčiausias ar lengviausiai skaitomas. Tik vidutinio naudojimo atvejis, kuris galbūt nėra ypač paprastas, tačiau tai gana įprasta .

Maks

„Max“ yra gana paprasta: jis tiesiog išbando jūsų programos ribas, ypač aplink apibrėžtas maks. Konstantas.

Jei turite paprastą susietą sąrašą, galite įsivaizduoti, kad turite iš pažiūros begalinį leidžiamų intarpų skaičių. Iš tikrųjų yra viršutinė riba - nesvarbu, ar tai INT_MAX, ar failų aprašų, kuriuos gali atidaryti jūsų OS, skaičius, ar tiesiog jūsų programai skirtas atminties ar vietos diske kiekis.

Tam tikromis aplinkybėmis Maksas gali atrodyti kaip neįmanomas testas, nes nėra žinomo maks. Tačiau šiais atvejais tikslas yra kito pobūdžio: išbandyti stresą.

Pavyzdžiui, gali būti, kad tam tikras naudotojo pateiktų duomenų kiekis sumažėja ir perduodamas per funkcijas, kol pasiekia jūsų apibrėžtą kilpą. Jei šie duomenys yra, tarkime, „INT_MAX“, gali praeiti nemažai laiko, kol jūsų kodas bus užpildytas. Dar blogiau, tai gali perkelti jūsų kodą į nesustabdomą būseną. Tai gali būti subtilios problemos, kylančios tik tada, kai jūsų kodas patenka į gamybą, todėl bandymo etape svarbu jas užčiuopti.

Maks. + 1

„Max + 1“ yra testas, kuris dažniausiai naudojamas norint patikrinti programuotojo nustatytus standartus ar taisykles. Tai reiškia, kad reikia išbandyti bet ką iki teorinės ribos + „epsilon“.

Tai gali pasireikšti kaip masyvas už ribų, išjungimo viena klaida, sveikojo skaičiaus perpildymo klaida ar bet kokia kita problema, kuri įvyksta pasiekus jūsų funkcijos ar programos ribas.

Jei maksimalus failo įkėlimo dydis yra 2 MB, pabandykite įkelti 2 MB + 1 b dydžio failą. Jei turite ribą dėl įrašų vartotojo katalogo numeris, įsitikinkite, kad patikrinimas vyksta tiek kliento pusėje irserverio pusėje.

Išvada

Kaip minėta pirmiau, tai nėra išsamus vaizdas, koks turėtų būti jūsų derinimo ar testavimo būdas. Tai tiesiog suteikia tvirtą, bendrą pagrindą, kuris turėtų peržengti bet kurį konkretų bandymų rinkinį ar sistemą.

Testai paprastai laikomi ribų ar kraštų atvejais, tačiau jie gali pakelti savo negražią galvą tose vietose, kurios nėra iš karto akivaizdžios.