Pokud jste někdy museli vystopovat chybu ve svém kódu, pak víte, jak frustrující to může být. Tato frustrace se zvyšuje pouze v případě, že pracujete na velké kódové základně.

Testování vám umožňuje zkontrolovat, zda výsledky vašeho kódu odpovídají vašim očekáváním. Tímto způsobem můžete snadno identifikovat a opravit problém před nasazením aplikace. Kromě toho, že vám pomůže rychleji odhalit chyby v kódu, testování vás také nutí psát dobrý kód.

1. Statické testování

Statické testování označuje testy, které běží bez spuštění kódu. To se děje porovnáním kódu s dříve nastavenými pravidly kódování. Mezi běžné způsoby provádění statického testování patří lintování a kontrola typu.

Lining zahrnuje kontrolu kódu na programátorské a stylistické chyby. Linter analyzuje kód a označuje potenciální chyby. Příklady nástrojů pro linting jsou EsLint, PyLint a CSSLint.

Kontrola typu je proces vynucování pravidel psaní a omezení hodnot. Některé programovací jazyky jsou silně typované, což znamená, že vyvolávají chyby, když hodnoty nejsou správně napsány.

instagram viewer

Některé jazyky jako JavaScript však mají slabý systém psaní a jsou shovívavější. V těchto jazycích je těžké chytit chyby a knihovna pro kontrolu typu je nezbytná. U JavaScriptu můžete použijte TypeScript k vynucení silného psaní.

K automatické analýze kódu můžete také použít nástroje pro statickou analýzu. Tyto nástroje ověřují kvalitu kódu a hlásí všechny zjištěné problémy. Příklady nástrojů statické analýzy na trhu jsou SonarQube, DeepSource a SpotBugs. Při výběru statického analyzátoru se ujistěte, že podporuje váš programovací jazyk.

2. Jednotkové testy

Testy jednotek kontrolují nejmenší testovatelné části aplikace, aby se zjistilo, zda fungují podle očekávání. Můžete psát testy jednotek pro funkce, moduly, objekty atd.

Přestože jednotkové testy mohou být časově náročné, měly by ušetřit více času, než byste strávili ladění aplikace poté, co napíšete celý kód.

Obecně se testování jednotky skládá ze čtyř kroků:

  • Vytváření testů
  • Kontrola testu
  • Základní linie
  • Provedení testu.

Unit testy můžete psát ručně nebo je automatizovat pomocí rámce pro testování jednotek. V ručním testu byste napsali kód pro otestování funkce nebo jednotky, kterou potřebujete, a později testovací kód smažte.

Pokud používáte framework, zadejte jednotku, kterou testujete, a očekávané výsledky, poté spusťte test. Testovací rámec pak zaznamená neúspěšné a úspěšné testy. Obecně je lepší použít framework, protože je rychlejší.

Při psaní testu jednotky se ujistěte, že jednotka, kterou testujete, je nezávislá. Pokud se spoléhá na externí data, jako jsou proměnné, můžete použít simulace. Zesměšňování nahrazuje chybějící data použitá v jednotce.

Například, pokud testujete funkci, která spoléhá na data načtená z API, můžete vytvořit falešný datový objekt pro testovací účely.

3. Integrační testy

Integrační testy ověřují, jak různé komponenty fungují společně. To je na rozdíl od jednotkových testů, které testují nezávislé komponenty. Integrační testy píšete po jednotkových testech.

Integrační testy jsou nezbytné, protože zajišťují, že vaše aplikační logika vydrží.

Zvažte například dva moduly: jeden, který načítá data z API, a druhý, který je analyzuje. Měli byste se ujistit, že váš kód načítal správná data a správně je analyzoval.

Zde přichází na řadu integrační testování. Zajišťuje žádné chyby v logickém toku z jednoho modulu do druhého.

4. End-to-End testy

End-to-end testování kontroluje tok aplikace z pohledu koncového uživatele. Proces testuje aplikaci od začátku do konce, protože uživatel bude aplikaci používat. Tyto testy poskytují větší pokrytí než testy jednotek nebo integrační testy.

End-to-end testy definují závislosti aplikace, databáze a externí komunikaci. Co nejpřesněji kopírují scénář ze skutečného světa.

Například při testování registračního formuláře bude komplexní test testovat různé scénáře, jako jsou:

  • Uživatel, který odešle e-mail i heslo
  • Uživatel používající slabé heslo
  • Uživatel používající neplatný e-mail
  • Uživatel odeslaný pouze e-mailem
  • Pouze uživatel zadávající heslo

End-to-end testy zajišťují, že se aplikace v těchto scénářích chová podle očekávání.

Psaní testů vs. Psaní kódu

Testování vaší aplikace na začátku procesu vývoje je životně důležité. I když jsou všechny tyto testy nezbytné, je důležité najít rovnováhu, která vám vyhovuje. Jinak strávíte příliš mnoho času psaním testů místo kódu.

Testování jednotek je pro většinu aplikací zásadní a možná mu budete chtít věnovat dostatek času. Jakmile provedete testy jednotek, můžete si být jisti, že stavební bloky vaší aplikace fungují správně.