Soorten software tests
Soorten software tests

Alle soorten software tests voor je op een rij

Er bestaan allerlei verschillende soorten software tests, maar over het algemeen zijn ze onder te verdelen in drie hoofdcategorieën: functionele testen, niet-functionele testen en beveiligingstesten.

Vaak worden er meerdere soorten tests uitgevoerd om een product te testen. Om je een beeld te geven zetten we de meest voorkomende tests per categorie voor je op een rij.

Tests op basis van functionele omschrijving

Voorbeelden functionele testen

Bij functioneel testen wordt de software getest op basis van de functionele omschrijving van de software. De kwaliteit wordt beoordeeld en mogelijke fouten worden opgespoord. Het gaat hier om het testen van een vooraf beschreven situatie en je controleert als het ware de uitkomst van de ontwikkeling aan de hand van een checklist. Een aantal voorbeelden van functionele testen:

  • Unit testen: worden meestal uitgevoerd door de softwareontwikkelaars zelf. Zij testen of de code die ze maken geschikt zijn voor gebruik en volledig zijn - dus of de code goed geschreven wordt en goed functioneert.

  • Smoke testen: een testtechniek waarbij alle basisfunctionaliteiten van de software worden onderzocht om ervoor te zorgen dat ze goed werken. Ze worden doorgaans uitgevoerd door het testteam, onmiddellijk nadat de software is gebouwd. Het team test de software door middel van een aantal testcases op te stellen om te controleren of deze versie van de software stabiel genoeg is om verder ontwikkeld te worden.

  • Sanity testen: wordt meestal na de smoke test uitgevoerd om te bepalen of de nieuwe software goed genoeg presteert om grotere tests mee uit te voeren. Het testteam kijkt bij deze test of alle grote en belangrijke functies van de code goed functioneren.

  • Regressie testen: type test die softwarefouten probeert te ontdekken nadat er wijzigingen in de software zijn aangebracht - dus of alle systeemonderdelen nog steeds goed functioneren. Het testteam legt hierbij vaak de focus op de onderdelen die mogelijk beïnvloed zijn door de aanpassingen of waar fouten zijn gevonden.

  • Integratie testen: tests waarbij de individuele softwaremodule wordt gecombineerd met andere software om als groep te testen. Het testteam kijkt of ze goed met elkaar samenwerken en juist zijn geïntegreerd.

  • Acceptatietesten: ook wel beta test of usability test genoemd. Een manier van testen die vaak door de klant wordt uitgevoerd om te kijken of de software doet wat ervan verwacht wordt. De klant test de software om naderhand te kunnen bepalen of de software geaccepteerd wordt. Hier komt vaak een Agile werkwijze te pas en wordt er gebruik gemaakt van User Stories.

  • White Box testen: een testtechniek waarbij de interne structuur, het ontwerp en de codering van de software worden getest. Dit om de stroom van input - output te verifiëren en om het ontwerp, bruikbaarheid en veiligheid te verbeteren.

  • Black Box testen: een testmethode waarbij de functionaliteiten van software applicaties worden getest zonder kennis te hebben van de interne codestructuur, implementatie details en interne paden. Net als White Box testen richt Black box zich ook op de input - output.

Doet de software wat het moet doen?

Voorbeelden niet-functionele testen

