Wat is software testen
Alles wat je moet weten over software testen

Wat is software testen?

De hamvraag bij het ontwikkelen van software producten: voldoet het product aan de verwachte eisen en werkt het allemaal zoals we met elkaar hebben afgesproken?

De beste manier om daarachter te komen: de software testen! Zowel technisch als functioneel. Maar wat is software testen precies en wat houdt het in? Dat lees je in dit artikel.

Betekenis

Wat is software testen?

Het testen van software is cruciaal in alle bedrijfsprocessen. Als een product niet naar behoren werkt kan dat een grote impact hebben.

Om dit te voorkomen is het daarom belangrijk om de software te testen. Hiermee toon je aan in hoeverre de software aan de vooraf gestelde eisen voldoet.

Functie

Hoe werkt het software testen?

Met het software testen maak je de verschillen tussen de eisen en opgeleverde software inzichtelijk. De geconstateerde verschillen worden ook wel issues genoemd (bevindingen).

Aan al deze issues wordt een mate van ernst gekoppeld - dit kan variëren van “trivial” tot “blocking”. Op basis van de uitslag en besluitvorming kan de organisatie besluiten om wel of niet verder te gaan met de software.

Hoe het testen van de software er daadwerkelijk uitziet is per product verschillend. Elk project is uniek qua aanpak en de uit te voeren tests verschillen per product.

Waarom testen?

Waarom is software testen belangrijk?

Tegenwoordig valt en staat een organisatie met goede software. Daar komt bij dat veel organisaties zich een langdurige stagnatie van hun bedrijfsprocessen als gevolg van storingen in de software niet kunnen permitteren.

Het testen van software biedt inzicht in de risico’s en handvatten voor een goede voortgang van het bedrijfsproces. Daarnaast brengt het nog een aantal voordelen met zich mee:

  • Kosteneffectief: door elke software op tijd te testen kun je geld op lange termijn besparen. Alle mogelijke fouten worden geanalyseerd en voor ingebruikname van de software opgelost - en niet wanneer de software al live is.

  • Beveiliging: mensen zijn op zoek naar betrouwbare producten. Met het testen van de software haal je risico’s en problemen weg en houd je een betrouwbaar product over.

  • Kwaliteit: met het testen zorg je ervoor dat je een kwaliteitsproduct levert een de klant.

  • Klanttevredenheid: misschien wel het allerbelangrijkste, een tevreden klant. Met het testen van de gebruikerservaring weet je precies hoe de klant de software ervaart.

Soorten tests

Verschillende soorten software tests

Over het algemeen zie je drie hoofdcategorieën software tests:

  • 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. Functionele tests focussen zich op de eisen en functionaliteiten (wat doet het).

  • 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? Niet-functionele testen gaan over de verwachtingen en prestaties onder bepaalde omstandigheden.

  • Beveiligingstesten

Bij beveiligingstesten, ook wel security testing genoemd, wordt er nagegaan wat voor eventuele beveiligingsrisico’s een nieuwe software met zich meebrengt. 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. Hierbij kun je denken aan een kwetsbaarheidsscan, risicobeoordeling of het ethisch hacken van de software.

Benieuwd naar alle soorten software tests? Wij hebben ze in dit artikel voor je op een rij gezet.

Strategieën

Strategieën om software te testen

Naast de verschillende soorten tests, zijn er ook verschillende strategieën. Zo kun je de software testen tijdens de ontwikkeling, implementatie of wanneer de software al live is. We zetten belangrijkste strategieën voor je op een rij.

  • Unit Testing

Bij Unit Testing wordt de software gevolgd door de programmeur om de eenheden of componenten van het programma te testen. Denk aan een individuele functie, methode, procedure, module of object. Het helpt de ontwikkelaars van de software om te weten of de afzonderlijke code-eenheid goed werkt of niet. Deze test wordt uitgevoerd tijdens de ontwikkeling - oftewel coderingsfase - van de software.

  • Integratietesten

Integratietesten richten zich op de constructie en het ontwerp van de software om ervoor te zorgen dat de eenheden en componenten zonder fouten werken. Deze tests worden uitgevoerd op het moment dat de software wordt geïntegreerd, om zo de interactie tussen de softwaremodules in kaart te brengen. Dit soort testen worden ook wel ‘String Testing’ en ‘Thread Testing’ genoemd.

  • Systeemtesten

Bij systeemtesten wordt de software als één groot geheel getest. Deze strategie controleert onder andere de functionaliteit, veiligheid en draagbaarheid van de software. Systeemtesten is eigenlijk een reeks aan verschillende tests waarvan het doel is om de volledige computersoftware uit te oefenen. Bekende systeemtesten zijn de Black Box testen en White Box testen.


Negatieve of positieve benadering

Twee soorten stromingen met testen

Over het algemeen zien we in de praktijk twee verschillende stromingen in het testen, los van welke software test er ook wordt uitgevoerd.

  • Een positieve benadering waarbij wordt aangetoond dat de software voldoet aan de belangrijkste eisen van gebruik.

  • Een negatieve benadering, die gericht is op het aantonen van fouten in de software.

Een functionele acceptatietest is bijvoorbeeld gericht op het aantonen van fouten. De software tester kijkt dan of alle functionele specificaties of de software doet wat het moet doen, maar vooral doet wat het niet moet doen.

Een gebruikersacceptatietest is veel meer gericht op de positieve benadering. De software tester kijkt dan of de gebruiker goed met de software overweg kan en het product de gebruiker voldoende faciliteert.

Wel gaan een positieve en negatieve benadering altijd hand in hand met elkaar. Zo moet je bij een functionele acceptatietest eerst ook altijd kijken wat wél goed werkt en bij een gebruikersacceptatietest ook kijken wat fout gaat.

Rapportage en advies

Opstellen van een testverslag

Na het testen van de software stelt de tester altijd een testverslag op. Hierin staat wat er precies getest is - aan de hand van de acceptatiecriteria waaraan de software moet voldoen - en beschrijft hierin de resultaten. Zo bevat een testverslag onder andere:

  • Checklists met wat er getest is

  • Testscripts met verslagen van welke test zijn uitgevoerd

  • Bewijs dat de testgevallen zijn uitgevoerd, zoals screendumps, testcoveragetools, bevindingenadministratie en/of demonstraties.

Daarnaast wordt er ook een advies opgesteld aan de hand van het testverslag en mogelijke risico’s bij implementatie.