Artikelen

Wat is Software Testing, wat betekent het om software te testen

Softwaretesten is een reeks processen voor het onderzoeken, evalueren en vaststellen van de volledigheid en kwaliteit van software die voor computers is geschreven. Zorgt ervoor dat een softwareproduct voldoet aan wettelijke, zakelijke, technische, functionele en gebruikersvereisten.

Softwaretesten, of softwaretesten, wordt ook wel applicatietesten genoemd.

Het testen van software is in de eerste plaats een groot proces dat bestaat uit verschillende onderling verbonden processen. Het belangrijkste doel van het testen van software is het meten van de integriteit van de software en de volledigheid ervan in termen van de fundamentele vereisten. Softwaretesten omvat het onderzoeken en testen van software via verschillende testprocessen. De doelstellingen van deze processen kunnen zijn:

Verificatie van de volledigheid van de software tegen functionele/zakelijke vereisten
Het identificeren van bugs/technische fouten en ervoor zorgen dat de software foutloos is
Evaluatie van bruikbaarheid, prestaties, beveiliging, lokalisatie, compatibiliteit en installatie
Geteste software moet alle tests doorstaan ​​om volledig of geschikt voor gebruik te zijn. Enkele van de verschillende soorten softwaretestmethoden zijn white box-testen, black box-testen en grey box-testen. Bovendien kan de software als geheel worden getest, in componenten/units of binnen een live systeem.

Black Box-testen

Black Box Testing is een softwaretesttechniek die zich richt op het analyseren van de functionaliteit van de software, met betrekking tot de interne werking van het systeem. Black Box Testing is ontwikkeld als een methode voor het analyseren van klanteisen, specificaties en ontwerpstrategieën op hoog niveau.

Een Black Box Testing-tester selecteert een set geldige en ongeldige code-uitvoering en invoervoorwaarden en controleert op geldige uitvoerantwoorden.

Black Box Testen wordt ook wel functioneel testen of closed box testen genoemd.

Een zoekmachine is een eenvoudig voorbeeld van een toepassing die wordt onderworpen aan black box-tests. Een gebruiker van een zoekmachine voert tekst in de zoekbalk van een webbrowser in. De zoekmachine lokaliseert vervolgens de resultaten van gebruikersgegevens (output) en haalt deze op.

De voordelen van Black Box-testen zijn:

  • Eenvoud: Vergemakkelijkt het testen van projecten op hoog niveau en complexe applicaties
  • Resources besparen: testers richten zich op de functionaliteit van de software.
  • Testgevallen: focus op softwarefunctionaliteit om snelle ontwikkeling van testgevallen mogelijk te maken.
  • Biedt flexibiliteit: er is geen specifieke programmeerkennis vereist.

Black Box Testing heeft ook enkele nadelen, namelijk:

  • Ontwerp en onderhoud van testcases/scripts kan een uitdaging zijn, omdat Black Box-testtools afhankelijk zijn van bekende invoer.
  • Interactie met de grafische gebruikersinterface (GUI) kan testscripts beschadigen.
  • De tests hebben alleen betrekking op de functies van de applicatie.

Witte doos testen

Tijdens white-box-testen wordt code uitgevoerd met vooraf geselecteerde invoerwaarden om de vooraf geselecteerde uitvoerwaarden te valideren. White-box-testen omvat vaak het schrijven van stub-code (stuk code dat wordt gebruikt om een ​​specifieke functie te vervangen. Een stub kan het gedrag van bestaande code simuleren, zoals een procedure op een externe machine.) en ook stuurprogramma's.

De voordelen van white-box testen zijn:

  • Maakt hergebruik van testgevallen mogelijk en biedt meer stabiliteit
  • Vergemakkelijkt code-optimalisatie
  • Vergemakkelijkt het vinden van de locaties van verborgen fouten in de vroege stadia van ontwikkeling
  • Vergemakkelijkt het effectief testen van applicaties
  • Verwijder onnodige regels code


De nadelen zijn onder meer:

  • Vereist een ervaren tester met kennis van interne structuur
  • Kost tijd
  • Hoge kosten
  • Bit-of-code validatie is moeilijk.
  • White-box-testen omvatten unit-testen, integratietesten en regressietesten.

Hoofdstuk toets

Een Unit Test is een onderdeel van de Software Development Life Cycle (SDLC) waarin een uitgebreide testprocedure afzonderlijk wordt toegepast op de kleinste onderdelen van een softwareprogramma voor de gewenste geschiktheid of gedrag.


