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
- Záznam se podaří vytvořit
- Záznam se vytvořit nepodařilo
- Záznam se podaří nalézt
- Záznam se nalézt nepodařilo
- 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
- Nebylo nic nalezeno
- Nalezne alespoň jeden záznam
- Vyhledávání selhalo
- Update záznamu se povede
- Update se nepovede
- 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