Reading Time: 9 mins

7 veelvoorkomende soorten softwaretests

7 veelvoorkomende soorten softwaretests

U bent misschien businesscases tegengekomen over softwareproducten die met veel tamtam worden gelanceerd, met miljoenen dollars aan reclame- en marketinguitgaven, om vervolgens kolossale mislukkingen te worden in het veld of op de markt. Deze kunnen van alles zijn, van een mobiele app die niet zoveel ogen of downloads krijgt als verwacht tot een geautomatiseerd vliegtuigsysteem dat halverwege de vlucht faalt en tragisch verlies van mensenlevens veroorzaakt. Al deze fouten komen voort uit een gemeenschappelijke bron: ontoereikendheid in het testen van software .

Het testen van software is een van de meest kritische componenten van de Software Development Life Cycle (SDLC) en toch is er zo weinig over bekend. Wist u bijvoorbeeld dat er tegenwoordig meer dan 150 verschillende soorten softwaretests worden uitgevoerd? En er komen er regelmatig nog bij!

Hoewel er meer dan 150 soorten testen zijn, namelijk:

  • Functioneel testen
  • Belasting testen
  • Verkennende testen
  • Niet-functioneel testen
  • Prestatietests
  • Regressietesten
  • Sanity testen
  • Beveiligingstests
  • Sanity testen
  • Stress testen
  • Testen van een eenheid
  • White-box testen
  • Toegankelijkheidstesten
  • Acceptatie testen
  • Black box-testen
  • End-to-end testen
  • En er volgt nog meer…

Sommige van deze tests kunnen handmatig of geautomatiseerd worden uitgevoerd.

In deze blog zien we de 7 meest voorkomende soorten softwaretesten .

  • Acceptatie testen

Acceptatietesten is een vorm van softwaretesten waarbij systemen worden getest op naleving van zakelijke en technologische vereisten om de geschiktheid ervan voor uiteindelijke levering aan eindklanten te evalueren. Simpel gezegd, Acceptance Testing beoordeelt of het gegeven softwaresysteem zijn doel vervult.

Over het algemeen wordt acceptatietesten uitgevoerd door teams van functionele testers en ontwikkelaars aan de hand van een reeks functionele specificaties. Het is een kritische vorm van testen omdat het valideert of de software voldoet aan de eindcriteria waarvoor het is ontwikkeld. Vaak wordt bij Acceptance Testing rekening gehouden met live-informatie en echte use-cases, waardoor het een integraal onderdeel is van de SDLC. Inadequate acceptatietesten hebben in het verleden tot grote verliezen geleid bij verschillende organisaties, omdat de prijs van het oplossen van fouten veel hoger is dan de kosten van uitgebreide tests.

Naast de testteams kan Acceptance Testing zelfs door eindgebruikers worden uitgevoerd, dit wordt User Acceptance Testing (UAT) of Beta Testing genoemd. Vaak geven eindgebruikers de meest waardevolle feedback die nodig is om een geweldig product te ontwikkelen. Daarom is UAT een essentieel onderdeel van acceptatietesten en zorgt het niet alleen voor de afwezigheid van bugs, maar helpt het ontwikkelaars ook om proactief lacunes in de functionaliteit op te vullen voordat het product op de markt komt.

  • Integratie testen

Tegenwoordig wordt de meeste software ontwikkeld in modules, die vervolgens worden geïntegreerd om een groter systeem te bouwen. Vaak is het gebrek aan compatibiliteit tussen verschillende modules de belangrijkste bron van softwarefouten die de levensvatbaarheid ervan aantasten. Daarom wordt Integration Testing uitgevoerd waarbij individuele softwaremodules worden geïntegreerd en als geheel worden getest. Het evalueert de conformiteit van het ‘volledige’ systeem in tegenstelling tot de afzonderlijke componenten ervan.

