Ak ste niekedy museli vystopovať chybu vo svojom kóde, potom viete, aké frustrujúce to môže byť. Táto frustrácia sa zvyšuje iba vtedy, ak pracujete na veľkej kódovej základni.

Testovanie vám umožňuje skontrolovať, či výsledky vášho kódu zodpovedajú vašim očakávaniam. Týmto spôsobom môžete ľahko identifikovať a opraviť problém pred nasadením vašej aplikácie. Okrem toho, že vám testovanie pomôže rýchlejšie odhaliť chyby v kóde, núti vás písať dobrý kód.

1. Statické testovanie

Statické testovanie sa týka testov, ktoré prebiehajú bez spustenia kódu. To sa deje porovnaním kódu s predtým nastavenými pravidlami kódovania. Bežné spôsoby vykonávania statického testovania zahŕňajú lintovanie a kontrolu typu.

Lining zahŕňa kontrolu programovania a štylistických chýb v kóde. Linter analyzuje kód a označuje potenciálne chyby. Príkladmi nástrojov na lintovanie sú EsLint, PyLint a CSSLint.

Kontrola typu je proces presadzovania pravidiel a obmedzení pre písanie. Niektoré programovacie jazyky sú silne napísané, čo znamená, že spôsobujú chyby, keď hodnoty nie sú správne napísané.

instagram viewer

Niektoré jazyky ako JavaScript však majú slabý systém písania a sú zhovievavejšie. V týchto jazykoch je ťažké zachytiť chyby a knižnica na kontrolu typu je nevyhnutná. V prípade JavaScriptu môžete použite TypeScript na vynútenie silného písania.

Na automatickú analýzu kódu môžete použiť aj nástroje statickej analýzy. Tieto nástroje overujú kvalitu kódu a hlásia všetky zistené problémy. Príkladmi nástrojov na statickú analýzu na trhu sú SonarQube, DeepSource a SpotBugs. Pri výbere statického analyzátora sa uistite, že podporuje váš programovací jazyk.

2. Jednotkové testy

Jednotkové testy kontrolujú najmenšie testovateľné časti aplikácie, aby sa zistilo, či fungujú podľa očakávania. Môžete písať testy jednotiek pre funkcie, moduly, objekty atď.

Hoci jednotkové testy môžu byť časovo náročné, mali by ušetriť viac času, než by ste strávili ladenie aplikácie po napísaní celého kódu.

Vo všeobecnosti sa testovanie jednotky skladá zo štyroch krokov:

  • Vytváranie testov
  • Kontrola testu
  • Základná línia
  • Vykonanie testu.

Unit testy môžete písať manuálne alebo ich automatizovať pomocou rámca testovania jednotiek. V manuálnom teste by ste napísali kód na otestovanie funkcie alebo jednotky, ktorú potrebujete, a neskôr testovací kód odstránite.

Ak používate rámec, špecifikujte jednotku, ktorú testujete, a očakávané výsledky, potom spustite test. Testovací rámec by potom zaznamenával neúspešné a úspešné testy. Vo všeobecnosti je lepšie použiť rámec, pretože je rýchlejší.

Pri písaní testu jednotky sa uistite, že jednotka, ktorú testujete, je nezávislá. Ak sa spolieha na externé údaje, ako sú premenné, môžete použiť falošné. Posmešky nahrádzajú chýbajúce údaje použité v jednotke.

Napríklad, ak testujete funkciu, ktorá sa spolieha na údaje získané z API, môžete vytvoriť falošný dátový objekt na testovacie účely.

3. Integračné testy

Integračné testy kontrolujú, ako rôzne komponenty spolu fungujú. Toto je na rozdiel od jednotkových testov, ktoré testujú nezávislé komponenty. Po jednotkových testoch píšete integračné testy.

Integračné testy sú nevyhnutné, pretože zaisťujú, že logika vašej aplikácie trvá.

Predstavte si napríklad dva moduly: jeden, ktorý získava údaje z rozhrania API, a druhý, ktorý ich analyzuje. Mali by ste sa uistiť, že váš kód načítal správne údaje a správne ich analyzoval.

Tu prichádza na rad integračné testovanie. Zabezpečuje, že v logickom toku z jedného modulu do druhého nebudú žiadne chyby.

4. End-to-End testy

End-to-end testovanie kontroluje tok aplikácie z pohľadu koncového používateľa. Proces testuje aplikáciu od začiatku do konca, pretože používateľ bude aplikáciu používať. Tieto testy poskytujú väčšie pokrytie ako testy jednotiek alebo integračné testy.

End-to-end testy definujú závislosti aplikácie, databázy a externú komunikáciu. Čo najpresnejšie kopírujú scenár zo skutočného sveta.

Napríklad pri testovaní registračného formulára bude komplexný test testovať rôzne scenáre, ako napríklad:

  • Používateľ, ktorý odošle e-mail aj heslo
  • Používateľ používajúci slabé heslo
  • Používateľ používajúci neplatný e-mail
  • Používateľ odoslal iba e-mail
  • Používateľ, ktorý odošle iba heslo

Komplexné testy zabezpečujú, že sa aplikácia v týchto scenároch správa tak, ako sa očakáva.

Písanie testov vs. Písanie kódu

Testovanie vašej aplikácie na začiatku procesu vývoja je životne dôležité. Aj keď sú všetky tieto testy nevyhnutné, je dôležité nájsť rovnováhu, ktorá vám vyhovuje. V opačnom prípade strávite príliš veľa času písaním testov namiesto kódu.

Testovanie jednotiek je pre väčšinu aplikácií rozhodujúce a možno mu budete chcieť venovať dostatok času. Po vykonaní jednotkových testov si môžete byť istí, že stavebné bloky vašej aplikácie fungujú správne.