Methodologieën voor het testen van software: QA-modellen
⚡ Slimme samenvatting
Softwaretestmethodologie definieert de strategieën en testtypen die worden gebruikt om te garanderen dat een applicatie aan de verwachtingen van de klant voldoet. Waterval, iteratief, agile en extreme programming bepalen elk wanneer het testen begint en hoe feedback wordt verzameld.

Wat is softwaretestmethodologie?
Softwaretestmethodologie wordt gedefinieerd als strategieën en testtypen die worden gebruikt om te certificeren dat de geteste applicatie voldoet aan de verwachtingen van de klant. Testmethoden omvatten functionele en niet-functionele tests om de AUT te valideren. Voorbeelden van testmethoden zijn Testen van een eenheid, Integratietesten, Systeem testen, Performance Testing enz. Elke testmethodologie heeft een gedefinieerde testdoelstelling, teststrategie en resultaten.
Note: Omdat softwaretesten een integraal onderdeel zijn van elke ontwikkelingsmethodologie, gebruiken veel bedrijven in de volksmond de term ontwikkelingsmethodologieën en testmethodologieën. Daarom kunnen testmethoden ook verwijzen naar waterval-, Agile- en andere QA-modellen, in tegenstelling tot de bovenstaande definitie van testmethoden. Discussies over verschillende testtypen voegen geen waarde toe voor de lezers. Daarom zullen we de verschillende ontwikkelingsmodellen bespreken.
Testmethodologie versus testtype versus teststrategie
Bovenstaande opmerking wijst op een daadwerkelijke onduidelijkheid binnen de branche. Drie termen worden in gesprekken door elkaar gebruikt, maar betekenen iets anders in een projectdocument. Door deze termen te verwarren, ontstaan testplannen die de verkeerde vraag beantwoorden.
| Termijn | Vraag het beantwoordt | Besloten door | Voorbeelden |
|---|---|---|---|
| Testmethodologie | Wanneer en hoe past testen in de ontwikkelingscyclus? | Het gebruikte ontwikkelingsmodel | Waterval, iteratief, agile, extreme programmering |
| Testtype | Welk aspect van het product wordt gecontroleerd? | Risico- en vereistendekking | Eenheid, integratie, systeem, prestatie, beveiliging |
| Testniveau | In welke mate wordt de software onderzocht? | Positie in de buildhiërarchie | Component, integratie, systeem, acceptatie |
| Strategie testen | Wat is onze organisatiebrede aanpak ten aanzien van kwaliteit? | QA-leiderschap, van toepassing op alle projecten. | Risicogebaseerd, automatisering eerst, shift left |
| Testplan | Wat zal dit project precies testen, wanneer en door wie? | Testmanager, projectspecifiek | Omvang, planning, middelen, instap- en uitstapcriteria |
Een handige vuistregel: de methodologie bepaalt het ritme, het genre bepaalt het doel, en de testplan legt de toezegging vast. De onderstaande paragrafen gaan dieper in op de methodologieën.
Waterval model
Wat is het?
In de waterval modelsoftwareontwikkeling verloopt via verschillende fasen, zoals analyse van vereisten, ontwerp enz. – opeenvolgend.
In dit model begint de volgende fase pas wanneer de eerdere fase is voltooid.
Wat is de testaanpak?
De eerste fase in het watervalmodel is de eisenfase waarin alle projecteisen volledig worden gedefinieerd voordat met testen wordt begonnen. Tijdens deze fase brainstormt het testteam over de reikwijdte van het testen, de teststrategie en stelt een gedetailleerd testplan op.
Pas als het ontwerp van de software voltooid is, gaat het team over tot het uitvoeren van de testgevallen om ervoor te zorgen dat de ontwikkelde software zich gedraagt zoals verwacht.
Bij deze methodiek gaat het testteam pas door naar de volgende fase als de voorgaande fase is afgerond.
| Voordelen | Nadelen |
|---|---|
| Dit software-engineeringmodel is zeer eenvoudig te plannen en te beheren. Daarom kunnen projecten, waarbij de eisen vooraf duidelijk zijn gedefinieerd en vastgelegd, eenvoudig worden getest met behulp van een watervalmodel. | In het watervalmodel kun je pas met de volgende fase beginnen als de vorige fase is voltooid. Daarom kan dit model geen rekening houden met ongeplande gebeurtenissen en onzekerheid. |
| Deze methodiek is niet geschikt voor projecten waarbij de eisen regelmatig veranderen. |
Iteratieve ontwikkeling
Wat is het?
In dit model wordt een groot project opgedeeld in kleinere onderdelen, en elk onderdeel doorloopt meerdere iteraties volgens het watervalmodel. Aan het einde van een iteratie wordt een nieuwe module ontwikkeld of een bestaande module verbeterd. Deze module wordt geïntegreerd in de softwarearchitectuur en het gehele systeem wordt gezamenlijk getest.
Wat is de testaanpak?
Zodra de iteratie is voltooid, wordt het hele systeem getest. Feedback uit testen is direct beschikbaar en wordt meegenomen in de volgende cyclus. De testtijd die nodig is bij opeenvolgende iteraties kan worden verminderd op basis van de ervaring die is opgedaan bij eerdere iteraties.
| Voordelen | Nadelen |
|---|---|
| Het belangrijkste voordeel van iteratieve ontwikkeling is dat de testfeedback aan het einde van elke cyclus onmiddellijk beschikbaar is. | Dit model verhoogt de communicatiekosten aanzienlijk, omdat aan het einde van elke cyclus feedback moet worden gegeven over de resultaten, de inspanningen enz. |
Agile Werkmethode
Wat is het?
Traditionele softwareontwikkelingsmethodologieën werken op basis van de premisse dat softwarevereisten gedurende het hele project constant blijven. Maar met een toename in complexiteit ondergaan de vereisten talloze veranderingen en evolueren ze voortdurend. Soms weet de klant zelf niet wat hij wil. Hoewel het iteratieve model dit probleem aanpakt, is het nog steeds gebaseerd op het watervalmodel.
In de Agile-methodologie wordt software ontwikkeld in incrementele, snelle cycli. Interacties tussen klanten, ontwikkelaars en klanten worden benadrukt in plaats van processen en tools. De agile methodologie richt zich op het reageren op veranderingen in plaats van op uitgebreide planning.
Wat is de testaanpak?
Incrementeel testen wordt gebruikt in agile ontwikkelmethoden en daarom wordt elke release van het project grondig getest. Dit zorgt ervoor dat eventuele bugs in het systeem worden opgelost vóór de volgende release.
| Voordelen | Nadelen |
|---|---|
| Het is op ieder moment mogelijk om wijzigingen in het project aan te brengen om aan de eisen te voldoen. | Voortdurende klantinteractie betekent extra tijdsdruk voor alle belanghebbenden, inclusief de klant zelf, softwareontwikkelings- en testteams. |
| Door deze stapsgewijze tests worden de risico's geminimaliseerd. |
Extreem programmeren
Wat is het?
Extreem programmeren is een soort agile methodologie die gelooft in korte ontwikkelingscycli. Een project is opgedeeld in eenvoudige engineeringtaken. Programmeurs coderen een eenvoudig stukje software en nemen contact op met de klant voor feedback. RevDe beoordelingspunten van de klant worden verwerkt en de ontwikkelaars gaan door met de volgende taak.
Bij extreme programmering werken ontwikkelaars meestal in paren.
Extreem programmeren wordt gebruikt op plaatsen waar de eisen van de klant voortdurend veranderen.
Wat is de testaanpak?
Extreme programmering volgt een testgestuurde ontwikkeling die als volgt wordt beschreven:
- Voeg een Testgeval naar de testsuite om de nieuwe functionaliteit te verifiëren die nog ontwikkeld moet worden.
- Voer alle tests uit en uiteraard moet de nieuwe toegevoegde testcase mislukken, omdat de functionaliteit nog niet is gecodeerd
- Schrijf code om de functie/functionaliteit te implementeren
- Voer het testpakket opnieuw uit. Deze keer zou de nieuwe testcase moeten slagen, aangezien de functionaliteit functioneel is gecodeerd
| Voordelen | Nadelen |
|---|---|
| Klanten met een vaag softwareontwerp in gedachten zouden gebruik kunnen maken van extreme programmering. | Bijeenkomsten tussen het softwareontwikkelingsteam en klanten vergroten de tijdsbehoefte. |
| Continu testen en continue integratie van kleine releases zorgen ervoor dat de softwarecode van hoge kwaliteit wordt opgeleverd |
V-model en spiraalmodel
Twee andere modellen duiken op in de meeste projecten en maken het plaatje compleet, omdat elk model op een andere manier een zwakte van de watervalmethode aanpakt.
V-model. Het V-model, vaak aangeduid als verificatie en validatie, koppelt elke ontwikkelingsfase aan een corresponderende testfase, weergegeven als de twee armen van een V. Eisen worden gekoppeld aan acceptatietesten, het ontwerp op hoog niveau aan systeemtesten, het ontwerp op laag niveau aan integratietesten en coderen aan unit-testen. Het voordeel hiervan is dat het testontwerp gelijktijdig met elke ontwikkelingsfase begint, in plaats van na het coderen. Hierdoor worden onduidelijke eisen maanden voordat een defect zich voordoet, opgespoord door de persoon die de acceptatietesten schrijft. De zwakte van het model is echter een erfenis van het watervalmodel: het gaat er nog steeds van uit dat de eisen stabiel zijn.
Spiraalmodel. De spiraalbenadering is gebaseerd op een expliciete risicoanalyse. Elke iteratie bestaat uit vier activiteiten: doelstellingen bepalen, risico's identificeren en oplossen, ontwikkelen en testen, en vervolgens de volgende iteratie plannen. Het testen concentreert zich dus op de gebieden met het hoogste risico, in plaats van zich gelijkmatig te verspreiden. Deze aanpak is geschikt voor grote, dure en langlopende programma's zoals de lucht- en ruimtevaart of kernsystemen voor banken, waar de kosten van een late ontdekking hoog oplopen. Voor een klein webproject zijn de extra kosten van een formele risicoanalyse in elke iteratie zelden gerechtvaardigd.
Beide modellen bevinden zich tussen de discipline van de watervalmethode en de flexibiliteit van agile. Waar de releasefrequentie belangrijker is dan beide, is een DevOps De pipeline integreert testen in continue integratie, waardoor elke commit automatisch wordt geverifieerd.
Welke softwaremethodologie moet u kiezen?
Er zijn talloze methodologieën beschikbaar voor softwareontwikkeling en de bijbehorende tests. Elke testtechniek en -methodologie is ontworpen voor een specifiek doel en heeft zijn relatieve voor- en nadelen.
De selectie van een bepaalde methodologie hangt van veel factoren af, zoals de aard van een project, de eisen van de klant, de projectplanning, enz.
Vanuit een testperspectief dringen sommige methodologieën aan op het testen van input vroeg in de ontwikkelingslevenscyclus, terwijl andere wachten tot een werkend model van het systeem klaar is.
Hoe softwaretestmethodologieën opzetten?
Methodologieën voor het testen van software mogen niet alleen worden opgezet om softwarecode te testen. Er moet rekening worden gehouden met het grote geheel en het hoofddoel van het project moet tevreden zijn met de testmethodologie. Raadpleeg deze lijst met gerenommeerde dienstverleners voor het testen van software die u kan helpen effectieve teststrategieën op te stellen die zijn afgestemd op de doelstellingen van uw project.
Scheduling
Een realistische planning is de sleutel tot de implementatie van een succesvolle testmethodologie en de planning moet voldoen aan de behoeften van elk lid van het team.
Gedefinieerde resultaten
Om alle leden van het team op één lijn te houden, moeten goed gedefinieerde resultaten worden geleverd. De deliverables moeten directe inhoud bevatten, zonder enige dubbelzinnigheid.
Testaanpak
Zodra de planning voltooid is en de gedefinieerde deliverables beschikbaar zijn, moet het testteam in staat zijn om de juiste testaanpak te formuleren. Definitiedocumenten en ontwikkelaarsbijeenkomsten moeten het team informeren over de beste testaanpak die voor het project kan worden gebruikt.
Rapportage
Transparante rapportage is zeer moeilijk te realiseren, maar deze stap bepaalt de effectiviteit van de testaanpak die in het project wordt gebruikt.




