12 software testen die de kwaliteit van jouw website verbeteren

Luuk Hormes
12 software testen die de kwaliteit van jouw website verbeteren.

Misschien ben je al bekend met termen als load testing, system testing en integration testing. Zo niet, dan ben je zeker niet de enige. Hoewel deze software testen in sommige opzichten verschillen, is er ook veel overlap. Ze zijn namelijk allemaal relevant voor het produceren van een kwalitatief hoogwaardig eindproduct. In deze blog bespreken we in willekeurige volgorde de manieren waarop jij aan de slag kunt met software testen. 

 

1. Load testing

2. Stress testing

3. Unit testing

4. Integration testing

5. System testing

6. Acceptance testing

7. Smoke testing

8. Regression testing

9. Sanity testing

10. Database testing

11. User acceptance testing

12. Graphic user interface testing (GUI)

Conclusie

 

1. Load testing 

Load testing is het proces waarbij je een website of applicatie zwaar belast om te zien hoe deze zich gedraagt. Deze software testen gebruik je om prestatieknelpunten te identificeren, hardware vereisten te bepalen en na te gaan hoeveel verkeer de website aankan voordat hij uitvalt. Daarnaast gebruik je load testen om te controleren op beveiligingsproblemen zoals SQL-injectie, cross-site scripting en andere kwetsbaarheden die hackers kunnen uitbuiten.

 

2. Stress testing 

