Okej …. så det här gör mig nöjd eftersom jag försöker uppmuntra teamet att skriva fler tester men här är jag kan inte avgöra om följande exempel anses vara en integration eller ett funktionellt testfall.
Tänk på följande:
Vi har en enkel webbapplikation som dirigerar / exponerar ett antal JSON-flöden . Varje användarförfrågan kräver att vår applikation frågar efter en extern tjänst via HTTP (på backend) innan vi utför vissa datatransformationer och sedan returnerar ett seriellt JSON-svar.
Med hjälp av ett tredjepartsbibliotek kan vi ” spela in varje unik HTTP-interaktion som inträffar på backend och skriv den till filsystemet. Dessa inspelningar ”spelas upp” så att dessa sökresultat kan behandlas som deterministiska under testningen.
Mitt testfall innehåller ett enda påstående. Det är bara en sträng som innehåller det förväntade JSON-svaret för en enda feed. Efter att vi har initierat vår applikation – tillåter vi att den dirigerar en begäran innan svaret tas och jämförs med det förväntade JSON.
1) Är detta ett funktionstest eller ett integrationstest?
2) Om det är funktionellt, vad är då skillnaden mellan ”Big Bang Integration Testing och Functional Testing”?
Svar
1) Är detta ett funktionstest eller ett integrationstest?
Funktionellt testning och integrationstestning är klassificeringar av tester, och de utesluter inte ömsesidigt.
I det här fallet är det båda. Integrationstest är per definition alla tester som testar mer än en komponent. Det kan vara vid en låg nivå för att testa två klasser som fungerar tillsammans, eller det kan vara tester som testar hela systemet som helhet.
Funktionella tester är tester som bekräftar en viss systemfunktion. Så om jag har ett krav ” systemet ska bestå användarnas objekt i databasen ”, funktionstestet kan verifiera detta krav genom att starta systemet, spara en användare, stoppa systemet, starta det igen och verifiera att användaren existerar och inte har ändrats.
Om du skriver ing testfall från en kravspecifikation eller från användarberättelser skulle jag kalla dina testfall ”funktionella tester”, men de klassificeras också som integreringstester av natur.
2) Om det är funktionellt, vad är då skillnaden mellan ”Big Bang Integration Testing och Functional Testing”?
Från min förståelse ”big bang integrationstestning ”är integrationstestning där alla komponenter i systemet integreras och sedan testas. Målet med detta test är att se till att alla komponenter integreras korrekt och att appen kan starta. Nackdelen med denna typ av testning är att ett misslyckande i ett testfall ger väldigt lite riktning till var felet är, så det är viktigt att också ha lägre integrationsprov.
Dina funktionstester kommer att integrerar antagligen också alla komponenter i systemet innan testning. Men medan big bang-integrationstester kan se ut likartade eftersom hela systemet startas är de begreppsmässigt olika.