Iesācēju testēšanas ceļvedis: kļūdu apstrāde malās

Veidojot sarežģītas programmatūras vienības, neatkarīgi no valodas, jūs sākat pamanīt paraugu testēšanas paradumos. Tādas pašas līdzīga izskata problēmas radīsies dažādās platformās vai projektos. Neatkarīgi no tā, vai sarunai veidojat vēl vienu vienkāršu uzdevumu saraksta demonstrāciju vai izveidojat visaptverošu PaaS starta aizmuguri, sāk parādīties tie paši vispārīgie modeļi.

Ir jāpārbauda seši gadījumi, kas spīd gaismu pārsteidzoši daudzos jautājumos. Tie nav domāti kā visaptveroši vai pilnīgi savi testa komplekti. Drīzāk tie ir viegli iegaumējama kopējo testēšanas paradigmu apakškopa, kas var būt piemērota jebkurai valodai, ietvaram vai videi.

Šie gadījumi ir nekavējoties noderīgi divos ikdienas kodēšanas rutīnas aspektos: noteiktu problēmu atkļūdošanā, kad tie rodas, un kodu bāzes testēšanas komplekta izveidē. Tie ir domāti kā vispārīgas, abstraktas testēšanas formas, kas spīdēs gaismā uz dažiem visbiežāk sastopamajiem jautājumiem, ar kuriem saskaras jaunākie izstrādātāji.

Funkcionālajā programmēšanā tie būs noderīgi tikai apļveida krustojumā. Funkcionālā programmēšana apiet daudzus turpmāk aprakstītos vienkāršākos kļūdu veidus. Jebkurā gadījumā ir lietderīgi paturēt prātā šādus abstraktus robežas gadījumus, jo tie nodrošina aizsargjoslu pret sliktu praksi kodā.

Seši testi ir šādi:

  • Nulle
  • Viens
  • Divi
  • Divi līdz maks-1
  • maks
  • max + 1

Lai arī šie ir robežgadījumi, to vērtība ir tā, ko viņi pārstāv. Nodrošinot, lai jūsu testi aptvertu visas jūsu programmas funkcionalitātes, jums vajadzētu saglabāt savus testus vienkāršus un pēc iespējas mazāk nojauta.

Nulle

Nulli izmanto, lai apzīmētu jebkādu nulles ievades veidu, neatkarīgi no tā, vai tas ir nenoteikts, nulle, tukšs masīvs vai vienkārši faktiskais skaitlis 0. Iespējams, ka visizplatītākā un vienkāršākā kļūdas forma ir atsauce uz nulles vērtību, un tā vienmēr tiek pārbaudīta. Vienkārši pārbaudiet funkciju, galapunktu vai augšupielādi ar nulles ievadi un pārliecinieties, ka tā darbojas kā paredzēts.

Viens

Viens, tāpat kā Zero, ir visizplatītākā viena testa forma. Funkcija tiek pārbaudīta ar pirmo derīgo parasto ievadi. Tas ir visnoderīgākais regresijas testēšanai. Turpmākajos koda atkārtojumos šis tests ātri parādīs, vai programma (vai process) darbojas kā paredzēts.

Viena pārbaude dod pamatu panākumiem neatkarīgi no tā, vai tā ir veiksmīga autentifikācija administratora galapunktā, derīga failu augšupielāde vai pareiza masīva modifikācija.

Divi

Divi nav tikai par masīva indeksa 2 pārbaudi vai to, vai jūsu algoritms darbojas ar 2 ieejām. Tas ietver arī to, kas notiek, ja vienu un to pašu kodu palaižat divas reizes.

Kas notiek, ja kāds divreiz pēc kārtas veic DELETE HTTP pieprasījumu vienam un tam pašam resursam? Ja šķirošanas funkcija ar pielāgotu salīdzinātāju tiek izsaukta divas reizes pēc kārtas, vai tā darbojas kā paredzēts?

Divi ir interesants skaitlis, jo tā ir pirmā reize, kad derīgs kods, kas darbojas, kad tiek izsaukts vienreiz, var parādīt blakusparādības atkārtotai izpildīšanai. Veiciet nelielas izmaiņas iepriekš pārbaudītajās funkcijās.