Een unit-test is een kwaliteitsmeting en -evaluatieprocedure die wordt toegepast bij de meeste activiteiten voor de ontwikkeling van bedrijfssoftware. Over het algemeen evalueert een unit-test hoe goed de softwarecode overeenkomt met het algemene doel van de software/applicatie/het programma en hoe de geschiktheid ervan van invloed is op andere kleinere units. Unit-tests kunnen handmatig worden uitgevoerd – door een of meer ontwikkelaars – of via een geautomatiseerde softwareoplossing.

Tijdens het testen wordt elke unit geïsoleerd van het hoofdprogramma of de interface. Unit-tests worden doorgaans uitgevoerd na de ontwikkeling en vóór de implementatie, waardoor integratie en vroege probleemdetectie worden vergemakkelijkt. De grootte of reikwijdte van een eenheid varieert afhankelijk van de programmeertaal, softwaretoepassing en testdoelen.

Functionele test

Functioneel testen is een testproces dat wordt gebruikt binnen softwareontwikkeling waarbij software wordt getest om ervoor te zorgen dat deze aan alle vereisten voldoet. Het is een manier om software te controleren om ervoor te zorgen dat deze alle vereiste functionaliteit heeft die is gespecificeerd in de functionele vereisten.


Functioneel testen wordt voornamelijk gebruikt om te verifiëren dat een stuk software dezelfde uitvoer levert als vereist door de eindgebruiker of het bedrijf. Doorgaans omvat functioneel testen het evalueren en vergelijken van elke softwarefunctie met de zakelijke vereisten. De software wordt getest door het wat gerelateerde invoer te geven, zodat de uitvoer kan worden geëvalueerd om te zien hoe deze overeenkomt met, gerelateerd is aan of afwijkt van de basisvereisten. Verder controleren functionele tests ook de bruikbaarheid van de software, bijvoorbeeld om ervoor te zorgen dat de navigatiefuncties werken zoals vereist.

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Regressie testen

Regressietesten is een soort softwaretest die wordt gebruikt om te bepalen of nieuwe problemen het gevolg zijn van softwarewijzigingen.

Voordat een wijziging wordt aangebracht, wordt een programma getest. Nadat een wijziging is aangebracht, wordt het programma opnieuw getest in geselecteerde gebieden om te detecteren of de wijziging nieuwe bugs of problemen heeft veroorzaakt, of dat de daadwerkelijke wijziging het beoogde doel heeft gediend.


Regressietesten zijn essentieel voor grote softwareapplicaties, omdat het vaak moeilijk is om te weten of het veranderen van een deel van een probleem een ​​nieuw probleem heeft gecreëerd voor een ander deel van de applicatie. Een wijziging in een leningsformulier voor een bankaanvraag kan bijvoorbeeld resulteren in het mislukken van een maandelijks transactierapport. In de meeste gevallen lijken de problemen niets met elkaar te maken te hebben, maar ze kunnen juist de oorzaak zijn van frustratie bij applicatieontwikkelaars.

Andere situaties die regressietesten vereisen, zijn onder meer het detecteren of bepaalde wijzigingen een bepaald doel bereiken of het testen op nieuwe gevaren die verband houden met problemen die na een periode zonder problemen weer de kop opsteken.

Moderne regressietesten worden voornamelijk uitgevoerd door middel van gespecialiseerde commerciële testtools die momentopnamen maken van bestaande software die vervolgens worden vergeleken na het aanbrengen van een specifieke wijziging. Het is bijna onmogelijk voor menselijke testers om dezelfde taken zo efficiënt uit te voeren als geautomatiseerde softwaretesters. Dit geldt met name voor grote en complexe softwaretoepassingen binnen grote IT-omgevingen zoals banken, ziekenhuizen, productiebedrijven en grote retailers.

Stress testen

Stresstesten verwijst naar het testen van software of hardware om te bepalen of de prestaties bevredigend zijn onder extreme en ongunstige omstandigheden, die kunnen optreden als gevolg van zwaar netwerkverkeer, procesbelasting, onderklokken, overklokken en piekgebruik van bronnen.

De meeste systemen zijn ontwikkeld uitgaande van normale bedrijfsomstandigheden. Daarom zijn fouten, zelfs als een limiet wordt overschreden, te verwaarlozen als het systeem tijdens de ontwikkeling aan een stresstest wordt onderworpen.


