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.

  • 🎯 Kerndefinitie: Strategieën en testtypen die de te testen applicatie toetsen aan de verwachtingen van de klant, elk met een eigen doelstelling en resultaten.
  • 🪜 Waterval: De fasen verlopen strikt in een vaste volgorde, dus de testplanning begint vroeg, maar de uitvoering wacht tot het ontwerp voltooid is.
  • 🔁 iteratief: Een groot project wordt opgesplitst in onderdelen, die elk een watervalcyclus doorlopen, waarbij het hele systeem na elke iteratie wordt getest.
  • Behendig: Korte, stapsgewijze cycli geven de voorkeur aan het snel reageren op veranderingen boven uitgebreide planning, waarbij elke release grondig wordt getest.
  • 👥 Extreme Programming: Zeer korte ontwikkelcycli met programmeurs in duo's en testgestuurde ontwikkeling, waarbij de test wordt geschreven vóór de code.
  • 🧭 Selectiefactoren: De aard van het project, de eisen van de klant en de planning bepalen welke methodologie het meest geschikt is.
  • 📋 Essentiële installatie: Realistische planning, duidelijk omschreven resultaten, een overeengekomen testaanpak en transparante rapportage.

Methodologieën voor softwaretesten

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

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

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

Agile methodologie

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

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:

  1. Voeg een Testgeval naar de testsuite om de nieuwe functionaliteit te verifiëren die nog ontwikkeld moet worden.
  2. Voer alle tests uit en uiteraard moet de nieuwe toegevoegde testcase mislukken, omdat de functionaliteit nog niet is gecodeerd
  3. Schrijf code om de functie/functionaliteit te implementeren
  4. 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.

Veelgestelde vragen

Ja, en dat komt vaak voor. Gereguleerde programma's hanteren vaak een watervalmodel rondom agile ontwikkelteams, waardoor de documentatie voldoet aan de eisen van auditors, terwijl de ontwikkelomgeving korte feedbackcycli hanteert.

Door testactiviteiten eerder in de levenscyclus te plaatsen, worden defecten al in de eisen en het ontwerp gevonden in plaats van na het coderen. Testgestuurde ontwikkeling is shift-left tot in de logische consequentie doorgevoerd.

AI verkort de feedbackloop in plaats van het model te vervangen. Gegenereerde testgevallen, zelfherstellende locators en risicogebaseerde selectie maken het mogelijk om in korte agile-cycli een dekking te bereiken die voorheen een lange fase vereiste.

Ja. Testimpactanalyse koppelt codewijzigingen aan de tests die deze wijzigingen afdekken, waardoor een pipeline een gerichte subset binnen enkele minuten uitvoert in plaats van een volledige regressietestsuite die een hele nacht duurt.

Ja, maar lichter. Agile geeft de voorkeur aan werkende software boven uitgebreide documentatie, niet boven geen documentatie. Acceptatiecriteria, geautomatiseerde tests en een beknopt testplan blijven noodzakelijk bewijsmateriaal.

Vat dit bericht samen met: