what is interface testing
Introduksjon til grensesnitttesting:
Når en applikasjon eller en programvare eller et nettsted blir utviklet, er det flere komponenter av det. Disse komponentene kan være server, database etc.
Forbindelsen som integrerer og forenkler kommunikasjonen mellom disse komponentene, kalles et grensesnitt.
Enkelt sagt er et grensesnitt en programvare som består av et sett med kommandoer, meldinger etc.
Denne opplæringen gir deg en komplett oversikt over grensesnitttesting sammen med behov, type, strategi, sjekkliste og noen av verktøyene i enkle termer for å berike din kunnskap om konseptet.
Hva du vil lære:
- Introduksjon
- Når og hvorfor skal vi teste et grensesnitt?
- Typer grensesnitttesting
- Strategi eller tilnærming for grensesnitttesting
- Forskjellen mellom grensesnitt, integrasjon og komponenttesting
- Sjekkliste for grensesnitttesting
- Beste verktøy for testing av grensesnitt
- Konklusjon
- Anbefalt lesing
Introduksjon
For en datamaskin kan et grensesnitt være APIer, webtjenester osv. Kommunikasjonen mellom de forskjellige komponentene i en programvare eller en applikasjon eller et nettsted kan påvirke den generelle ytelsen, og derfor må denne kommunikasjonen, dvs. grensesnittet, også testes og verifiseres.
Testingen som gjøres for å verifisere grensesnittfunksjonaliteten kalles Interface testing.
De to vanlige komponentene i grensesnitttesting inkluderer:
- Webserver og applikasjonsservergrensesnitt.
- Databaseserver og applikasjonsservergrensesnitt.
Når og hvorfor skal vi teste et grensesnitt?
Nedenfor er nevnt de tre faser av grensesnitttesting i en grensesnittlivssyklus:
1) Konfigurasjon og utvikling:
Når grensesnittet er konfigurert, og når utviklingen starter, må konfigurasjonene bekreftes i henhold til kravet.
2) Validering:
Når utviklingen er fullført, må grensesnittet valideres og verifiseres, dette kan også gjøres som en del av enhetstesting.
3) Vedlikehold:
sql spørsmål praksis spørsmål med svar
Når hele programvaren er klar, distribuert og fungerer, må grensesnittet overvåkes for ytelse og eventuelle nye problemer introdusert på grunn av endringene som er gjort eller forverret ytelse.
Når vi begynner å utvikle et grensesnitt, må vi sørge for at vi ikke introduserer noen feil i koden vår, og det må derfor kjøres tester på grensesnittet for å bekrefte at tilsetning av ny kode ikke injiserer nye feil. Dette vil hjelpe deg med å avgjøre om grensesnittet er feilfritt og i henhold til kravet.
Når vi er fornøyde med grensesnittet, validerer vi det for den tiltenkte arbeidsflyten, data osv. Vi kan kjøre ytelse, store datatester og sjekke hvor godt grensesnittet reagerer. Dette vil spare mye tid som vil brukes på å fikse feilene senere.
I et nøtteskall gjøres testing av grensesnitt for å:
- For å sjekke om serverutførelsen er riktig.
- Feilhåndtering gjøres riktig, og passende feilmeldinger vises for spørsmål laget av applikasjonen eller programvaren.
- For å sjekke resultatet når en forbindelse til serveren tilbakestilles.
- Å sjekke sikkerhetsaspektet når komponentene kommuniserer i seg selv.
- For å sjekke innvirkningen av nettverksfeil på kommunikasjonen mellom komponentene.
Typer grensesnitttesting
Grensesnitttesting gjøres i utgangspunktet på meldingslaget i systemarkitekturen. Det innebærer for det meste å teste REST API eller SOAP-nettjenesten med JSON- eller XML-format.
Grensesnitttesting innebærer vanligvis følgende fremgangsmåter:
- Enhetstesting: Testing av funksjonaliteten til hver enkelt operasjon (i en funksjon).
- Funksjonell testing : Testing av funksjonaliteten til bredere scenarier som involverer oppretting av testsaker, validering, regresjon etc.
- Lastetesting: Validering av ytelsen under belastning, hovedsakelig ved bruk av funksjonelle testtilfeller.
- Sikkerhetstesting : Testing av sikkerhetsmekanismen og den inkluderer penetrasjonstesting samt validering av tilgangskontroll, kryptering etc.
- Runtime error detection: Overvåke et program for problemer som kjøretidsløp, ressurslekkasje, etc.
- Arbeidsflyt testing: Dette gjøres for å sikre om grensesnittmotoren håndterer arbeidsflyten din som forventet.
- Individuelle systemer: Denne testingen er gjort for å verifisere individualiteten til hvert system. Som faktureringssystemet og lagerstyringssystemet skal kunne fungere individuelt.
Strategi eller tilnærming for grensesnitttesting
I likhet med alle andre tester er grensesnitttesting like viktig, ettersom den sørger for sømløs funksjon, ytelse etc. til forskjellige datadrevne applikasjoner og systemer, ved å verifisere kommunikasjonen mellom databasen, nettverk og systemer.
Grensesnitttesting blir viktigere når vi verifiserer applikasjonens avhengighet med andre apper.
Nedenfor er noen få trinn som sikrer at grensesnitttesting blir vellykket:
1) Definer kravet ditt:
Før du oppretter grensesnitttester, er det viktig å forstå applikasjonen. Prøv derfor å finne svar på spørsmål som hva er formålet med grensesnittet? Hva er arbeidsflyten til systemet eller applikasjonen? Hva er funksjonene og funksjonene til grensesnittet?
Å definere alle slike svar vil hjelpe deg å forstå kravet, finne ut vanskelige punkter i applikasjonen og deretter lage testtilfellene tilsvarende. Ofte savner QA dette, og senere fører dette til forvirring om kravet eller feil testing.
2) Forventet utgang:
Nå, vi kjenner og forstår kravet veldig godt, det er på tide å fullføre produksjonen som vi forventer fra testene. Ikke bare et godkjent eller mislykket, det kan være noen data, ringe til en annen API osv. Det kan ikke bare være vanskelig, men også risikabelt å måle resultatet av det forventede resultatet.
Prøv derfor å finne ut hva som kan bli resultatet ved å diskutere med utviklerne.
3) Start liten:
Med grensesnitttesting kan vi ikke gå videre med å lage store testtilfeller, det er relativt enkelt å lage små testtilfeller eller samtaler. I det minste, i små funksjoner, opprett liten testkode og verifiser om utdataene er som forventet eller ikke.
4) Prøv å automatisere:
Å skrive koder for å teste et grensesnitt kan være kjedelig.
Du vil ikke bare bruke tid på å skrive koden, men sammen med dette må du også bruke tid på å forstå formatet, stilen, kodespråket som brukes til utvikling, og som en prikken over i-en må du sørge for at koden din skaper ikke noe problem for appen eller systemkoden.
Derfor er det bedre å undersøke og finne noen automatiseringsverktøy som vil redde dagen. Det blir mye enklere og en tidsbesparende prosess også.
5) Definer start- og stoppunktene:
Før vi starter utførelsen av en test, bestemmer vi oss alltid for start (innføring) og stopp (utgang) punkt for testen, samt bestemmer hvordan hele testprosessen skal starte og slutte. På samme måte må vi også måle ytelsesnivået til grensesnitttesten.
For å gjøre det må vi finne svarene på følgende to spørsmål:
finne forskjell mellom to filer linux
- Hva er forventet gjennomføringstid for en grensesnitttest?
- Hva er den faktiske gjennomføringstiden for en grensesnitttest?
Dette trinnet med å involvere inn- og utgangspunkter for en grensesnitttest vil hjelpe deg med å finne ytelsesnivået til testene. Dette vil også hjelpe deg med å ta en beslutning om den planlagte testplanen.
Forskjellen mellom grensesnitt, integrasjon og komponenttesting
Nedenfor er det få forskjeller:
S.No. | Komponenttesting | Grensesnitttesting | Integrasjonstesting |
---|---|---|---|
1 | Å teste en komponent individuelt for å verifisere det forventede resultatet kalles komponenttesting | Å teste et grensesnitt for å verifisere det forventede resultatet kalles grensesnitttesting. | Når alle eller noen få moduler eller komponenter er integrert for å fungere samlet; deretter kalles testing gjort for å verifisere end-to-end-funksjonaliteten til de integrerte komponentene integrasjonstesting. |
to | En komponent kan være alt som en skjerm, påloggingsmodul etc. | Grensesnitt er omfattende nettjenester, API, tilkoblingsstrenger etc. | Integrering kan være en komplett brukstilfelle som for en bankapp, logge inn og legge til din 'Beneficiary' osv. |
3 | Denne testen er relativt enkel. | Denne testen er vanskelig og kjedelig. | Denne testen er lite enkel, men lengden. |
4 | Manuell og automatisering gjelder begge. | For det meste automatisering. | Manuell og automatisering gjelder begge. |
5 | Denne testen gjelder både kode og GUI for appen eller systemet. | Denne testingen gjøres bare på koden; det er ingen GUI. | Denne testen gjelder både kode og GUI for appen eller systemet. Men det er for det meste GUI. |
Sjekkliste for grensesnitttesting
Nedenfor er noen tips for sjekklister som skal vurderes for grensesnitttesting:
- 4xx- og 5xx-feil bør inkluderes i testene fordi de vil hjelpe deg med å verifisere serverhåndtering og feilhåndtering på klientsiden. Ideelt sett bør en passende melding vises i stedet for en kodefeil.
- Validering av brukeren ved hjelp av HTTP-godkjenning.
- Bekreft alle metodene som brukes i API eller webtjenester som GET, PUT, POST etc.
- Bekreft konverteringen fra JSON-format til XML-format og omvendt.
- Kontroller om bulkoperasjonene på et grensesnitt henter forventet resultat.
- Kontroller om tidssonen til API-en samsvarer med spesifikasjonen for tidssonen til et geografisk område.
- Kontroller om uautorisert tilgang til grensesnittet fører til en riktig feilmelding.
- Kontroller om forbindelsesforstyrrelsene blir håndtert riktig.
- Bekreft om noen komponenter er fjernet fra applikasjonen, så interagerer ikke grensesnittet lenger med disse komponentene osv.
Beste verktøy for testing av grensesnitt
Når bedrifter beveger seg mot DevOps, Continuous Integration (CI) og Continuous Deployment (CD), må tilbakemelding om testing være raskere enn noensinne. Før du gjør deg klar til å sende søknaden din, må du sørge for at grensesnittene er godt testet. Manuell testing av grensesnittet kan også være veldig kjedelig, komplisert og en tidkrevende prosess.
Den beste metoden for å utføre grensesnitttesting er å bruke automatisering og inkludere grensesnitttesting i automatiseringsplanen din.
Følgende er en liste over verktøyene som hjelper deg med å fullføre testingen av grensesnittet så raskt som mulig. Imidlertid vil jeg personlig anbefale å bruke SoapUI (jeg brukte dette verktøyet i prosjektet mitt for testing av webtjenester), men alle krav er forskjellige, så la oss ta en titt på de 5 beste verktøyene.
De fem viktigste verktøyene inkluderer:
1) REST-forsikret
For folk som jobber med Java, REST - forsikret er det mest foretrukne verktøyet. Faktisk er det det beste verktøyet for API-testing med Java, fordi det er ganske vanskelig å verifisere REST-webtjenester i Java. Den er designet for testformål, og kan dermed enkelt integreres med ethvert Java-basert rammeverk.
Den har mye tilberedt i funksjonalitet, og derfor trenger du ikke kode ting fra begynnelsen. Dette verktøyet integreres godt med Serenity-rammeverket, og du kan generere fantastiske testrapporter.
2) Postbud
Noen testere liker ikke å bruke det samme kodingsspråket som IDE. For slike mennesker er Postman et godt alternativ for automatisering. Dette er også et godt alternativ for en utforskende grensesnitttesting.
Postbud er en enkel REST-klient, og man kan raskt begynne å utnytte Chrome-pluginet. Den har en innfødt versjon tilgjengelig, som kan brukes til Mac, Linux og Windows. Den har et brukergrensesnitt som hjelper med å bygge forespørsler og kontrollere mottatt svar.
3) SoapUI
Hvis teamet ditt bare gjør API-testing, SÅPE kan være et godt valg. Det er et komplett funksjonelt testverktøy viet til API-testing. Den støtter også datadrevet testing der dataene kan overføres i CSV- eller Excel-format. Den har også en betalt versjon kalt SoapUI Pro, som tilbyr enda bedre og forbedrede funksjoner for testing av nettjenester.
Hvis du vil legge til ekstra kode for en bestemt arbeidsflyt eller funksjonalitet, kan du bruke Groovy til skriptingen. Du kan også opprette en global variabelinnstilling og bruke alle disse variablene i testene dine i stedet for å initialisere individuelt for hver test.
4) JMeter
JMeter brukes mye til belastningstesting, og det kan også brukes til grensesnitttesting. JMeter har støtte for plate- og avspilling, og den genererer HTML-rapporter som er enkle å lese og forstå. Ettersom JMeter er kompatibel med CSV-filer, lar dette deg lage unike parametere for testing.
Det er lett integrerbart med Jenkins slik at testene dine kan inkluderes i CI. Hvis du vil bruke det samme verktøyet for et grensesnitt og lastetesting, vil JMeter være et verdig valg.
5) spelemann
Spelemann hjelper deg med å sjekke og bruke (igjen) HTTP-forespørslene. Den har mange funksjoner som hjelper deg med å feilsøke nettstedsproblemene med utvidelsene, og du kan gjøre mye mer. Det er også et godt verktøy for sikkerhetstesting, da det kan konfigureres til å dekryptere den krypterte forespørselen og deretter endre forespørslene for testformål.
En av Fiddlers utvidelser er APITest-utvidelsen, dette hjelper til med å verifisere nettoppførselen til et grensesnitt. For mer intensiv testing av grensesnitt kan du prøve å bruke FiddlerCore.Net bibliotek for å lage din infrastruktur for testing av grensesnitt.
Konklusjon
Grensesnitttesting er en veldig viktig del av testing for store applikasjoner, og det er et must å gjøre det. Selv i applikasjoner der CI følges jevnlig, blir det viktig å utføre grensesnitttesting.
Grensesnitttesting er ganske vanskelig og ikke rett fram, derfor bør en riktig strategi utformes for å utføre denne testen. Husk også å ta innspillene fra utviklingsteamet ettersom de forstår koden bedre.
Den beste og enkleste måten å utføre denne testen på er å automatisere og integrere testpakken i CI slik at mye tid vil bli spart, og resultatene oppnås i et raskere tempo.
Har du utført grensesnitttesting? Del gjerne dine erfaringer og gi oss beskjed om hvilket verktøy og strategi som ble implementert av deg.
Anbefalt lesing
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)
- Alpha Testing og Beta Testing (En komplett guide)
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide
- Typer programvaretesting: Ulike testtyper med detaljer
- Testing Primer eBook Download
- Typer av risikoer i programvareprosjekter
- 11 beste automatiseringsverktøy for testing av Android-applikasjoner (Android-app-testverktøy)
- Komplett funksjonell testguide med typer og eksempler