Dobře …. takže to mě nutí bláznit, protože se snažím povzbudit tým, aby napsal více testů, ale tady jsem nelze určit, zda je následující příklad považován za integraci nebo funkční testovací případ.
Zvažte následující:
Máme jednoduchou webovou aplikaci, která směruje / vystavuje řadu zdrojů JSON . Každý požadavek uživatele vyžaduje, aby naše aplikace před provedením některých transformací dat a následným vrácením serializované odpovědi JSON dotazovala externí službu prostřednictvím protokolu HTTP (na back-endu).
Pomocí knihovny třetí strany můžeme zaznamenat každou jedinečnou interakci HTTP, ke které na back-endu dojde, a zapsat ji do souborového systému. Tyto záznamy se poté „přehrávají“, což umožňuje, aby tyto výsledky dotazu byly během testování považovány za deterministické.
Můj testovací případ obsahuje jediné tvrzení. Je to jen řetězec, který obsahuje očekávanou odpověď JSON pro jeden zdroj. Poté, co inicializujeme naši aplikaci – dovolíme jí směrovat požadavek před zachycením odpovědi a porovnáním s očekávaným JSON.
1) Je to funkční test nebo integrační test?
2) Je-li funkční, jaký je přesně rozdíl mezi „Testováním integrace velkého třesku a funkčním testováním“?
Odpověď
1) Je to funkční test nebo test integrace?
Funkční test testování a testování integrace jsou klasifikace testů a vzájemně se nevylučují.
V tomto případě je to obojí. Testy integrace jsou ze své podstaty jakýkoli test, který testuje více než jednu komponentu. Může být na nízká úroveň pro testování dvou tříd, které spolupracují, nebo to mohou být testy, které testují celý systém jako celek.
Funkční testy jsou testy, které potvrzují danou funkci systému. Takže pokud mám požadavek “ systém musí přetrvávat objekt uživatelů v databázi „, funkční test mohl tento požadavek ověřit spuštěním systému, uložením uživatele, zastavením systému, jeho opětovným spuštěním a ověřením, zda uživatel existuje a nezměnil se.
Pokud píšete Při testování testovacích případů ze specifikace požadavku nebo z uživatelských příběhů bych vaše testovací případy nazval „funkční testy“, ale jsou také přirozeně klasifikovány jako integrační testy.
2) Je-li funkční, jaký je přesně rozdíl mezi „Testováním integrace velkého třesku a funkčním testováním“?
Z mého chápání „velký třesk“ integrační testování “je integrační testování, při kterém jsou integrovány a poté testovány všechny součásti systému. Cílem tohoto testu je zajistit, aby se všechny komponenty správně integrovaly a aplikace mohla začít. Nevýhodou tohoto druhu testování je, že selhání testovacího případu udává velmi malý směr, kde je chyba, takže je důležité mít také testy integrace na nižší úrovni.
Vaše funkční testy budou pravděpodobně také integrovat všechny komponenty v systému před testováním. Přestože testování integrace velkého třesku může vypadat podobně, protože se spouští celý systém, jsou koncepčně odlišné.