Stel je voor: jouw organisatie heeft twee jaar hard gewerkt aan haar product. De release van de eerste versie nadert snel en iedereen is enthousiast. Er staat veel op het spel, dus mensen zijn nerveus, maar ze hebben ook vertrouwen in de kwaliteit van hun werk.
Dan komt eindelijk de grote dag… en het is verschrikkelijk. De applicatie ziet er geweldig uit en de functies zijn fantastisch. De app zit echter vol met gênante bugs. Gebruikers zijn niet tevreden en de beoordelingen zijn meedogenloos. Hoe zou dit kunnen worden voorkomen? Het antwoord is natuurlijk: software testing.
Het principe van software testing
Software testen kan worden omschreven als het proces van het verifiëren en valideren of een software
- Aan de technische vereisten voldoet zoals bepaald door het ontwerp en de ontwikkeling;
- Bugvrij is;
- Effectief en efficiënt voldoet aan de gebruikersvereisten door alle uitzonderlijke en grensgevallen af te handelen.
Het proces van het testen van software is niet alleen gericht op het vinden van fouten in de bestaande software, maar ook op het vinden van maatregelen om de software te verbeteren qua efficiëntie, nauwkeurigheid en bruikbaarheid. Het is voornamelijk gericht op het meten van de specificatie, functionaliteit en prestaties van een software programma of applicatie.
Test technieken
Er zijn twee hoofdcategorieën voor software testtechnieken:
Statische testtechnieken – zijn testtechnieken die worden gebruikt om defecten in de te testen applicatie te vinden zonder de code uit te voeren. Statisch testen wordt gedaan om fouten in een vroeg stadium van de ontwikkelingscyclus te voorkomen en zo de reparatie kosten te verlagen.
Dynamische testtechnieken – zijn testtechnieken die worden gebruikt om het dynamische gedrag van de te testen applicatie te testen. Dat wil zeggen dat de software wordt getest door de uitvoering van de codebasis. Het belangrijkste doel van dynamisch testen is om de applicatie te testen met dynamische inputs, waarvan sommige kunnen worden toegestaan volgens de vereisten (positieve testen) en andere niet (negatieve testen).
3 soorten software testen:
Unit Testing – Unit testing is een softwareontwikkelingsproces waarbij de kleinste testbare onderdelen van een applicatie, oftewel units, afzonderlijk en onafhankelijk worden onderzocht op een goede werking. Deze testmethode wordt tijdens het ontwikkelingsproces uitgevoerd door de softwareontwikkelaars. Het belangrijkste doel van unit testing is om geschreven code te isoleren om te testen en te bepalen of deze werkt zoals bedoeld. Het testen van units is een belangrijke stap in het ontwikkelingsproces, omdat het, als het correct wordt uitgevoerd, kan helpen bij het opsporen van vroege fouten in de code die in latere testfasen moeilijker te vinden zijn.
Integration Testing – Integration Testing is een type softwaretest waarbij de verschillende eenheden, modules of componenten van een softwaretoepassing als een gecombineerde entiteit worden getest. Neem wel in acht dat deze modules door verschillende programmeurs kunnen zijn gecodeerd.
Het doel van integratietesten is om de interfaces tussen de modules te testen en eventuele defecten aan het licht te brengen die kunnen optreden wanneer deze componenten worden geïntegreerd en met elkaar moeten communiceren.
Automation/Acceptance Testing – Acceptance testing is de fase waarin de klant besluit om een GO of No-GO te geven voor het product. Acceptatietesten is de laatste fase van het testen van software die wordt uitgevoerd na het testen van het systeem en voordat het systeem beschikbaar wordt gesteld voor daadwerkelijk gebruik. Na gezamenlijke inspanningen van het ontwikkelings- en het testteam zal de klant het ontwikkelde product accepteren of afwijzen.
Lees ook onze blog: De beste manier om software te testen S