what is interface testing
Introduktion till gränssnitttestning:
När ett program eller en programvara eller en webbplats utvecklas finns det flera komponenter i den. Dessa komponenter kan vara server, databas etc.
Anslutningen som integrerar och underlättar kommunikationen mellan dessa komponenter kallas ett gränssnitt.
Enkelt uttryckt är ett gränssnitt en programvara som består av en uppsättning kommandon, meddelanden etc.
Denna handledning ger dig en fullständig översikt över gränssnitttestning tillsammans med dess behov, typ, strategi, checklista och några av dess verktyg i enkla termer för att berika din kunskap om konceptet.
Vad du kommer att lära dig:
- Introduktion
- När och varför ska vi testa ett gränssnitt?
- Typer av gränssnitttestning
- Strategi eller strategi för gränssnitttestning
- Skillnad mellan gränssnitt, integration och komponenttestning
- Checklista för gränssnitttestning
- Bästa verktygen för gränssnitttestning
- Slutsats
- Rekommenderad läsning
Introduktion
För en dator kan ett gränssnitt vara API: er, webbtjänster etc. Kommunikationen mellan de olika komponenterna i en programvara eller en applikation eller en webbplats kan påverka den övergripande prestandan, alltså denna kommunikation, dvs. gränssnittet måste också testas och verifieras.
Testningen som görs för att verifiera gränssnittsfunktionaliteten kallas gränssnitttestning.
De två vanliga komponenterna i gränssnitttestning inkluderar:
- Webbserver och applikationsservergränssnitt.
- Databasserver och applikationsservergränssnitt.
När och varför ska vi testa ett gränssnitt?
Nedan nämns de tre faserna av gränssnitttestning i en gränssnittslivscykel:
1) Konfiguration och utveckling:
När gränssnittet är konfigurerat och när utvecklingen startar, måste konfigurationerna verifieras enligt kravet.
2) Validering:
När utvecklingen är klar måste gränssnittet valideras och verifieras, detta kan också göras som en del av enhetstester.
3) Underhåll:
hur man skriver användarberättelser och acceptanskriterier
När hela programvaran är klar, distribuerad och fungerar måste gränssnittet övervakas för dess prestanda och eventuella nya problem som införs på grund av ändringar som gjorts eller försämrad prestanda.
När vi börjar utveckla ett gränssnitt måste vi se till att vi inte introducerar några defekter i vår kod och därför måste tester köras på gränssnittet för att verifiera att tillägg av ny kod inte injicerar några nya defekter. Detta hjälper dig att avgöra om gränssnittet är felfritt och enligt kravet.
När vi är nöjda med gränssnittet validerar vi det för det avsedda arbetsflödet, data etc. Vi kan köra prestanda, enorma datatester och kontrollera hur bra gränssnittet svarar. Detta sparar mycket tid som spenderas på att åtgärda defekterna senare.
I ett nötskal görs gränssnitttestning för att:
- För att kontrollera om serverkörningen är korrekt.
- Felhantering görs ordentligt och lämpliga felmeddelanden visas för frågor som görs av applikationen eller programvaran.
- För att kontrollera resultatet när en anslutning till servern återställs.
- För att kontrollera säkerhetsaspekten när komponenterna kommunicerar i sig själva.
- För att kontrollera effekterna av nätverksfel på kommunikationen mellan komponenterna.
Typer av gränssnitttestning
Gränssnitttestning görs i grund och botten på meddelandeskiktet i systemarkitekturen. Det handlar mest om att testa REST API eller SOAP-webbtjänsten med JSON- eller XML-format.
Gränssnitttestning involverar vanligtvis följande metoder:
- Enhetstestning: Testa funktionaliteten för varje enskild operation (i en funktion).
- Funktionell testning : Testa funktionaliteten i bredare scenarier med skapande av testfall, validering, regression etc.
- Lasttestning: Validera prestanda under belastning, mestadels genom att använda funktionella testfall.
- Säkerhetstestning : Testar säkerhetsmekanismen och den inkluderar penetrationstest samt validering av åtkomstkontroll, kryptering etc.
- Runtime error detect: Övervaka en applikation för problem som runtime race, resursläcka etc.
- Arbetsflödestestning: Detta görs för att säkerställa om gränssnittsmotorn hanterar ditt arbetsflöde som förväntat.
- Enskilda system: Denna testning görs för att verifiera varje systems individualitet. Liksom faktureringssystemet och lagerhanteringssystemet borde kunna fungera individuellt.
Strategi eller strategi för gränssnitttestning
Precis som alla andra tester är gränssnitttestning lika viktigt eftersom det säkerställer sömlös funktion, prestanda etc. för olika datadrivna applikationer och system genom att verifiera kommunikationen mellan databasen, nätverken och systemen.
Gränssnitttestning blir viktigare när vi verifierar programmets beroenden med andra appar.
Nedan följer några steg som säkerställer att gränssnitttestning lyckas:
1) Definiera ditt krav:
Innan du skapar gränssnitttesterna är det viktigt att förstå applikationen. Försök därför hitta svar på frågor som vad är syftet med gränssnittet? Vad är arbetsflödet för systemet eller applikationen? Vad är gränssnittets funktioner och funktioner?
Att definiera alla sådana svar hjälper dig att förstå kravet, ta reda på knepiga punkter i applikationen och skapa sedan testfall i enlighet därmed. Ofta missar QA detta och senare leder det till förvirring om kravet eller felaktig testning.
2) Förväntad effekt:
Nu vet vi och förstår kravet mycket bra, det är dags att slutföra den produktion som vi kommer att förvänta oss från testerna. Inte bara ett godkänt eller misslyckat, det kan vara vissa data, ringa till ett annat API etc. Det kan inte bara vara knepigt utan också riskabelt att mäta resultatet av det förväntade resultatet.
Försök därför ta reda på vad som kan bli resultatet genom att diskutera med utvecklarna.
3) Börja små:
Med gränssnitttestning kan vi inte direkt gå vidare med att skapa stora testfall, det är relativt enkelt att skapa små testfall eller samtal. Skapa åtminstone i små funktioner liten testkod och kontrollera om utdata är som förväntat eller inte.
4) Prova att automatisera:
Att skriva koder för att testa ett gränssnitt kan vara tråkigt.
Du kommer inte bara att spendera tid på att skriva koden men tillsammans med detta måste du också spendera tid på att förstå formatet, stilen, kodningsspråket som används för utveckling och sedan som en grädde på kakan måste du se till att din kod skapar inte ett problem med appen eller systemkoden.
Därför är det bättre att undersöka och hitta några automatiseringsverktyg som sparar din dag. Det blir mycket enklare och en tidsbesparande process också.
5) Definiera start- och stopppunkter:
Innan vi påbörjar genomförandet av ett test bestämmer vi alltid testets start (inträde) och stopp (utgång), samt bestämmer hur hela testprocessen ska starta och sluta. På samma sätt måste vi också mäta prestandanivån för gränssnitttestningen.
För att göra det måste vi hitta svaren på följande två frågor:
- Vad är den förväntade slutförandetiden för ett gränssnitttest?
- Vad är den faktiska slutförandetiden för ett gränssnitttest?
Det här steget att involvera in- och utgångspunkter för ett gränssnitttest hjälper dig att hitta testnivåernas prestanda. Detta hjälper dig också att fatta ett beslut om det planerade testschemat.
Skillnad mellan gränssnitt, integration och komponenttestning
Nedan följer några skillnader:
S.No. | Komponenttestning | Gränssnitttestning | Integrationstestning |
---|---|---|---|
1 | Att testa en komponent individuellt för att verifiera det förväntade resultatet kallas komponenttestning | Att testa ett gränssnitt för att verifiera det förväntade resultatet kallas gränssnitttestning. | När alla eller några moduler eller komponenter är integrerade för att fungera tillsammans; sedan testas för att verifiera de integrerade komponenternas funktion från början till slut kallas integrationstestning. |
två | En komponent kan vara allt som en skärm, inloggningsmodul etc. | Gränssnitt är allmänt webbtjänster, API, anslutningssträngar etc. | Integration kan vara ett komplett användningsfall som för en bankapp, logga in och lägga till din 'förmånstagare' etc. |
3 | Denna testning är relativt lätt. | Denna testning är knepig och tråkig. | Denna testning är lite lätt men längd. |
4 | Manuell och automatisering är båda tillämpliga. | Mestadels automatisering. | Manuell och automatisering är båda tillämpliga. |
5 | Denna testning är tillämplig på både kod och GUI för appen eller systemet. | Denna testning görs endast på koden; det finns inget GUI. | Denna testning är tillämplig på både kod och GUI för appen eller systemet. Men det är mest GUI. |
Checklista för gränssnitttestning
Nedan följer några checklistpekare som ska övervägas för gränssnitttestning:
- 4xx- och 5xx-fel bör inkluderas i testerna eftersom de hjälper dig att verifiera serverhantering och klientsides felhantering, helst bör ett lämpligt meddelande visas snarare än ett kodfel.
- Validering av användaren med HTTP-autentisering.
- Verifiera alla metoder som används i API eller webbtjänster som GET, PUT, POST etc.
- Kontrollera omvandlingen från JSON-format till XML-format och vice versa.
- Kontrollera om bulkoperationerna i ett gränssnitt hämtar det förväntade resultatet.
- Kontrollera om tidszonen för API: t matchar specifikationen för tidszonen för ett geografiskt område.
- Kontrollera om obehörig åtkomst till gränssnittet leder till ett korrekt felmeddelande.
- Kontrollera om anslutningsavbrotten hanteras korrekt.
- Kontrollera om vissa komponenter tas bort från applikationen interagerar inte gränssnittet längre med dessa komponenter etc.
Bästa verktygen för gränssnitttestning
När företag går mot DevOps, Continuous Integration (CI) och Continuous Deployment (CD) måste teståterkopplingen gå snabbare än någonsin. Innan du gör dig redo att skicka din ansökan måste du se till att gränssnitten är väl testade. Manuell testning av gränssnittet kan också vara mycket tråkigt, komplicerat och en tidskrävande process.
vilket av följande är en fas i sdlc?
Den bästa metoden för att utföra gränssnitttestning är att använda automatisering och inkludera gränssnitttestning i din automatiseringsplan.
Följaktligen är följande en lista över de verktyg som hjälper dig att slutföra din gränssnitttestning så snabbt som möjligt. Jag skulle dock personligen rekommendera att använda SoapUI (jag använde det här verktyget i mitt projekt för test av webbtjänster) men varje krav är annorlunda, låt oss därför ta en titt på de 5 bästa verktygen.
De fem bästa verktygen inkluderar:
1) REST-säker
För personer som arbetar med Java, Var så säker är det mest föredragna verktyget. Det är faktiskt det bästa verktyget för API-testning med Java, eftersom det är ganska svårt att verifiera REST-webbtjänster i Java. Den är utformad för teständamål och kan därför enkelt integreras med alla Java-baserade ramar.
Den har mycket kokta funktioner, så du behöver inte koda saker från början. Detta verktyg integreras bra med Serenity-ramverket och du kan skapa fantastiska testrapporter.
2) brevbärare
Vissa testare tycker inte om att använda samma kodningsspråk som för IDE. För sådana människor är Postman ett bra alternativ för automatisering. Detta är också ett bra alternativ för testande av utforskande gränssnitt.
Brevbärare är en enkel REST-klient och man kan snabbt börja använda sitt Chrome-plugin. Den har en inbyggd version tillgänglig, som kan användas för Mac, Linux och Windows. Den har ett användargränssnitt som hjälper till att bygga förfrågningar och kontrollera det mottagna svaret.
3) SoapUI
Om ditt team bara gör API-test, TVÅL kan vara ett utmärkt val. Det är ett komplett funktionellt testverktyg som ägnas åt API-testning. Den stöder också datadriven testning där data kan skickas i CSV- eller Excel-format. Den har också en betald version som heter SoapUI Pro som erbjuder ännu bättre och förbättrade funktioner för webbtjänsttestning.
Om du vill lägga till extra kod för ett visst arbetsflöde eller funktionalitet, använd Groovy för ditt skript. Du kan också skapa en global variabelinställning och använda alla dessa variabler i dina tester istället för att initiera individuellt för varje test.
4) JMeter
JMeter används ofta för lasttestning och det kan också användas för gränssnitttestning. JMeter har stöd för inspelning och uppspelning och genererar HTML-rapporter som är lätta att läsa och förstå. Eftersom JMeter är kompatibel med CSV-filer kan du skapa unika parametrar för testning.
Det är lätt integrerbart med Jenkins så att dina tester kan inkluderas i CI. Om du vill använda samma verktyg för ett gränssnitt och belastningstestning kommer JMeter att vara ett värdigt val.
5) spelare
Fifflare hjälper dig att kontrollera (använda) HTTP-förfrågningarna. Den har många funktioner som hjälper dig att felsöka webbplatsens problem, med dess tillägg, och du kan göra mycket mer. Det är också ett bra verktyg för säkerhetstestning eftersom det kan konfigureras för att dekryptera den krypterade begäran och sedan ändra förfrågningarna för teständamål.
Ett av Fiddlers tillägg är APITest-tillägg, detta hjälper till att verifiera ett webbgränssnitt. För mer intensiv gränssnitttestning kan du försöka använda FiddlerCore.Net bibliotek för att skapa din gränssnitttestinfrastruktur.
Slutsats
Gränssnitttestning är en mycket viktig del av testning för storskaliga applikationer och det är ett måste att göra det. Även i applikationer där CI följs regelbundet blir det viktigt att utföra gränssnitttester.
Gränssnitttestning är ganska knepigt och inte rakt framåt, därför bör en ordentlig strategi utformas för att utföra denna testning. Kom också ihåg att ta insatserna från utvecklingsteamet eftersom de förstår koden bättre.
Det bästa och enklaste sättet att utföra denna testning är att automatisera och integrera testpaketet i CI så att mycket tid kommer att sparas och resultaten uppnås i snabbare takt.
Har du utfört gränssnitttestning? Dela gärna dina erfarenheter och låt oss veta vilket verktyg och strategi som har implementerats av dig.
Rekommenderad läsning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Alfatestning och betatestning (En komplett guide)
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide
- Typer av programvarutestning: Olika testtyper med detaljer
- Testing Primer eBook Download
- Typer av risker i programvaruprojekt
- 11 bästa automatiseringsverktyg för testning av Android-applikationer (Android-apptestverktyg)
- Komplett funktionell testguide med dess typer och exempel