Tas attiecas uz stāvokļa pārveidošanu un funkcijas uzvedības izpratni. Ja mums ir tikai funkcijas nosaukums, šis kods darbojas precīzi, kā paredzēts. Jums ir mainīgais ar nosaukumu 0, jūs izsaucat funkciju setVarToOne un pēc tam jūs apgalvojat, ka tas ir vienāds ar vienu.

No pirmā acu uzmetiena tas izturējās tieši tā, kā bija paredzēts. Tomēr, pārbaudot to, domājot par Two ideju, tiktu izcelti dziļāki koda jautājumi. Jūs to pārbaudītu, divreiz piezvanot un apgalvojot, ka abos gadījumos mVar ir vienāds ar 1.

Divi līdz maks-1

Divi līdz maks-1 ir saprāta pārbaude. Tas ir ļoti līdzīgs One testam, taču ir smalka atšķirība. Tam vajadzētu būt vidējam lietošanas gadījumam - nevis vienkāršākajam vai vienkāršākajam, vai arī visvieglāk lasāmajam. Tikai vidējs lietošanas gadījums, kas, iespējams, nav īpaši vienkāršs, bet tas ir diezgan izplatīts .

Maks

Makss ir diezgan vienkāršs: tas vienkārši pārbauda jūsu lietojumprogrammas robežas, it īpaši ap noteiktām maksimālajām konstantēm.

Ja jums ir vienkārša saistītā saraksta ieviešana, jūs varētu iedomāties, ka jums ir šķietami bezgalīgs atļauto ieliktņu skaits. Patiesībā pastāv augšējā robeža - neatkarīgi no tā, vai tas ir INT_MAX, vai jūsu faila deskriptoru skaits, kas var būt atvērts jūsu operētājsistēmai, vai vienkārši jūsu programmai piešķirtais atmiņas vai diska vietas apjoms.

Dažos apstākļos Makss var šķist neiespējams tests, jo nav zināms zināms maks. Šajos gadījumos mērķim tomēr ir cits raksturs: pārbaudīt stresu jūsu pieteikumā.

Piemēram, iespējams, ka noteikts lietotāja iesniegto datu gabals tiek samazināts un tiek izlaists caur funkcijām, līdz tas sasniedz jūsu definēto cilpu. Ja šie dati ir, teiksim, INT_MAX, koda sagatavošana var aizņemt nenozīmīgu laiku. Vēl sliktāk, tas var mest jūsu kodu uz nepārtrauktu stāvokli. Tās var būt smalkas problēmas, kas rodas tikai tad, kad kods tiek ražots, tāpēc ir svarīgi tos noķert testēšanas posmā.

Maks. + 1

Max + 1 ir tests, kuru galvenokārt izmanto, lai pārbaudītu programmētāja ieviestos standartus vai noteikumus. Tas nozīmē kaut ko pārbaudīt līdz tā teorētiskajai robežai + epsilon.

Tas var izpausties kā masīva ārpus robežas problēma, izslēgta ar vienu kļūdu, vesela skaitļa pārpildes kļūda vai jebkura cita veida problēma, kas notiek, sasniedzot savas funkcijas vai programmas robežas.

Ja maksimālais faila augšupielādes lielums ir 2 MB, mēģiniet augšupielādēt failu, kura lielums ir 2 MB + 1 b. Ja jums ir ierobežojums ierakstu skaitam lietotāju katalogā, pārliecinieties, vai pārbaude notiek gan klienta pusē, ganservera pusē.

Secinājums

Kā minēts iepriekš, tas nav pilnīgs priekšstats par to, kādai jābūt jūsu atkļūdošanas vai testēšanas kārtībai. Tas vienkārši nodrošina stabilu, vispārīgu bāzes līniju, kurai būtu jāpārsniedz jebkurš īpašs testēšanas komplekts vai ietvars.

Testi parasti tiek uzskatīti par robežas vai malas gadījumiem, taču tie var pacelt neglīto galvu vietās, kas nav uzreiz acīmredzamas.