what is interface testing
Inleiding tot interfacetests:
Wanneer een applicatie of een software of een website wordt ontwikkeld, dan zijn er verschillende componenten van. Die componenten kunnen server, database etc. zijn
De verbinding die de communicatie tussen deze componenten integreert en vergemakkelijkt, wordt een interface genoemd.
In eenvoudige bewoordingen is een interface software die bestaat uit een reeks opdrachten, berichten enz.
Deze tutorial geeft je een compleet overzicht van interfacetests samen met de behoefte, het type, de strategie, de checklist en enkele van de tools in eenvoudige bewoordingen om je kennis van het concept te verrijken.
Wat je leert:
- Invoering
- Wanneer en waarom moeten we een interface testen?
- Soorten interfacetests
- Strategie of aanpak voor interfacetests
- Verschil tussen interface, integratie en componenttesten
- Checklist voor interfacetests
- Beste tools voor het testen van interfaces
- Gevolgtrekking
- Aanbevolen literatuur
Invoering
Voor een computer kan een interface API's, webservices enz. Zijn. De communicatie tussen de verschillende componenten van een software of een applicatie of een website kan de algehele prestaties beïnvloeden, vandaar dat deze communicatie, d.w.z. de interface moet ook worden getest en geverifieerd.
De tests die worden uitgevoerd om de interfacefunctionaliteit te verifiëren, worden interfacetests genoemd.
De 2 gemeenschappelijke componenten van interfacetests zijn:
- Webserver en toepassingsserverinterface.
- Database server en applicatie server interface.
Wanneer en waarom moeten we een interface testen?
Hieronder worden de 3 fasen van interfacetests in een interface-levenscyclus genoemd:
1) Configuratie en ontwikkeling:
Wanneer de interface is geconfigureerd en zodra de ontwikkeling is gestart, moeten de configuraties worden geverifieerd volgens de vereisten.
2) Validatie:
Wanneer de ontwikkeling is voltooid, moet de interface worden gevalideerd en geverifieerd, dit kan ook worden gedaan als onderdeel van het testen van eenheden.
3) Onderhoud:
hoe je om promotie kunt vragen bij functioneringsgesprekken
Zodra de hele software klaar, geïmplementeerd en werkend is, moet de interface worden gecontroleerd op zijn prestaties en eventuele nieuwe problemen die zijn geïntroduceerd als gevolg van de aangebrachte wijzigingen of verslechterende prestaties.
Wanneer we beginnen met het ontwikkelen van een interface, moeten we ervoor zorgen dat we geen defecten in onze code introduceren en daarom moeten er tests op de interface worden uitgevoerd om te verifiëren dat het toevoegen van nieuwe code geen nieuwe defecten injecteert. Dit zal u helpen om te bepalen of de interface defectvrij is en volgens de vereisten.
Zodra we tevreden zijn met de interface, valideren we deze voor de beoogde workflow, data enz. We kunnen prestatie-, uitgebreide datatests uitvoeren en controleren hoe goed de interface reageert. Dit bespaart veel tijd die zal worden besteed aan het later herstellen van de defecten.
In een notendop: interfacetests worden gedaan om:
- Om te controleren of de uitvoering van de server correct is.
- De foutafhandeling wordt correct uitgevoerd en de juiste foutmeldingen worden weergegeven voor vragen die door de toepassing of software worden gedaan.
- Om het resultaat te controleren wanneer een verbinding met de server is gereset.
- Om het beveiligingsaspect te controleren wanneer de componenten met zichzelf communiceren.
- Om de impact van een netwerkstoring op de communicatie tussen de componenten te controleren.
Soorten interfacetests
Interfacetests worden in principe gedaan op de berichtenlaag van de systeemarchitectuur. Het omvat meestal het testen van de REST API of SOAP-webservice met JSON- of XML-indeling.
Interfacetests omvatten doorgaans de volgende praktijken:
- Testen van een eenheid: Het testen van de functionaliteit van elke individuele bewerking (in een functie).
- Functioneel testen Het testen van de functionaliteit van bredere scenario's met het maken van testcases, validatie, regressie enz.
- Load testen: Validatie van de prestaties onder belasting, veelal met behulp van functionele testcases.
- Beveiligingstesten Het testen van het beveiligingsmechanisme en het omvat penetratietesten en het valideren van toegangscontrole, codering enz.
- Runtime-foutdetectie: Een applicatie monitoren op problemen zoals runtime-race, resource lek, etc.
- Workflow testen: Dit wordt gedaan om ervoor te zorgen dat de interface-engine uw workflow afhandelt zoals verwacht.
- Individuele systemen: Deze tests worden gedaan om de individualiteit van elk systeem te verifiëren. Net als het factureringssysteem en het voorraadbeheersysteem afzonderlijk moeten kunnen werken.
Strategie of aanpak voor interfacetests
Net als elke andere test is interfacetest net zo belangrijk omdat het zorgt voor een naadloze werking, prestaties enz. Van verschillende datagestuurde applicaties en systemen, door de communicatie tussen de database, netwerken en systemen te verifiëren.
Interfacetests worden belangrijker wanneer we de afhankelijkheden van de app met andere apps verifiëren.
Hieronder staan enkele stappen die ervoor zorgen dat interfacetests succesvol zijn:
1) Bepaal uw vereiste:
Voordat u de interfacetests maakt, is het essentieel om de toepassing te begrijpen. Probeer daarom antwoorden te vinden op vragen als wat is het doel van de interface? Wat is de workflow van het systeem of de applicatie? Wat zijn de functies en kenmerken van de interface?
Door al deze antwoorden te definiëren, kunt u de vereiste beter begrijpen, de lastige punten van de toepassing ontdekken en vervolgens de testcases maken. Vaak missen QA's dit, en later leidt dit tot verwarring over de vereiste of onjuiste tests.
2) Verwachte output:
Nu we de vereiste kennen en begrijpen, is het tijd om de output die we van de tests verwachten, af te ronden. Niet alleen een Pass of Fail, het kunnen gegevens zijn, een oproep naar een andere API enz. Het kan niet alleen lastig maar ook riskant zijn om de uitkomst van het verwachte resultaat te meten.
Probeer daarom door met de ontwikkelaars te overleggen wat de uitkomst zou kunnen zijn.
3) Begin klein:
Met interfacetests kunnen we niet direct verder gaan met het maken van grote testcases, het maken van kleine testcases of calls is relatief eenvoudig. Maak in kleine functies ten minste een kleine testcode en controleer of de uitvoer is zoals verwacht of niet.
4) Probeer te automatiseren:
Het schrijven van codes voor het testen van een interface kan saai zijn.
Je zult niet alleen tijd besteden aan het schrijven van de code, maar daarnaast zul je ook tijd moeten besteden aan het begrijpen van het formaat, de stijl, de codeertaal die voor ontwikkeling wordt gebruikt en als kers op de taart moet je ervoor zorgen dat uw code veroorzaakt geen probleem voor de app of systeemcode.
Daarom is het beter om wat automatiseringstools te onderzoeken en te vinden die uw dag zullen redden. Het zal ook veel gemakkelijker en een tijdbesparend proces zijn.
5) Definieer de start- en stoppunten:
Voordat we beginnen met het uitvoeren van een test, bepalen we altijd het start- (entry) en het stop- (exit) punt van de test, en beslissen we ook hoe het hele testproces zal beginnen en eindigen. Evenzo moeten we ook het prestatieniveau van de interfacetests meten.
Om dat te doen, moeten we de antwoorden vinden op de volgende twee vragen:
- Wat is de verwachte doorlooptijd voor een interfacetest?
- Wat is de daadwerkelijke doorlooptijd van een interfacetest?
Deze stap waarbij de entry- en exitpunten van een interfacetest worden betrokken, helpt u het prestatieniveau van de tests te vinden. Dit helpt u ook bij het nemen van een beslissing over het geplande testschema.
Verschil tussen interface, integratie en componenttesten
Hieronder zijn enkele verschillen:
S.No. | Component testen | Interface testen | Integratietesten |
---|---|---|---|
1 | Het afzonderlijk testen van een onderdeel om het verwachte resultaat te verifiëren, wordt het testen van onderdelen genoemd | Het testen van een interface om het verwachte resultaat te verifiëren, wordt interfacetesten genoemd. | Wanneer alle of enkele modules of componenten zijn geïntegreerd om gezamenlijk te functioneren; Vervolgens wordt testen gedaan om de end-to-end-functionaliteit van de geïntegreerde componenten te verifiëren, integratietesten genoemd. |
twee | Een component kan van alles zijn, zoals een scherm, inlogmodule etc. | Interfaces zijn veelal webservices, API, verbindingsreeksen enz. | Integratie kan een complete use case zijn, zoals voor een bank-app, log in en voeg uw ‘Begunstigde’ toe, enz. |
3 | Dit testen is relatief eenvoudig. | Dit testen is lastig en vervelend. | Dit testen is niet eenvoudig maar lang. |
4 | Handmatig en automatisering zijn beide van toepassing. | Meestal automatisering. | Handmatig en automatisering zijn beide van toepassing. |
5 | Deze test is van toepassing op zowel de code als de GUI van de app of het systeem. | Deze tests worden alleen op de code uitgevoerd; er is geen GUI. | Deze test is van toepassing op zowel de code als de GUI van de app of het systeem. Maar het is voornamelijk GUI. |
Checklist voor het testen van interfaces
Hieronder worden enkele checklist-tips gegeven waarmee rekening moet worden gehouden bij het testen van interfaces:
- 4xx- en 5xx-fouten moeten in de tests worden opgenomen, omdat ze u zullen helpen bij het verifiëren van de foutafhandeling aan de serverzijde en de clientzijde, idealiter zou een passend bericht moeten worden weergegeven in plaats van een codefout.
- Validatie van de gebruiker met behulp van de HTTP-authenticatie.
- Verifieer alle methoden die worden gebruikt in de API of webservices zoals GET, PUT, POST etc.
- Controleer de conversie van het JSON-formaat naar het XML-formaat en vice versa.
- Controleer of de bulkbewerkingen op een interface het verwachte resultaat opleveren.
- Controleer of de tijdzone van de API overeenkomt met de specificatie van de tijdzone van een geografisch gebied.
- Controleer of ongeautoriseerde toegang tot de interface tot een correct foutbericht leidt.
- Controleer of de verbindingsonderbrekingen correct worden afgehandeld.
- Controleer of sommige componenten uit de applicatie zijn verwijderd, de interface heeft geen interactie meer met die componenten enz.
Beste tools voor interfacetests
Nu bedrijven evolueren naar DevOps, Continuous Integration (CI) en Continuous Deployment (CD), moet testfeedback sneller dan ooit zijn. Voordat u klaar bent om uw applicatie te verzenden, moet u ervoor zorgen dat de interfaces goed zijn getest. Het handmatig testen van de interface kan erg vervelend, ingewikkeld en ook een tijdrovend proces zijn.
De beste methode om interfacetests uit te voeren, is door automatisering te gebruiken en de interfacetests op te nemen in uw automatiseringsplan.
Hieronder volgt een lijst met de tools die u zullen helpen om uw interfacetests zo snel mogelijk te voltooien. Ik zou echter persoonlijk aanraden om SoapUI te gebruiken (ik heb deze tool in mijn project gebruikt voor het testen van webservices), maar elke vereiste is anders, dus laten we eens kijken naar de 5 beste tools.
De top 5 tools zijn:
char array naar int c ++
1) REST-verzekerd
Voor mensen die met Java werken, Wees gerustgesteld is de meest geprefereerde tool. In feite is het de beste tool voor API-testen met Java, omdat het verifiëren van REST-webservices in Java vrij moeilijk is. Het is ontworpen voor testdoeleinden en kan daarom gemakkelijk worden geïntegreerd met elk op Java gebaseerd framework.
Het heeft veel kookfuncties, dus u hoeft vanaf het begin geen dingen te coderen. Deze tool integreert goed met het Serenity-framework en je kunt geweldige testrapporten genereren.
2) Postbode
Sommige testers houden er niet van om dezelfde codeertaal te gebruiken als bij de IDE. Voor zulke mensen is Postman een goede optie voor automatisering. Dit is ook een goede optie voor een verkennende interfacetest.
Postbode is een eenvoudige REST-client en je kunt snel beginnen met het gebruiken van de Chrome-plug-in. Er is een native versie beschikbaar, die kan worden gebruikt voor Mac, Linux en Windows. Het heeft een gebruikersinterface die helpt bij het opstellen van verzoeken en het controleren van de ontvangen respons.
3) SoapUI
Als uw team alleen API-tests uitvoert, ZEEP kan een goede keuze zijn. Het is een complete functionele testtool gewijd aan API-testen. Het ondersteunt ook datagestuurde testen waarbij de gegevens kunnen worden doorgegeven in CSV- of Excel-indeling. Het heeft ook een betaalde versie genaamd SoapUI Pro die nog betere en verbeterde functies biedt voor het testen van webservices.
Als je extra code wilt toevoegen voor een specifieke workflow of functionaliteit, gebruik dan Groovy voor je scripting. U kunt ook een globale variabele-instelling maken en al die variabelen in uw tests gebruiken in plaats van voor elke test afzonderlijk te initialiseren.
4) JMeter
JMeter wordt veel gebruikt voor belastingtests en kan ook worden gebruikt voor interfacetests. JMeter heeft een opname- en afspeelondersteuning en genereert HTML-rapporten die gemakkelijk te lezen en te begrijpen zijn. Omdat JMeter compatibel is met CSV-bestanden, kunt u hierdoor unieke testparameters maken.
Het is eenvoudig te integreren met Jenkins, zodat uw tests kunnen worden opgenomen in de CI. Als u dezelfde tool wilt gebruiken voor een interface en belastingtests, dan is JMeter een waardige keuze.
5) Fiddler
Fiddler helpt u bij het controleren en (opnieuw) gebruiken van de HTTP-verzoeken. Het heeft veel functies die u helpen bij het oplossen van problemen met de website, met zijn extensies, en u kunt nog veel meer doen. Het is ook een goed hulpmiddel voor beveiligingstests, aangezien het kan worden geconfigureerd om het gecodeerde verzoek te decoderen en vervolgens de verzoeken voor testdoeleinden te wijzigen.
Een van de extensies van Fiddler is de APITest-extensie, dit helpt om het webgedrag van een interface te verifiëren. Voor intensievere interfacetests kunt u proberen de FiddlerCore.Net bibliotheek om uw interface-testinfrastructuur te creëren.
Gevolgtrekking
Interfacetests zijn een zeer belangrijk onderdeel van testen voor grootschalige toepassingen en het is een must om het te doen. Zelfs in de toepassingen waar CI regelmatig wordt gevolgd, wordt het belangrijk om interfacetests uit te voeren.
Interfacetests zijn behoorlijk lastig en niet eenvoudig, daarom moet er een goede strategie worden ontworpen om deze tests uit te voeren. Vergeet ook niet om de input van het ontwikkelingsteam te gebruiken, aangezien zij de code beter begrijpen.
De beste en eenvoudigste manier om deze tests uit te voeren, is door de testsuite te automatiseren en te integreren in de CI, zodat veel tijd wordt bespaard en de resultaten sneller worden behaald.
Heeft u interfacetests uitgevoerd? Deel gerust uw ervaringen en laat ons weten welke tool en strategie door u zijn geïmplementeerd.
Aanbevolen literatuur
- Beste softwaretesttools 2021 [QA Test Automation Tools]
- Alfatesten en bètatesten (een complete gids)
- GUI-testhandleiding: een complete gebruikersinterface (UI) testhandleiding
- Soorten softwaretests: verschillende testtypen met details
- Primer eBook downloaden testen
- Soorten risico's in softwareprojecten
- 11 beste automatiseringstools voor het testen van Android-applicaties (Android App Testing Tools)
- Complete functionele testgids met zijn typen en voorbeelden