Stresstesten worden gebruikt in de volgende contexten:

  • Software: Stresstesten benadrukken beschikbaarheid en foutafhandeling onder extreem zware belasting om ervoor te zorgen dat de software niet crasht vanwege onvoldoende middelen. Software-stresstests richten zich op geïdentificeerde transacties om transacties af te breken, die zwaar worden belast tijdens het testen, zelfs wanneer een database niet is geladen. Het stresstestproces laadt gelijktijdige gebruikers boven normale systeemniveaus om de zwakste schakel in het systeem te vinden.
  • Hardware: Stresstests zorgen voor stabiliteit in normale computeromgevingen.
  • Websites: Stresstests bepalen de grenzen van elke sitefunctionaliteit.
  • CPU: Veranderingen zoals overvolting, undervolting, underlocking en overlocking worden gecontroleerd om te bepalen of ze zware belastingen aankunnen door een CPU-intensief programma uit te voeren om te testen op systeemcrashes of -bevriezingen. CPU-stresstest wordt ook wel marteltest genoemd.

Automatische testen

Geautomatiseerd testen (automatisering van softwaretests) is een benadering van codetesten waarbij gebruik wordt gemaakt van speciale softwaretools die tests automatisch uitvoeren en vervolgens de werkelijke testresultaten vergelijken met de verwachte resultaten.

Geautomatiseerd testen speelt een belangrijke rol bij Continuous Delivery (CD), Continuous Integration (CI), DevOps en DevSecOps. De belangrijkste voordelen van geautomatiseerd testen zijn:

  • Geautomatiseerd testen bespaart ontwikkelaars tijd en geld door het testproces efficiënter te maken.
  • Geautomatiseerde tests identificeren fouten efficiënter dan handmatige tests.
  • Wanneer tests worden geautomatiseerd, kunnen meerdere testtools parallel worden geïmplementeerd.


Bij softwareontwikkeling is het vooral handig om tijdens het bouwproces geautomatiseerde tests uit te voeren om ervoor te zorgen dat een applicatie vrij is van bouwfouten en de beoogde functie vervult.

Door de tijd te nemen om het testen van software te automatiseren, besparen ontwikkelaars uiteindelijk tijd door het risico te verkleinen dat een codewijziging bestaande functionaliteit kapot maakt.


Testen is een zeer belangrijke fase in het ontwikkelingsproces. Zorgt ervoor dat alle bugs worden verholpen en dat het product, software of hardware presteert zoals bedoeld of zo dicht mogelijk bij de beoogde prestaties. Geautomatiseerd testen, in plaats van handmatig testen, is essentieel om consequent kosteneffectieve software te leveren die tijdig voldoet aan de behoeften van gebruikers met minimale defecten.

Soorten geautomatiseerde tests die worden gebruikt bij softwareontwikkeling
  • Unit-test: test een enkel programma op laag niveau in een geïsoleerde omgeving voordat u de integratie ervan met andere units verifieert.
  • Integratietesten: Unit-tests en andere applicatiecomponenten worden getest als een gecombineerde entiteit.
  • Functionele tests: controleren of een softwaresysteem zich naar behoren gedraagt.
  • Prestatietesten: Evalueer de robuustheid van applicaties onder hoger dan verwachte belastingen. Prestatietests brengen vaak knelpunten aan het licht.
  • Rooktest: Bepaalt of een build stabiel genoeg is om verder te testen.
  • Browsertesten: controleer of softwarecomponenten compatibel zijn met verschillende browsers.

Handmatig testen wordt nog steeds op verschillende momenten tijdens de ontwikkeling gedaan, maar dit wordt meestal gedaan door de ontwikkelaars of de hardware-engineers zelf om snel te zien of de wijzigingen die ze hebben aangebracht het gewenste effect hebben gehad.

Ercole Palmeri

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Recente artikelen

Uitgevers en OpenAI ondertekenen overeenkomsten om de informatiestroom die door kunstmatige intelligentie wordt verwerkt, te reguleren

Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...

April 30 2024

Online betalingen: hier is hoe streamingdiensten u voor altijd laten betalen

Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…

April 29 2024

Veeam biedt de meest uitgebreide ondersteuning voor ransomware, van bescherming tot respons en herstel

Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...

April 23 2024

Groene en digitale revolutie: hoe voorspellend onderhoud de olie- en gasindustrie transformeert

Voorspellend onderhoud zorgt voor een revolutie in de olie- en gassector, met een innovatieve en proactieve benadering van fabrieksbeheer.…

April 22 2024