Verschillende vormen van integratietesten zijn onder meer:

  • String Testing , die een verzameling logisch gerelateerde modules evalueert nadat ze zijn geïntegreerd en vóór productie
  • Thread Testing , die het vermogen van een systeem om specifieke processen of threads uit te voeren evalueert, vroeg in de integratiefase

Integratietests worden geïmplementeerd met behulp van Stubs en Drivers, dummy-programma’s die datacommunicatie tussen modules simuleren, zonder de volledige systeemlogica te implementeren. De drie veelvoorkomende typen Integratietesten zijn gebaseerd op hun strategische aanpak. Ze bevatten:

1. Big Bang-benadering

Dit houdt in dat het volledige integratieproces wordt doorlopen en dat alle modules in één fase worden getest.

2. Incrementele benadering

De Incrementele Aanpak daarentegen voert testen uit op een meerfasige manier. Op basis van de volgorde waarin testen worden uitgevoerd, kan dit verder worden onderverdeeld:

a. In de Top-Down-benadering worden eerst alle top geïntegreerde modules getest, vervolgens systematisch de tak van de module, totdat uiteindelijk de laatste gerelateerde module wordt getest.

Illustratie van de Top Down-benadering bij integratietests

b. Onderkant boven

Illustratie van de bottom-up benadering bij integratietesten

c.De Sandwich-benadering, zoals de naam al doet vermoeden, maakt gebruik van een combinatie van Top-Down en Bottom-Up-benadering.

  • Testen van een eenheid

Unit Testing is de fundamentele bouwsteen van de hele testfamilie en omvat het testen van de afzonderlijke componenten die in het volledige systeem worden opgenomen. Het evalueert het kleinste testbare deel van het systeem en omvat over het algemeen slechts een beperkt aantal inputs/outputs. Onder Unit Testing omvatten de “eenheden” die worden getest blokken broncode, programmamodules, gebruiks-/bedieningsprocedures. Zoals te verwachten is, worden ze getest op geschiktheid voor hun doel, dwz of ze de taken uitvoeren die ze moeten uitvoeren en zich gedragen zoals verwacht.

  • Functioneel testen

Functioneel testen, zoals de naam al doet vermoeden, controleert of het softwaresysteem aan al zijn functionele specificaties voldoet. Als onderdeel van functionele tests worden verschillende inputs aan het systeem geleverd in overeenstemming met de functionaliteit en de output wordt gebruikt om te controleren of het al dan niet aan de vereisten voldoet.

Functioneel testen speelt een belangrijke rol bij testen omdat het ervoor zorgt dat een applicatie klaar is voor release. Functioneel testen kan handmatig of geautomatiseerd zijn en valt over het algemeen in de categorie Black Box-testen, waarbij de functionele testers afzonderlijke componenten onderzoeken ten opzichte van het hele systeem.

Enkele veelvoorkomende soorten functionele tests zijn:

  • Componenten testen

Betreft het testen van afzonderlijke modules of componenten om de functionaliteit ervan te evalueren, en omvat codebrokken, webpagina’s, mobiele schermen, enzovoort.

  • Rook testen

De oorsprong van de term wordt verondersteld te zijn in sanitair, waar rook werd gebruikt om scheuren in leidingen te detecteren. Evenzo staan bij Smoke Testing de kritieke problemen centraal, en het doel is om ze eerst op te lossen, in plaats van een uitgebreide systeemtest uit te voeren.

  • Sanity testen

Bij deze vorm van testen worden nieuwe builds met kleine updates getest om te controleren of gebreken in de nieuwe versie zijn verholpen en of er nieuwe gebreken zijn geïntroduceerd. Het is geen uitgebreide set tests, maar slechts een subset van de hele suite die is ontworpen om het effect van softwareaanpassingen te onderzoeken.

  • Prestatietests

Terwijl Functionele Tests alleen controleren of het systeem voldoet aan functionele vereisten, onderzoekt Performance Testing andere even kritische factoren zoals snelheid, stabiliteit, schaalbaarheid, betrouwbaarheid en reactievermogen onder gespecificeerde workloads. Het doel van Performance Testing is niet alleen om defecten te vinden, maar ook om prestatieknelpunten te elimineren.

