what is interface testing
Introduktion til interface test:
Når en applikation eller en software eller et websted udvikles, er der flere komponenter i det. Disse komponenter kan være server, database osv.
Forbindelsen, der integrerer og letter kommunikationen mellem disse komponenter, betegnes som et interface.
Enkelt sagt er en grænseflade en software, der består af et sæt kommandoer, meddelelser osv.
Denne tutorial giver dig et komplet overblik over Interface-test sammen med dets behov, type, strategi, tjekliste og nogle af dens værktøjer i enkle vendinger for at berige din viden om konceptet.
Hvad du vil lære:
- Introduktion
- Hvornår og hvorfor skal vi teste et interface?
- Typer af interface-test
- Strategi eller tilgang til test af interface
- Forskel mellem interface, integration og test af komponenter
- Tjekliste til interface-test
- Bedste værktøjer til interface test
- Konklusion
- Anbefalet læsning
Introduktion
For en computer kan en grænseflade være API'er, webtjenester osv. Kommunikationen mellem de forskellige komponenter i en software eller en applikation eller et websted kan påvirke den overordnede ydeevne, hvorfor denne kommunikation, dvs. grænsefladen skal også testes og verificeres.
Testen, der udføres for at kontrollere interface-funktionaliteten, kaldes Interface-test.
De 2 almindelige komponenter i interface-test inkluderer:
- Webserver og applikationsservergrænseflade.
- Databaseserver og applikationsservergrænseflade.
Hvornår og hvorfor skal vi teste et interface?
Nedenfor er nævnt de 3 faser af interface-test i en interface-livscyklus:
1) Konfiguration og udvikling:
Når grænsefladen er konfigureret, og når udviklingen starter, skal konfigurationerne verificeres i henhold til kravet.
2) Validering:
Når udviklingen er afsluttet, skal grænsefladen valideres og verificeres, dette kan også gøres som en del af enhedstest.
3) Vedligeholdelse:
den bedste youtube til mp3 konverter online
Når hele softwaren er klar, implementeret og fungerer, skal grænsefladen overvåges for dens ydeevne og eventuelle nye problemer introduceret på grund af de foretagne ændringer eller forringet ydeevne.
Når vi begynder at udvikle en grænseflade, skal vi sikre os, at vi ikke introducerer nogen fejl i vores kode, og derfor skal der køres tests på grænsefladen for at kontrollere, at tilføjelse af ny kode ikke injicerer nye fejl. Dette hjælper dig med at afgøre, om grænsefladen er fejlfri og i henhold til kravet.
Når vi er tilfredse med grænsefladen, validerer vi den til den tilsigtede arbejdsgang, data osv. Vi kan køre ydeevne, enorme datatests og kontrollere, hvor godt grænsefladen reagerer. Dette sparer meget tid, der vil blive brugt på at rette mangler senere.
I en nøddeskal udføres interface-test for at:
- For at kontrollere, om serverudførelsen er korrekt.
- Fejlhåndtering udføres korrekt, og passende fejlmeddelelser vises for forespørgsler fra applikationen eller softwaren.
- For at kontrollere resultatet, når en forbindelse til serveren nulstilles.
- At kontrollere sikkerhedsaspektet, når komponenterne kommunikerer i sig selv.
- For at kontrollere indvirkningen af netværksfejl på kommunikationen mellem komponenterne.
Typer af interface-test
Interface-test udføres dybest set på systemarkitekturens messaging-lag. Det involverer for det meste test af REST API eller SOAP-webservice med JSON- eller XML-format.
Interface-test involverer typisk følgende fremgangsmåder:
- Enhedstest: Test af funktionaliteten for hver enkelt operation (i en funktion).
- Funktionel testning : Test af funktionaliteten i bredere scenarier, der involverer oprettelse af testsager, validering, regression osv.
- Belastningstest: Validering af ydeevnen under belastning, hovedsagelig ved hjælp af funktionelle testcases.
- Sikkerhedstest : Test af sikkerhedsmekanismen, og den inkluderer penetrationstest samt validering af adgangskontrol, kryptering osv.
- Registrering af kørselsfejl: Overvågning af en applikation for problemer som runtime race, lækage af ressourcer osv.
- Workflow test: Dette gøres for at sikre, om grænseflademotoren håndterer din arbejdsgang som forventet.
- Individuelle systemer: Denne test udføres for at verificere hvert systems individualitet. Ligesom faktureringssystemet og lagerstyringssystemet skal kunne fungere individuelt.
Strategi eller tilgang til test af interface
Ligesom enhver anden test er interface-test lige så vigtig, da den sikrer problemfri funktion, ydeevne osv. Af forskellige datadrevne applikationer og systemer ved at verificere kommunikationen mellem databasen, netværk og systemer.
Interface-test bliver vigtigere, når vi verificerer applikationens afhængighed med andre apps.
Nedenfor er der få trin, der sikrer, at interface-test lykkes:
1) Definer dit krav:
Før du opretter interface-test, er det vigtigt at forstå applikationen. Forsøg derfor at finde svar på spørgsmål som hvad er formålet med grænsefladen? Hvad er arbejdsgangen for systemet eller applikationen? Hvad er funktionerne og funktionerne i grænsefladen?
Definition af alle sådanne svar hjælper dig med at forstå kravet, finde ud af vanskelige punkter i applikationen og derefter oprette testsagerne i overensstemmelse hermed. Ofte savner QA dette, og senere fører dette til forvirring om kravet eller forkert test.
2) Forventet output:
Nu kender vi og forstår kravet meget godt, det er på tide at færdiggøre det output, som vi forventer fra testene. Ikke kun et Pass eller Mislykket, det kan være nogle data, ringe til en anden API osv. Det kan ikke kun være vanskeligt, men også risikabelt at måle resultatet af det forventede resultat.
Forsøg derfor at finde ud af, hvad der kunne blive resultatet ved at diskutere med udviklerne.
3) Start lille:
Med interface-test kan vi ikke gå direkte videre med oprettelse af store testsager, det er relativt simpelt at oprette små testsager eller opkald. I det mindste skal du i små funktioner oprette en lille testkode og kontrollere, om output er som forventet eller ej.
4) Prøv at automatisere:
Skrivning af koder til test af en grænseflade kan være kedeligt.
Du bruger ikke kun tid på at skrive koden, men sammen med dette bliver du også nødt til at bruge tid på at forstå formatet, stilen, det kodningssprog, der bruges til udvikling, og derefter som en prikken over i'et skal du sørge for at din kode skaber ikke et problem med appen eller systemkoden.
Derfor er det bedre at undersøge og finde nogle automatiseringsværktøjer, der sparer din dag. Det bliver meget lettere og en tidsbesparende proces også.
5) Definer start- og stoppunkterne:
Før vi starter udførelsen af en test, bestemmer vi altid start- (start) og stop (exit) -punktet for testen samt beslutter, hvordan hele testprocessen starter og slutter. På samme måde er vi også nødt til at måle ydeevneniveauet for Interface-testen.
For at gøre det skal vi finde svarene på følgende to spørgsmål:
- Hvad er den forventede afslutningstid for en interfacetest?
- Hvad er den faktiske afslutningstid for en interfacetest?
Dette trin med at involvere indgangs- og udgangspunkter for en grænsefladetest hjælper dig med at finde testens ydeevne. Dette hjælper dig også med at tage en beslutning om den planlagte testplan.
Forskel mellem interface, integration og test af komponenter
Nedenfor er der få forskelle:
S. nr. | Komponenttest | Interface test | Integrationstest |
---|---|---|---|
1 | At teste en komponent individuelt for at kontrollere det forventede resultat kaldes komponenttest | Test af en grænseflade for at verificere det forventede resultat kaldes grænsefladetest. | Når alle eller et par moduler eller komponenter er integreret til at fungere kollektivt; derefter kaldes test udført for at verificere slutningen til slut-funktionaliteten af de integrerede komponenter integrationstest. |
to | En komponent kan være alt som en skærm, login-modul osv. | Grænseflader er bredt webtjenester, API, forbindelsesstrenge osv. | Integration kan være en komplet brugssag som for en bankapp, log-in og tilføj din 'Modtager' osv. |
3 | Denne testning er relativt let. | Denne test er vanskelig og kedelig. | Denne test er lidt let, men længde. |
4 | Manuel og automatisering er begge anvendelige. | For det meste automatisering. | Manuel og automatisering er begge anvendelige. |
5 | Denne test gælder både for kode og GUI for appen eller systemet. | Denne test udføres kun på koden; der er ingen GUI. | Denne test gælder både for kode og GUI for appen eller systemet. Men det er for det meste GUI. |
Tjekliste til interface-test
Nedenfor er nogle tjeklistepegere, der skal overvejes til interface-test:
- 4xx- og 5xx-fejl skal inkluderes i testene, fordi de hjælper dig med at verificere serversiden og klient-side-fejlhåndtering. Ideelt set bør en passende meddelelse vises i stedet for en kodefejl.
- Validering af brugeren ved hjælp af HTTP-godkendelse.
- Kontroller alle de metoder, der bruges i API eller webtjenester som GET, PUT, POST osv.
- Bekræft konverteringen fra JSON-format til XML-format og omvendt.
- Kontroller, om bulkoperationerne på en grænseflade henter det forventede resultat.
- Bekræft, om tidszonen for API'en matcher specifikationen for tidszonen for et geografisk område.
- Kontroller, om uautoriseret adgang til grænsefladen fører til en korrekt fejlmeddelelse.
- Kontroller, om forbindelsesafbrydelserne håndteres korrekt.
- Kontroller, at hvis nogle komponenter fjernes fra applikationen, interagerer grænsefladen ikke længere med disse komponenter osv.
Bedste værktøjer til interface test
Da virksomheder bevæger sig hen imod DevOps, Continuous Integration (CI) og Continuous Deployment (CD), skal testfeedback være hurtigere end nogensinde. Inden du gør dig klar til at sende din applikation, skal du sørge for, at grænsefladerne er godt testet. Manuel test af grænsefladen kan også være meget kedelig, kompliceret og en tidskrævende proces.
Den bedste metode til at udføre interface-test er at bruge automatisering og inkludere interface-test i din automatiseringsplan.
Derfor er følgende en liste over de værktøjer, der hjælper dig med at gennemføre din interface-test så hurtigt som muligt. Imidlertid vil jeg personligt anbefale at bruge SoapUI (jeg brugte dette værktøj i mit projekt til test af webservices), men ethvert krav er anderledes, så lad os tage et kig på de 5 bedste værktøjer.
Top 5 værktøjer inkluderer:
1) REST-forsikret
For folk, der arbejder med Java, Stol trygt på er det mest foretrukne værktøj. Faktisk er det det bedste værktøj til API-test med Java, fordi det er ret svært at kontrollere REST-webtjenester i Java. Det er designet til testformål og kan derfor nemt integreres med enhver Java-baseret ramme.
Det har meget kogt i funktionaliteter, hvorfor du ikke behøver at kode ting fra starten. Dette værktøj integrerer godt med Serenity-rammen, og du kan generere fantastiske testrapporter.
2) Postbud
Nogle testere kan ikke lide at bruge det samme kodningssprog som IDE. For sådanne mennesker er Postman en god mulighed for automatisering. Dette er også en god mulighed for en sonderende interface-test.
Postbud er en simpel REST-klient, og man kan hurtigt begynde at udnytte sit Chrome-plugin. Den har en tilgængelig version, som kan bruges til Mac, Linux og Windows. Det har et brugergrænseflade, som hjælper med at opbygge anmodninger og kontrollere det modtagne svar.
3) SoapUI
Hvis dit team kun laver API-test, SÆBE kan være et godt valg. Det er et komplet funktionelt testværktøj dedikeret til API-test. Det understøtter også datadrevet test, hvor dataene kan overføres i CSV- eller excel-format. Den har også en betalt version kaldet SoapUI Pro, som tilbyder endnu bedre og forbedrede funktioner til test af webservices.
Hvis du vil tilføje ekstra kode til en bestemt arbejdsgang eller funktionalitet, skal du bruge Groovy til dit scripting. Du kan også oprette en global variabelindstilling og bruge alle disse variabler i dine tests i stedet for at initialisere individuelt til hver test.
valg sorteringskode c ++
4) JMeter
JMeter bruges i vid udstrækning til belastningstest, og det kan også bruges til interface-test. JMeter har rekord- og afspilningsunderstøttelse, og den genererer HTML-rapporter, som er lette at læse og forstå. Da JMeter er kompatibel med CSV-filer, giver dette dig mulighed for at oprette unikke parametre til test.
Det er let integrerbart med Jenkins, så dine tests kan inkluderes i CI. Hvis du vil bruge det samme værktøj til en grænseflade og belastningstest, vil JMeter være et værdigt valg.
5) Fiddler
Violinist hjælper dig med at kontrollere og bruge (igen) HTTP-anmodningerne. Det har mange funktioner, der hjælper dig med at debugge webstedsproblemerne med dens udvidelser, og du kan gøre meget mere. Det er også et godt værktøj til sikkerhedstest, da det kan konfigureres til at dekryptere den krypterede anmodning og derefter ændre anmodningerne til testformål.
En af Fiddlers udvidelser er APITest-udvidelse, dette hjælper med at verificere webadfærden for en grænseflade. For mere intens test af interface kan du prøve at bruge FiddlerCore.Net bibliotek til at oprette din interface-testinfrastruktur.
Konklusion
Interface test er en meget vigtig del af test til store applikationer, og det er et must at gøre det. Selv i applikationer, hvor CI regelmæssigt følges, bliver det vigtigt at udføre interface-test.
Interface test er ret vanskelig og ikke ligetil, derfor skal der udformes en ordentlig strategi til at udføre denne test. Husk også at tage input fra udviklingsteamet, da de forstår koden bedre.
Den bedste og enkleste måde at udføre denne test på er at automatisere og integrere testpakken i CI, så der spares meget tid, og resultaterne opnås i et hurtigere tempo.
Har du udført interface-test? Del gerne dine oplevelser og fortæl os, hvilket værktøj og strategi der blev implementeret af dig.
Anbefalet læsning
- Bedste softwaretestværktøjer 2021 (QA Test Automation Tools)
- Alpha Testing og Beta Testing (En komplet guide)
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide
- Typer af softwaretest: Forskellige testtyper med detaljer
- Test af Primer eBook Download
- Typer af risici i softwareprojekter
- 11 bedste automatiseringsværktøjer til test af Android-applikationer (Android App-testværktøjer)
- Komplet funktionel testguide med dens typer og eksempel