Okay …. så det gør mig nødt, da jeg prøver at opmuntre holdet til at skrive flere tests endnu her er jeg ikke i stand til at afgøre, om følgende eksempel betragtes som en integration eller en funktionel testtilfælde.
Overvej følgende:
Vi har en simpel webapplikation, der ruter / udsætter et antal JSON-feeds Hver brugeranmodning kræver, at vores applikation forespørger om en ekstern tjeneste via HTTP (på backend), før der udføres nogle datatransformationer og derefter returnerer et serielt JSON-svar.
Ved hjælp af et tredjepartsbibliotek er vi i stand til at registrer enhver unik HTTP-interaktion, der forekommer på backend, og skriv den til filsystemet. Disse optagelser “afspilles” derefter, så disse forespørgselsresultater kan behandles som deterministiske under testningen.
Min testcase indeholder en enkelt påstand. Det er bare en streng, der indeholder det forventede JSON-svar for en enkelt feed. Efter at vi har initialiseret vores applikation – tillader vi, at den dirigerer en anmodning, inden svaret fanges og sammenlignes med det forventede JSON.
1) Er dette en funktionstest eller en integrationstest?
2) Hvis det er funktionelt, hvad er der så forskellen mellem “Big Bang Integration Testing og Functional Testing”?
Svar
1) Er dette en funktionstest eller en integrationstest?
Funktionel test og integrationstest er klassifikationer af tests, og de er ikke eksklusivt for hinanden.
I dette tilfælde er det begge dele. Integrationstest er pr. definition enhver test, der tester mere end en komponent. Det kan være ved et lavt niveau for at teste to klasser, der fungerer sammen, eller det kan være tests, der tester hele systemet som helhed.
Funktionelle tests er tests, der bekræfter en given systemfunktion. Så hvis jeg har et krav ” systemet skal vedblive, at brugerne er i databasen “, den funktionelle test kan verificere dette krav ved at starte systemet, gemme en bruger, stoppe systemet, starte det igen og kontrollere, at brugeren eksisterer og ikke har ændret sig. p> Hvis du skriver i testcases fra et kravspecifikation eller fra brugerhistorier vil jeg kalde dine testcases “funktionelle tests”, men de er også klassificeret som integrationstests af natur.
2) Hvis det er funktionelt, hvad er der så forskellen mellem “Big Bang Integration Testing og Functional Testing”?
Fra min forståelse “big bang integrationstest “er integrationstest, hvor alle systemets komponenter er integreret og derefter testet. Målet med denne test er at sikre, at alle komponenter integreres korrekt, og at appen kan starte. Ulempen ved denne form for test er, at en fejl i en testtilfælde giver meget lidt retning til, hvor fejlen er, så det er også vigtigt at have integrationstests på et lavere niveau.
Dine funktionstest vil integrerer sandsynligvis også alle komponenter i systemet inden test. Men mens big bang-integrationstest muligvis ligner hinanden, fordi hele systemet startes, er de konceptuelt forskellige.