Niet-functionele testen zijn gericht op de software als een geheel. Het gaat hierbij niet zozeer om de business requirements of het zoeken naar fouten - denk aan de prestaties of gebruikerservaring - maar meer om de vraag of het product goed is in gebruik. Oftewel: voldoet het aan de verwachtingen van de uiteindelijke gebruiker? Een aantal voorbeelden van niet-functionele testen:

  • Performance testen: een software test die wordt uitgevoerd om te testen of de software onder bepaalde belasting - ook wel load genoemd - binnen bepaalde normen blijft en voldoet aan de gespecificeerde prestatie-eisen.

  • Load testen: een testtechniek waarbij de respons wordt gemeten. Je test of de software een bepaald piekgebruik aankan en of het voldoet aan de service level agreement (SLA). Daarnaast wordt ook de capaciteit en stabiliteit van de software gecontroleerd.

  • Stress testen: een techniek die de software test onder hoge, extreme belasting om te kijken hoe de software hierop reageert en wat voor maximale belasting mogelijk is. In vergelijking met een performance test wordt er meer dan de maximale belasting getest om te kijken wat er gebeurt.

  • Volume testen: een test die wordt uitgevoerd op grote hoeveelheid gegevens. Er worden grote volumetests uitgevoerd wanneer de software grote gegevensvolumes verwerkt. Dit varieert van databases tot aan interface bestanden. Het wordt ook wel Floot Testing genoemd.

  • Installatie testen: een test die zich richt op wat klanten moeten doen om de software met succes te installeren en in te stellen. Het kan gaan om een volledige, gedeeltelijke of upgrade installatie.

  • Failover testen: een testtechniek die het vermogen van de software valideert wanneer er een fout optreedt of het systeem overbelast raakt. Er wordt dan gekeken naar hoe de software zich herstelt nadat het weer in functie is.

  • Soak testen: een test waarbij de software voor een langere periode getest wordt met een bepaalde workload. Er wordt gekeken of de software opgewassen is tegen de dagelijkse praktijk en hoe het zich gedraagt tijdens langdurig en intensief gebruik.

  • Usability testen: een testtechniek die kijkt hoe gemakkelijk de software in gebruik is. Het wordt meestal uitgevoerd door de eindgebruikers om te kijken hoe ze met de software om kunnen gaan in bepaalde situaties.

  • Migratietesten: een test waarbij wordt gekeken naar het proces om de software van de ene plek naar de andere te verplaatsen om de overgang zo soepel mogelijk te laten verlopen. Er wordt getest of de software veilig overgedragen kan worden en of er geen onverwachte verrassingen ontstaan.

Indentificeren van bedreigingen

Voorbeelden beveiligingstesten

Beveiligingstesten - ook wel security testen genoemd - identificeren de bedreigingen in de software en mogelijke kwetsbaarheden. Om dit van te voren in kaart te brengen kunnen bedreigingen vroegtijdig worden opgespoord en loopt de software minder risico om misbruikt te worden en stopt met functioneren. We zetten een aantal belangrijke security tests voor je op een rij:

  • Security scannen: het identificeren van netwerk- en systeemzwakheden om risico’s te verminderen. Het is een zeer uitgebreide beveiligingscheck. Zo kijk je onder andere naar wat er gebeurt als de software aan vijandige acties wordt ondernomen, hoe goed de beveiliging is en hoe de software reageert na de aanval.

  • Kwetsbaarheidsscan: een test waarbij de beveiligingsrisico’s in kaart worden gebracht om de kans op bedreigingen te verkleinen. Het doel van deze test is om de mogelijkheid voor indringers/hackers te verkleinen. Een kwetsbaarheid is een fout in de beveiligingsprocedure, het ontwerp, de implementatie of de interne controle van de software.

  • Penetratietesten: een beveiligingstest die wordt gebruikt om kwetsbaarheden, bedreigingen en risico’s te dekken die een aanvaller zou kunnen misbruiken. De test identificeert alle mogelijke beveiligingskwetsbaarheden in de software. Veelvoorkomende kwetsbaarheden zijn ontwerpfouten, configuratiefouten en softwarefouten.

  • Risicobeoordeling: een test die een analyse van beveiligingsrisico’s binnen de organisatie in kaart brengt. Ze worden geclassificeerd als laag, gemiddeld of hoog. Daarnaast wordt er bij elk risico een bepaalde controle aanbevolen en maatregelen om risico’s te verminderen.

  • Beveiligingsaudit: een interne inspectie van toepassingen en systemen op beveiligingsfouten. Er wordt gekeken naar het gevoerde beveiligingsbeheer en de getroffen maatregelen.

  • Ethisch hacken: een test waarbij een hacker de software hackt om de beveiligingsfouten in het systeem aan het licht te brengen. Zo kunnen zwakke punten in de software worden opgespoord en maatregelen worden ondernomen om de zwakke punten tegen te gaan.

  • Houdingsbeoordeling: een combinatie van beveiligingsscans, ethisch hacken en risicobeoordeling om de algemene beveiligingshouding van een organisatie in kaart te brengen.

software engineer vacature
Start je Sales carrière bij WT!