Principy testování – FIRST

FIRST principy představují:

  • Fast – rychlé
  • Isolated/Independenct – izolované/nezávislé
  • Repeatable – zopakovatelné
  • Self-Validating – samo-ověřující
  • Thorought – důkladné

Chyby se objevují v částech kódu, kterým většinou nevěnujeme pozornost, nebo v místech která jsou příliš těžko pochopitelná.

Rychlé (Fast)

Vývojář by neměl váhat se spuštěním testů v jakýkoli okamžik vývoje. I tisíce testů by se měly spustit a ukázat výsledek do pár vteřin.

Izolované (isolated)

Test by měl být nezávislý na prostředí v kterém běží případně na nastavení. Měl by být nezávislý na všem ostatním, aby jeho výsledek nebyl ovlivněn žádným jiným faktorem.

Měl by následovat strukturu zápisu – ideálně Given, When, Then zápis.

Given – popis světa a dat před tím než spustíme testovací scénář. Něco jako podmínky pro spuštění testu.

When – co se stane když něco změníme

Then – ověřování že se změna projevila

Repeatable – zopakovatelné

Testy musí být vždy zopakovatelné a deterministické, jejich hodnoty se nesmí měnit v průběhu na různých prostředích.

Každý test si musí nachystat vlastní data a nesmí záviset na jakýkoliv externích závislostech.

Self-validating – samo-ověřující

Nemělo by být potřeba ručně ověřit zda, test prošel nebo ne.

Thorought – důkladný test

  • pokrýt veškeré očekávané chování
  • pokrýt všechny okrajové případy u kterých očekáváme chyby
  • test na nepovolené argumenty a hodnoty
  • test se zaměřením na zranitelnosti funkce
  • test na velké vstupní hodnoty
  • ideálně pokrýt všechny scénáře, ne však se snažit dosáhnout 100% pokrytí kódu

Odkazy