Prestatietesten is een van de belangrijkste vormen van testen, omdat het problemen evalueert die het meest waarschijnlijk van invloed zijn op het gebruik en die rechtstreeks van invloed zijn op de eindgebruiker, zoals laadtijden van pagina’s, netwerkreactietijden, verwerkingstijden van serververzoeken, gelijktijdige gebruikersvolumes en geheugen of CPU-gebruik. Het stelt ontwikkelaars in staat om de problemen vast te stellen die moeten worden aangepakt voordat het product als marktklaar kan worden beschouwd.

Enkele vormen van prestatietesten zijn:

  • Belasting testen

Uitgevoerd door het consequent verhogen van de belasting van een systeem om drempelwaarden te bepalen, omvat het lezen/schrijven van grote hoeveelheden gegevens, het uitvoeren van meerdere toepassingen, enzovoort. Volumetesten en schaalbaarheidstesten werken volgens een soortgelijk principe, door respectievelijk het gegevensvolume en de gebruikersbelasting te vergroten.

  • Stress testen

Stress Testing controleert of systemen soepel werken onder stress, bijvoorbeeld bij lage CPU, geheugen of bandbreedte.

  • Spike-testen

Zoals de naam al doet vermoeden, zorgt Spike Testing voor periodieke pieken in de eisen aan het systeem om te onderzoeken of het binnen acceptabele limieten blijft presteren.

  • Soak/duurzaamheidstesten

Dit omvat het langdurig testen van het systeem onder constante belasting en het controleren op geheugenlekken, systeemstoringen, oververhitting en andere dergelijke prestatieproblemen.

Overweegt u prestatietesten? Lees meer over:

Regressietesten is een van de meest voorkomende vormen van testen en omvat het opnieuw uitvoeren van eerdere testgevallen. Het herhaalt alle eerdere functionele en niet-functionele tests om ervoor te zorgen dat het systeem naar tevredenheid blijft werken, zelfs na wijzigingen, updates of aanpassingen. Als het systeem niet presteert, zou het een regressie zijn, vandaar de naam Regression Testing. Deze vorm van testen kan selectief worden genoemd met slechts een subset van bestaande testgevallen om de impact van nieuwe code te analyseren, of het kan progressief zijn om ervoor te zorgen dat nieuwe wijzigingen geen nadelige gevolgen hebben voor reeds bestaande functionaliteit.

Op basis van het testniveau zijn de soorten testen onder meer:

  • Unit Regression Testing, die zich nauw richt op code-eenheden terwijl complexe interacties en afhankelijkheden worden geblokkeerd.
  • Partial Regression Testing, waarbij nieuwe code wordt getoetst aan bestaande code om acceptabele prestaties van het systeem te garanderen.
  • Volledige regressietests, die worden uitgevoerd na grote revisies en meerdere wijzigingen aan bestaande code.
  • Bruikbaarheidstesten

Bruikbaarheidstesten hebben betrekking op de manier waarop eindgebruikers omgaan met een bepaald softwaresysteem. Meestal gaat het om observatie van onderwerpen door onderzoekers om de gebruikerservaring in de echte wereld te begrijpen. Het speelt een sleutelrol in User-Centric Interaction Design of User Experience (UX) Design, waar het voor verschillende doeleinden wordt gebruikt:

  • Gebruiksproblemen ontdekken
  • Benchmarking prestaties
  • Gebruikspatroontoewijzing
  • Makkelijk te gebruiken

Overzicht

Software van alle soorten en maten vertrouwt ons met name met alle soorten softwaretests – testautomatisering. We zijn graag uw uitgebreide testpartner en helpen u met vertrouwen kwaliteitsproducten te lanceren.

Laat productiefouten uw klantervaring niet belemmeren. Probeer vandaag nog te testen met Zuci!

Begin nu

Keerthi Veerappan

An INFJ personality wielding brevity in speech and writing. Marketer @ Zucisystems.