Door code uit te voeren en te compileren, kunt u verschillende soorten tests uitvoeren, waarbij de nadruk vooral ligt op het functionele aspecten van uw code, maar ook aspecten van prestaties en integratie testen. Hier is een overzicht:
* Eenheidstesten: Dit is het meest voorkomende type dat wordt uitgevoerd via compilatie en uitvoering. Je test individuele componenten (functies, methoden, klassen) afzonderlijk om te verifiëren dat ze zich gedragen zoals verwacht, gegeven specifieke invoer. Normaal gesproken schrijft u beweringen in uw testcode (met behulp van frameworks zoals JUnit, pytest of andere) om de uitvoer te controleren.
* Integratietesten: Hoewel dit vaak afzonderlijk wordt gedaan, kan het uitvoeren van gecompileerde code helpen bij het testen van de integratie als u met kleinere systemen te maken heeft. Je test de interactie tussen verschillende modules of componenten *nadat* ze onafhankelijk van elkaar zijn getest. U controleert of de verbindingen en gegevensstroom tussen de onderdelen correct werken.
* Regressietesten: Nadat u wijzigingen in uw code heeft aangebracht (bugfixes, nieuwe functies), kunt u door het compileren en uitvoeren van de code (vaak met een bestaande reeks unit- en integratietests) vaststellen of uw wijzigingen onverwachte problemen hebben geïntroduceerd in eerder werkende onderdelen.
* Rooktesten: Dit is een test op zeer hoog niveau om ervoor te zorgen dat de basisfunctionaliteit van de gecompileerde code werkt. Je bent op zoek naar catastrofale mislukkingen:start het programma wel? Levert het duidelijk verkeerde resultaten op? Het is een gezond verstandscontrole voordat er overgegaan wordt tot strengere tests.
* Systeemtesten (beperkt): U kunt enkele basissysteemtests uitvoeren door middel van compilatie en uitvoering. U kunt bijvoorbeeld verifiëren dat het programma de verwachte invoer en uitvoer binnen het hele systeem correct verwerkt. Volledige systeemtests omvatten echter doorgaans uitgebreidere scenario's en omgevingen.
* Prestatietests (beperkt): U kunt *enkele* rudimentaire prestatie-informatie verkrijgen door de uitvoering van uw code te timen of het gebruik van bronnen (CPU, geheugen) te monitoren. Speciale prestatietesttools en -methodologieën bieden echter veel nauwkeurigere en gedetailleerdere resultaten.
Wat je NIET direct krijgt bij het compileren en uitvoeren:
* Gebruiksvriendelijkheid testen: Dit richt zich op hoe gemakkelijk het programma te gebruiken is vanuit het perspectief van een gebruiker. Je krijgt dit niet direct door alleen maar code uit te voeren; je hebt gebruikersfeedback nodig.
* Beveiligingstests: Alleen het uitvoeren van de code garandeert geen veiligheid. Toegewijde beveiligingstests zijn van cruciaal belang om kwetsbaarheden te vinden.
* Stresstesten/belastingtesten: Deze tests drijven het systeem tot het uiterste om breekpunten te vinden. Je hebt gereedschap nodig dat speciaal is ontworpen voor het simuleren van hoge belastingen.
* Statische analyse: Bij statische analyse wordt uw code onderzocht *zonder* deze uit te voeren, waarbij potentiële problemen (zoals codegeuren en bugs) worden geïdentificeerd, puur via codeanalyse. Compilatie maakt deel uit van het ontwikkelingsproces, maar biedt niet inherent een diepgaande statische analyse.
Kortom:het compileren en uitvoeren van uw code is essentieel voor een breed scala aan testactiviteiten, maar vormt slechts een onderdeel van een uitgebreide teststrategie. Om het effectief te gebruiken, moet u goede unit- en integratietests schrijven en mogelijk enkele eenvoudige prestatiecontroles. Andere testtypen hebben speciale tools en benaderingen nodig. |