White box testing
White Box Testing is het testen van de interne codering en infrastructuur van een software-oplossing. Het richt zich voornamelijk op het versterken van de beveiliging, de stroom van inputs en outputs via de applicatie en tevens het verbeteren van ontwerp en bruikbaarheid. Andere benamingen voor White box testing zijn Clear Box testing, Open Box testing, structureel testing, testen op basis van code en glass box testing.
Het tegengestelde van white box testing is black box testing. Dit is namelijk het testen van uit een extern of eindgebruiker perspectief. De Whitebox-test daarentegen is gebaseerd op de interne werking van een applicatie en draait het om interne testen.
De term “whitebox” is gebruikt vanwege het concept van de doorzichtige doos. De naam White box symboliseert de mogelijkheid om de buitenste schil van de software (of “kader”) door te nemen t.a.v. de interne werking. Op dezelfde manier symboliseert de naam ‘black box’ in ‘Black Box Testing’ dus dat we de interne werking van de software niet kunnen bekijken. Zodoende kunnen we alleen de ervaring van de eindgebruiker testen.
White box testen omvat het testen van de softwarecode op de volgende onderdelen:
Het testen kunnen we doen op systeem-, integratie- en unitniveaus van softwareontwikkeling. Een van de basisdoelen van white box-testen is tevens om de workflow voor een applicatie vast te stellen. Het omvat het testen van een reeks vooraf gedefinieerde inputs tegen verwachte of gewenste outputs, zodat als een specifieke input niet resulteert in de verwachte output, er een fout is opgetreden.
Om een vereenvoudigde uitleg te geven van white box testing kunnen we twee basisstappen onderkennen. Dit is wat testers doen bij het testen van een applicatie met behulp van de white box testmethode:
Het eerste dat een tester zal doen, is de broncode van de applicatie leren kennen en begrijpen. Omdat het white box testen kennis van de interne werking van een applicatie vereist, moet de tester goed bekend zijn met de programmeertalen die worden gebruikt in de applicatie die ze testen. Ook moet de tester goed op de hoogte zijn van veilige programmeermethoden. Beveiliging is namelijk vaak een van de primaire doelstellingen van het testen van software. De tester moet beveiligingsproblemen kunnen opsporen om aanvallen van hackers en naïeve gebruikers te kunnen voorkomen. Dergelijke aanvullen kunnen namelijk bewust of onbewust schadelijke code in de applicatie veroorzaken.
De tweede basis stap voor het white box testen omvat het testen van de broncode van de toepassing op de juiste workflow en structuur. Een werkwijze is om aanvullende code te schrijven waarmee de broncode van de applicatie is te testen. De tester zal tevens kleine tests ontwikkelen voor elk proces of reeks processen in de toepassing. Deze methode vereist dat de tester een grondige kennis van de code heeft die hij vaak eerder als ontwikkelaar heeft opgedaan. Andere methoden zijn handmatige tests, testen met vallen en opstaan en het gebruik van testtools.
Een belangrijke White Box-testtechniek is Code Coverage-analyse. Code Coverage-analyse, elimineert hiaten in een Test Case– suite. Het identificeert delen van een programma die niet worden gebruikt met een reeks testgevallen. Nadat hiaten zijn geïdentificeerd, maken we testcases om niet-geteste delen van de code te checken. Hierdoor verhogen we de kwaliteit van het softwareproduct.
Er zijn geautomatiseerde hulpmiddelen beschikbaar om de codedekkingsanalyse uit te voeren. Door gebruik te maken van Statement- en Branch-dekking tools behaalt je over het algemeen 80-90% codedekking, hetgeen voldoende is.
White box testing omvat verschillende testtypes die we gebruiken om de bruikbaarheid van een applicatie, een stuk code of een specifiek softwarepakket mee vast te stellen. Denk aan de volgende testtypes:
Dit is vaak het eerste type test dat we uitvoeren op een applicatie. De unittest voeren we uit op iedere module of ieder blok programmacode terwijl we deze ontwikkelen.
Het is hoofdzakelijk de ontwikkelaar die de Unit tests uitvoert. De softwareontwikkelaar ontwikkelt een paar regels code, een enkele functie of een object en test deze om te controleren of deze werkt voordat hij verder gaat.
Met Unit testing vindt men de meeste bugs al vroeg in de levenscyclus van de softwareontwikkeling. Als we bugs in deze vroege fase vinden is het goedkoper en gemakkelijk om ze te repareren.
Geheugenlekken zijn de belangrijkste oorzaken van tragere toepassingen. Een QA-specialist die ervaring heeft met het detecteren van geheugenlekken is essentieel als er sprake is van een traag werkende applicatie.
Afgezien van het bovenstaande zijn een paar testtypen onderdeel van zowel Blackbox als Whiteboxtesting:
Discussieer mee op LinkedIn.
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.