Kezdő útmutató a teszteléshez: Hiba az éles esetek kezelésében

Amikor összetett szoftvereket épít, nyelvtől függetlenül, észrevesz egy mintát a tesztelési szokásaiban. Ugyanaz a hasonló megjelenésű probléma merül fel a különböző platformokon vagy projektekben. Függetlenül attól, hogy egy másik egyszerű tennivalók bemutatóját készíti elő egy beszélgetéshez, vagy átfogó hátteret épít a PaaS indításakor, ugyanazok az általános minták kezdenek megjelenni.

Hat olyan esetet kell tesztelni, amelyek meglepően sok kérdésre világítanak rá. Ezeknek nem célja átfogó, vagy egy teljes saját tesztcsomag. Sokkal inkább a közös tesztelési paradigmák könnyen megjegyezhető részhalmaza, amely bármilyen nyelvre, keretrendszerre vagy környezetre alkalmazható.

Ezek az esetek azonnal hasznosak a napi kódolási rutinok két aspektusában: a konkrét problémák hibakeresésében, amikor felmerülnek, és a kódkészlet tesztkészletének létrehozásában. Céljuk, hogy a tesztelés általános, absztrakt formái legyenek, amelyek fényt derítenek a junior fejlesztők néhány leggyakoribb kérdésére.

Ezek csak körforgalmi úton lesznek hasznosak a funkcionális programozás során. A funkcionális programozás megkerüli az alábbiakban vázolt legegyszerűbb hibatípusokat. Akárhogy is, hasznos szem előtt tartani ezeket a fajta elvont határeseteket, mivel ezek védősínt nyújtanak a kódban előforduló rossz gyakorlatokkal szemben.

A hat teszt a következő:

  • Nulla
  • Egy
  • Kettő
  • Kettőtől max-1-ig
  • max
  • max + 1

Annak ellenére, hogy ezek határesetek, értékük abban rejlik, amit képviselnek. Annak biztosítása mellett, hogy a tesztek lefedjék a program összes funkcionalitását, a teszteket egyszerűnek kell tartaniuk, a lehető legkevesebb érzékkel.

Nulla

A nullát a null bemenet bármilyen formájának megjelölésére használják, legyen az undefined, null, üres tömb vagy egyszerűen a tényleges 0. A hiba vitathatatlanul a legelterjedtebb és legegyszerűbb formája a Zero értékre való hivatkozás, és mindig tesztel. Egyszerűen teszteljen egy funkciót, végpontot vagy feltöltést egy Zero bemenettel, és ellenőrizze, hogy a várt módon viselkedik-e.

Egy

Az egyik, a Zero-hoz hasonlóan, a generált egyetlen teszt legalapvetőbb formája. A funkciót az első érvényes, normál bemenettel tesztelik. Ez a regressziós tesztnél a leghasznosabb. A kód későbbi iterációiban ez a teszt gyorsan megmutatja, hogy a program (vagy folyamat) a várt módon működik-e.

Az egyik teszt megadja a siker alapját, legyen szó sikeres hitelesítésről az adminisztrátoron, érvényes fájlfeltöltésről vagy helyes tömb módosításról.

Kettő

A kettő nem egyszerűen a 2. tömbindex teszteléséről szól, vagy arról, hogy az algoritmus 2 bemenettel működik-e. Ez magában foglalja azt is, hogy mi történik, ha ugyanazt a kódot kétszer futtatja.

Ha valaki egymás után kétszer küldene DELETE HTTP kérést ugyanarra az erőforrásra, mi történik? Ha az egyéni összehasonlító rendezési funkciót kétszer egymás után hívják meg, akkor a várakozásoknak megfelelően működik?

A kettő érdekes szám, mert ez az első alkalom, amikor az érvényes kód, amely egyszeri híváskor működik, megmutathatja az ismételt végrehajtások mellékhatásait. Vegyen egy kis változtatást a fent tesztelt funkciókon.

Ez az állapot megváltoztatásáról és a függvény viselkedésének megértéséről szól. Ha csak a függvény neve van, akkor ez a kód pontosan az elvárt módon viselkedik. Van egy 0 nevű változója, meghívja a setVarToOne függvényt, majd azt állítja, hogy egyenlő eggyel.

Első pillantásra ez pontosan a várt módon viselkedett. Ha azonban a Two ötletét szem előtt tartanánk, akkor a kód mélyebb problémáit emelnénk ki. Tesztelné úgy, hogy kétszer hívja, és azt állítja, hogy mindkét esetben az mVar egyenlő 1-vel.

Kettőtől max-1-ig

Kettőtől max-1-ig a józan ész ellenőrzés. Nagyon hasonlít a One teszthez, de van egy finom különbség. Ennek egy átlagos használati esetnek kell lennie - nem a legegyszerűbbnek vagy a legegyszerűbbnek, vagy a legkönnyebben olvashatónak. Csak egy átlagos használati eset, amely talán nem különösebben egyszerű, de meglehetősen gyakori .

Max

A Max meglehetősen egyszerű: egyszerűen teszteli az alkalmazás határait, különösen a meghatározott max konstansok körül.

Ha egyszerű összekapcsolt listával rendelkezik, elképzelheti, hogy látszólag végtelen számú megengedett betét van. A valóságban van egy felső határ - függetlenül attól, hogy ez az INT_MAX, az operációs rendszere által elérhető fájlleírók száma, vagy egyszerűen a program számára lefoglalt memória vagy lemezterület.

Bizonyos körülmények között Max lehetetlen tesztnek tűnhet, mert nincs ismert max. Cél ezekben az esetekben azonban más jellegű: stressztesztelni alkalmazását.

Például lehetséges, hogy a felhasználó által beküldött adatok egy része csökken, és átadódik a függvényeknek, amíg el nem éri az Ön által meghatározott kört. Ha ezek az adatok mondjuk INT_MAX, akkor elhanyagolható időbe telhet, amíg a kód elkészül. Rosszabb esetben előfordulhat, hogy a kódod megállás nélküli állapotba kerül. Ezek olyan finom kérdések lehetnek, amelyek csak akkor merülnek fel, ha a kódod termelésbe lép, ezért fontos, hogy a tesztelési szakaszban felfogd őket.

Max + 1

A Max + 1 olyan teszt, amelyet leginkább a programozó által bevezetett szabványok vagy szabályok ellenőrzésére használnak. Ez magában foglalja bármi tesztelését elméleti határáig + epsilon.

Ez nyilvánulhat határon kívüli tömbként, egy hibával kikapcsolva, egész szám túlcsordulási hibaként vagy bármilyen más problémaként, amely akkor következik be, amikor eléred a funkció vagy program határait.

Ha maximális fájlmérete 2 MB, próbálja meg feltölteni a 2 MB + 1 b méretű fájlt. Ha van egy határ a bejegyzések számát a felhasználó katalógus, győződjön meg arról, hogy az ellenőrzés történik mind a kliens oldali ésszerver oldal.

Következtetés

Mint fent említettük, ez nem teljes kép arról, hogy milyen legyen a hibakeresés vagy a tesztelési rutin. Ez egyszerűen szilárd, általános kiindulási alapot nyújt, amelynek felül kell mutatnia minden speciális tesztkészletet vagy keretrendszert.

A teszteket általában határ- vagy éleseteknek tekintik, de csúnya fejüket olyan helyeken emelhetik fel, amelyek nem azonnal nyilvánvalóak.