Hoeveel gebruikers kan jouw website bedienen? Hoeveel verzoeken per seconde kan je website verwerken? Je gebruikt stress testing om de maximale capaciteit van een systeem te bepalen. Het helpt knelpunten en resource hogs (programma's of processen die onevenredig veel computerresources gebruiken) op je website of applicatie te identificeren. Eventuele prestatieproblemen die met een traditionele loadtest niet zichtbaar zijn, zijn op te sporen dankzij stress testen. Denk hierbij aan overmatige databasequery's of inefficiënte code. 

 

3. Unit testing 

Bij het softwaretestproces unit testing test je, vergelijkbaar met de meeste andere software testen, het gedrag van een applicatie in vergelijking met het verwachte gedrag. Programmeurs schrijven unit testen om individuele eenheden van de broncode te testen. Het is efficiënt om de mensen die een nieuwe functie of bug fix implementeren ook software testen te laten uitvoeren. Zo zijn de mensen die dicht op de code zitten ook betrokken bij het testproces en kunnen bevindingen snel worden doorgevoerd. 

 

4. Integration testing 

Om de kwaliteit van je website te verbeteren is integration testing één van de belangrijkste soorten software testen die je kunt doen. Hiermee test je hoe jouw applicatie samenwerkt met andere systemen, zoals databases en webservices. Bij zowel individuele componenten als complete systemen kan je de integratie op verschillende niveaus testen. Het voornaamste doel is hierbij altijd: controleren of alle componenten correct samenwerken als één systeem. 

 

5. System testing 

In de laatste fase van software testen kies je voor system testing. Je test hier de prestaties van een nieuwe of gewijzigde toepassing onder verschillende omstandigheden en scenario’s. Zo weet je zeker dat de applicatie naar verwachting presteert en een goede gebruikerservaring biedt. Ook controleer je bij system testing de integratie tussen verschillende componenten van een applicatie: zoals hardware, het besturingssysteem, database enz. Al met al bestaat system testing uit verschillende stappen, die er als volgt uitzien: 

1. Identificeer alle vereisten voor het testen van het systeem. 

2. Identificeer alle functionele specificaties voor het testen van het systeem. 

3. Maak testcases op basis van geïdentificeerde eisen en functionele specificaties. 

4. Voer de testgevallen uit en identificeer eventuele defecten.

 

 Hoe schaalbaar is handmatig  testen eigenlijk? En wat is het alternatief?

 

6. Acceptance testing 

Aan het einde van de ontwikkelingscyclus is er nog een belangrijke software test die plaatsvindt, namelijk de acceptance test. Deze gebruik je om te bevestigen dat een product of functie voldoet aan de acceptatiecriteria die door de klant voorafgaand aan het project zijn gedefinieerd als requirement.  

Acceptance testing bestaat uit software testen van hoog niveau, die de klant meestal zelf uitvoert met geautomatiseerde tools of menselijke testers. Zo test je hierbij bijvoorbeeld of een online bestelformulier correct werkt, of dat een mobiele app relevante informatie weergeeft voor gebruikers in verschillende landen.

 

7. Smoke testing 

Smoke testing is ontworpen om te bepalen of een build (het proces van het omzetten van programmeercode naar een uitvoerbare vorm) "bouwbaar" is of niet. Met smoke testing spoor je problemen vroegtijdig op en voorkom je dat issues pas in het uiteindelijke project gevonden worden. 

Smoke tests bestaan meestal uit: 

  • Compileerfouten, zoals ontbrekende headerbestanden of bibliotheken. 
  • Fouten op runtimeniveau, zoals ongeldige geheugentoegang of geheugenverlies. 
  • Unit tests (unit test frameworks). 

 

8. Regression testing 

Regression testing (of in het Nederlands: regressietesten) komt vaak voor. Nadat een wijziging is aangebracht aan een nieuwe functie, is het belangrijk om ervoor te zorgen dat de software nog steeds voldoet aan de oorspronkelijke eisen. Hiervoor gebruik je regression testing. Ook gebruik je deze software testen om na te gaan of wijzigingen in de code fouten hebben veroorzaakt, of een eerder bestaande functionaliteit in de code hebben stukgemaakt. 

Het is goed om te weten dat regression testen doorgaans geautomatiseerde software testen zijn die herhaaldelijk uitvoerbaar zijn zonder menselijke tussenkomst en op elk willekeurig moment. Bedrijven gebruiken ze veel om ervoor te zorgen dat software continu aan de eisen voldoet. 

 

9. Sanity testing 

Een sanity test is een snelle en eenvoudige test die ervoor zorgt dat de meest basale functionaliteit van een applicatie werkt zoals verwacht. Zo voorkom je dat een applicatie volledig crasht of een kleine fout het hele systeem onbruikbaar maakt.  

Een ontwikkelaar of tester kan Sanity testing uitvoeren en in sommige gevallen zelfs automatiseren. 

 

10. Database testing 

Om ervoor te zorgen dat de data die je opslaat correct, consistent en volledig is, kun je deze data in de database valideren. Dit doe je met database testing. Je controleert of de gegevens op de juiste manier zijn opgeslagen, opgehaald en bijgewerkt. Database testing bevat het testen van de structuur van de database, de integriteit van de gegevens, de validatie van invoer en uitvoer, de prestaties van de database en natuurlijk de beveiliging. Het is een cruciaal onderdeel van software testen omdat veel softwaretoepassingen afhankelijk zijn van databases om gegevens op te slaan en op te halen. Zolang je zeker weet dat de database op orde is, kan je met meer zekerheid de kwaliteit en betrouwbaarheid van je applicatie waarborgen. 

 

11. User acceptance testing 

User acceptance testing is een testproces waarbij je een softwaretoepassing test op basis van de eisen en verwachtingen van de eindgebruiker. Als je een functionaliteit maakt, wil je natuurlijk wel dat de eindgebruiker deze daadwerkelijk gebruikt. Dit betekent dat de software niet alleen moet voldoen aan de specificaties, maar ook aan de behoeften van je eindgebruiker.

Bij het uitvoeren van user acceptance testing stel je een team van eindgebruikers samen, die de software testen in een 'echte' omgeving. Het team richt zich op het verifiëren van de functionaliteit, bruikbaarheid, prestaties en compatibiliteit van de software met andere systemen. Eventuele problemen los je op voordat de software live gaat door de testresultaten te documenteren voor- en te communiceren naar de ontwikkelaars.

Hoe beter de software voldoet aan de verwachtingen, hoe kleiner de kans op klachten en teleurstellingen na de release. 

 

12. Graphic user interface testing (GUI testing) 

Last, but not least is Graphical User Interface testing (GUI-testing). Bij Graphical User Interface testing test je de visuele en functionele aspecten van een applicatie, zoals buttons, menu's, dialoogvensters en andere elementen van de grafische interface van een softwaretoepassing. Ook controleer je of de interface van je applicatie goed werkt, de lay-out consistent is en of de functies correct werken. Dit omvat het testen van de navigatie, het invoeren en verwerken van gegevens en het testen van verschillende interacties tussen de gebruiker en de applicatie. 

Je voert GUI-testing handmatig of automatisch uit als onderdeel van het algehele softwaretestproces, om de kwaliteit van de gebruikerservaring te beoordelen. Het helpt om problemen die van invloed zijn op de gebruikerservaring op te sporen en op te lossen. Want, net als bij user acceptance testing, vergroot je op die manier de tevredenheid van je gebruiker. 

 

Conclusie 

Verschillende typen software testen zijn belangrijk in het ontwikkelingsproces van software. En hoewel elke test handmatig kan worden uitgevoerd, is test automation een steeds populairdere methode aan het worden. Met test automation is het mogelijk om testen namelijk sneller en efficiënter uit te voeren, om zo het ontwikkelingsproces te versnellen. Bovendien verminder je door automatisch testen de kans op menselijke fouten en verhoog je de testnauwkeurigheid. Meer weten?  Lees hier meer over hoe test automation precies werkt.