using json interface testing
JSON gebruiken voor interfacetests:
Interfacetests controleren de communicatie tussen twee verschillende systemen. Het wordt uitgevoerd op de te testen applicatie om te controleren of de heen en weer communicatie tussen twee netwerken correct wordt uitgevoerd.
Een interface is in feite de verbinding tussen twee softwaresystemen en het testen van die verbinding voor gegevensoverdracht wordt interfacetesten genoemd. De interface omvat een breed scala aan services in de echte wereld, het kan worden gebruikt om te verwijzen naar webservice, API, enz.
Een interface bevat een reeks regels, berichten, opdrachten enz. Die de communicatie tussen twee systemen vergemakkelijken.
Dit testen concentreert zich voornamelijk op het testen van twee belangrijke segmenten:
- Communicatie met database en applicatieserver
- Communicatie via web- en applicatieserver
Een interfacetest wordt uitgevoerd om de bovengenoemde scenario's te evalueren om te valideren of de componenten de besturing en gegevens correct aan elkaar doorgeven. Het verifieert ook de interactie tussen verschillende modules.
Wat je leert:
- Waarom wordt een interfacetest uitgevoerd?
- Hoe wordt het uitgevoerd?
- Verschil tussen interfacetests en integratietests
- Bedrijfsscenario
- Testomgeving instellen
- Uw testen beginnen
- Gevolgtrekking
- Aanbevolen literatuur
Waarom wordt een interfacetest uitgevoerd?
Het wordt uitgevoerd om ervoor te zorgen:
- II Als de communicatie tussen de systemen correct verloopt.
- Alle software en hardware die in het systeem worden gebruikt, werken correct.
- Alle documenten die aan de communicatie zijn gekoppeld, zijn beschikbaar op alle geïntegreerde platforms.
- Beveiligings- en coderingsvereisten gelden voor de communicatie tussen de systemen.
- De geïntegreerde componenten zijn in staat om netwerkstoringen en communicatieverlies op te vangen.
Soorten defecten gevonden
De meeste defecten die bij het testen van de gebruikersinterface zijn gevonden, zijn te wijten aan een onjuiste toewijzing van de gegevens tussen de systemen. Daarom kunnen de meeste bugs in principe in de volgende categorieën worden ingedeeld.
- Inconsistente gegevensoverdracht tussen de twee systemen.
- Een van de systemen interpreteert de gegevensoverdracht van een ander systeem verkeerd.
- Het transmissiekanaal of de interface tussen de twee systemen faalt en dat beperkt de gegevensoverdracht tussen de systemen, waardoor de hele interface uitvalt.
Hoe wordt het uitgevoerd?
Het kan voornamelijk worden onderverdeeld in de volgende fasen:
- Interfaces kunnen tijdens systeemtesten Dit type testen wordt voornamelijk uitgevoerd met een stub- of dummy-systeem. Een dummy-systeem of stomp bootst het gedrag van de hele systeeminteractie na.
- Een ander geval waarbij de interfacetest wordt uitgevoerd, is een knooppunt waar twee systemen met elkaar communiceren.
- Daarom testen we of de gegevens die door het ene systeem zijn verzonden, correct in kaart zijn gebracht en in een ander systeem zijn ingevoegd of niet. Naast het invoegen van gegevens controleren we ook op gegevensintegriteit, d.w.z. dat de gegevens, wanneer ze in een ander systeem worden ingevoegd, niet zijn gemanipuleerd of gewijzigd, enz.
- Testen kan ook worden uitgevoerd wanneer een systeem gegevens naar een andere applicatiedatabase verzendt. Hier zullen we testen of de gegevens van het ene systeem correct zijn ingevoegd in een bepaalde kolom van de gegeven tabel op basis van de mapping. We zullen ook de gegevensintegriteit en gegevensconsistentie testen met betrekking tot het bronsysteem.
In al deze testscenario's wordt een interfacetest uitgevoerd op basis van de bedrijfsvereisten en bedrijfsstroomregels.
Verschil tussen interfacetests en integratietests
Verificatie en validatie van end-to-end-functionaliteit van met elkaar verbonden componenten worden genoemd Integratietesten of meer in de volksmond als systeemintegratietesten. Integratietesten valideren voornamelijk of twee of meer systemen die samen zijn geïntegreerd, feilloos samenwerken of niet.
Testen Koppel aan de andere kant concentreert zich in wezen op het verbindingskanaal tussen de twee systemen. Het verbindingskanaal tussen twee of meer systemen wordt een interface genoemd. Het testen van dit verbindingskanaal wordt Interface Testing genoemd. De meeste interfaces zijn ofwel API's of webservices. Het heeft geen gebruikersinterface maar neemt een invoer en presenteert de gebruiker een uitvoer.
Bijvoorbeeld
In het bovenstaande voorbeeld delen de website en de database een interface om de aanmeldingsgegevens, d.w.z. gebruikersnaam en wachtwoord, te verzenden.
De interface gebruikt een webservice om de login-informatie naar de database te sturen, die op zijn beurt de authenticiteit van het inkomende bericht valideert (gebruikersnaam en wachtwoord) en de waarde retourneert als true als zowel de gebruikersnaam als het wachtwoord overeenkomen met het record in de database of false in het geval dat een van hen of zowel de gebruikersnaam als het wachtwoord niet overeenkomt met de aanwezige gegevens.
Laten we het voorbeeld van een interfacetest bespreken:
Laten we zeggen dat we een applicatie hebben waarin we verschillende databases hebben die met elkaar communiceren.
In deze voorbeeld , zullen we twee database-interactie beschouwen via een interfacekanaal.
Laten we eens kijken dat er twee databases of applicaties zijn, database A en B. 'A' draagt enkele gegevens over naar 'B', die vervolgens door B wordt gebruikt om een bewerking uit te voeren. Na het uitvoeren van een bepaalde bewerking op de inkomende gegevens voegt B die gegevens in de database in en creëert een uitvoer-JSON ter bevestiging met de lijst met bijgewerkte gegevens en stuurt deze terug naar A.
Zowel A als B gebruiken een interfacekanaal voor communicatie tussen hen.
Bedrijfsscenario
'A' bevat personeelsgegevens voor alle werknemers die tot de financiële afdeling behoren.
De gegevens moeten worden overgezet naar 'B dagelijks. 'B' bevat gegevens over algemene werknemersgegevens. Alle gegevens van 'A' moeten worden overgebracht naar een bepaalde tabel en kolom van 'B'. Behalve de ingevoerde gegevens moet 'B' ook gegevens sorteren en organiseren. Het moet er ook voor zorgen dat de gegevens zijn ingevoerd tegen de juiste medewerker.
Nadat de gegevens in het systeem zijn ingevoerd, moet 'B' een uitvoer-JSON verzenden om te bevestigen of de gegevens in de database zijn ingevoerd.
In het geval van een discrepantie in het JSON-schema of ontbrekende gegevens, zal 'B' de gegevens niet verwerken en zal het een JSON-bericht weigeren met de reden voor afwijzing.
Testomgeving instellen
Om een scenario als dit te testen, hebben we een teststub nodig om database 'A' na te bootsen. De ontwikkelaar kan een locatie bieden waar u uw test-JSON of een nep-gebruikersinterface kunt dumpen en uw JSON-gegevens kunt plakken en de verwerking kunt oproepen via de interface. Voor testdoeleinden kunnen we ook een uitvoerlocatie hebben waar we de bevestiging JSON van 'B' kunnen ontvangen.
In onze voorbeeld , we zullen een mappad gebruiken waar we onze test JSON zullen plaatsen, de service zal constant de locatie voor het JSON-bestand porren. Zodra het bestand aanwezig is, pikt de service het bestand op en stuurt het via de interface naar 'B'. Zodra het bestand is opgehaald, wordt het verwijderd van de ophaallocatie.
Uw testen beginnen
Nadat de testomgeving is opgezet, is de volgende stap het maken van de testgegevens.
Bij het maken van testgegevens (lees test-JSON) moeten we een paar dingen in gedachten houden:
- Volg de bedrijfsregels.
- Zorg ervoor dat de verplichte velden aanwezig zijn.
- Wijzig de waarde van de velden volgens de bedrijfsregels voor elke test.
- Zorg ervoor dat het JSON-schema de juiste indeling heeft.
- Zorg ervoor dat de nomenclatuur voor de JSON-bestandsnaam is aangehouden.
Laten we eens kijken naar de voorbeeldtest-JSON die we zullen gebruiken om te testen:
Begin uw test
Nadat u uw test-JSON-bestand heeft gemaakt, zet u het neer op de ophaallocatie. De service pikt dit op en plaatst het in database B.
Scenario's om te testen:
Er kunnen een aantal scenario's zijn die voor dit voorbeeld moeten worden getest, zoals:
- Werken met de webservice om gegevens te verzenden en ontvangen.
- Gegevensintegriteit voor de invoergegevens. Dit kan worden gevalideerd door tabellen en kolommen in database B te doorzoeken op de gegevens die via de test-JSON zijn ingevoerd.
- Negatieve scenario's.
We kijken eerst of het test-JSON-bestand is opgehaald van de locatie of niet op de locatie aanwezig is. Dit zal de werking van de dienst valideren. Vervolgens gaan we naar de uitvoermap om de uitvoer-JSON te bekijken. Aanwezigheid van uitvoer JSON valideert of de invoergegevens naar database B zijn verzonden en een bevestiging hiervoor is ontvangen.
Het volgende deel van het testen bestaat uit het valideren van de gegevens die in de database zijn ingevoerd.
In de bovenstaande test zullen we valideren of de gegevens die via de test-JSON zijn verzonden, correct in de database zijn ingevoerd. We valideren de gegevensintegriteit, gegevensconsistentie en gegevensinvoeging. We zullen database B moeten opvragen voor de gegeven kolom in een bepaalde tabel om te valideren of de gegevens correct in de tabel zijn ingevoegd.
Laten we zeggen dat we een EmpDetails-tabel hebben waarin de gegevens moeten worden ingevoegd. We zullen dus een query uitvoeren om de gegevens te valideren.
De vraag zal er ongeveer zo uitzien:
Hier zullen we de employeeID gebruiken als de primaire sleutel voor het opvragen van de gegevens in de EmpDetails-tabel. We zullen zoeken met behulp van alle kolomnamen waarin de gegevens zijn ingevoegd. Vervolgens kunnen de gegevens in de kolomnaam worden gevalideerd met de gegevens die via de JSON worden verzonden.
In het bovenstaande geval worden de gegevens van de JSON opgeslagen in meer dan één tabel in de database, dus u kunt SQL JOINS gebruiken om alle gewenste gegevens op te halen.
De derde stap bij het testen is het testen van de negatieve scenario's.
Enkele van de negatieve scenario's die kunnen worden getest, zijn:
- Het gedrag van het systeem wanneer onjuiste gegevens via JSON worden ingevoerd.
- Wanneer de JSON het verkeerde schema of de verkeerde structuur heeft.
- Wanneer de verwerkte JSON de primaire sleutel of verplichte velden mist.
- De naamgeving van het JSON-bestand is niet geldig.
In al deze gevallen moet het systeem deze scenario's aankunnen en mogen er geen gegevens in het systeem worden ingevoerd volgens de bedrijfsregel.
Gevolgtrekking
Het verbindingskanaal tussen twee systemen waardoor gegevens worden verzonden, wordt een interface genoemd en interfacetests werken voornamelijk rond het testen van deze verbindingen. De meeste interfaces maken gebruik van webservices of API's. Het heeft niet altijd een gebruikersinterface, maar het accepteert invoer en levert uitvoer.
beste programma om de harde schijf te klonen
Omdat het een van de meest gebruikte formaten voor gegevensoverdracht is, kan JSON worden gebruikt voor gegevensoverdracht via de interface.
Een tester heeft basiskennis van de JSON-structuur nodig om testgegevens (in de vorm van JSON) te maken en uitvoergegevens uit het systeem te lezen. Een tester moet ook goed thuis zijn in de mapping tussen JSON-sleutels en database-tabelkolom.
Elke tester die aan interfacetests wil werken, moet een duidelijke kennis hebben van de zakelijke richtlijnen en de regels van een applicatie. Een tester moet ook voldoende kennis hebben van de database en eenvoudige SQL-queries kunnen schrijven.
Neem voor vragen of verduidelijkingen contact met ons op in het commentaargedeelte.
Tutorial # 5: JSON Interview Vragen
Aanbevolen literatuur
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Database testen met JMeter
- Primer eBook downloaden testen
- 40+ beste databasetesttools - Populaire datatestoplossingen
- GUI-testhandleiding: een complete gebruikersinterface (UI) testhandleiding
- Een eenvoudige aanpak voor XML naar databasetests
- ETL-testen Tutorial datawarehouse-testen (een complete gids)
- Wat is interfacetesten? Ken de typen, strategie en tools