čtvrtek 8. října 2015

Repository TestCase

Testovací scénáře pro Repository
Repository má klasicky 4 operace - vytvoření, načtení, upravení a smazání. Každou z nich ale musíme otestovat na minimálně dvě krajní situace abychom si ověřili chování v těchto případech. Úspěšné vrácení záznamu po jeho načtení z DB nebo selhání a vyhození vyjímky při pokusu smazat záznam, který je zamčený, nebo na něj uživatel nemá práva.

Každé vytvoření, nebo úprava záznamu má ale určité pravidla pro validaci záznamu, které je možné do databáze uložit. Například délky textových řetězců, povinnost vyplnit některý údaj (not null), formát datumu, číselné datové typy, atp. To nám počet scénářů navyšuje.

Výhodou ale může být použití DataDriven Testů, kdy se jednomu testu předává více testovacíh hodnot. Tímto můžeme pokrýt jedním testem velké množství scénářů testování krajích hodnot.

Kupříkladu entita  musí mít vyplně:
  • datum vytvoření
  • id uživatele který ji založil
  • potom typ záznamu musí být jedna ze dvou variant
  • a pokud odpovídá variantě 1 tak musí být vyplněna ještě poznámka
Create - Vytvoření záznamu
  • Záznam se podaří vytvořit
  • Záznam se vytvořit nepodařilo
Find - nalezne záznam podle primárního klíče
  • Záznam se podaří nalézt
  • Záznam se nalézt nepodařilo
GetAll - Získá z databáze všechny záznamy
  • V kolekci není žádný záznam
  • Podařilo se získat alespoň jeden záznam
  • Načítání se nezdařilo např. Chyba spojení s DB
Search - Získá z databáze všechny zázanamy které vyhovují podmínce
  • Nebylo nic nalezeno
  • Nalezne alespoň jeden záznam
  • Vyhledávání selhalo
Update - akualizace záznamu
  • Update záznamu se povede
  • Update se nepovede
Delete - smazání záznamu
  • Delete se povede 
  • Delete se nepovede (např. záznam byl již smazán, uživatel nemá práva k záznamu)
Pokud vezmeme 20 testovacích scénářů a budeme počítat 30 minut na implementaci jednoho dostáváme se na čas 10 hodin na implementaci testů. Jak dlouho by trvalo vašemu testerovi tuto funkčnost otestovat v hotové aplikaci?

Žádné komentáře:

Okomentovat