Wat is softwaretestmethodologie?
Softwaretestmethodologie wordt gedefinieerd als strategieën en testtypen die worden gebruikt om te certificeren dat de te testen applicatie voldoet aan de verwachtingen van de klant. Testmethodologieën omvatten functionele en niet-functionele testen om de AUT te valideren. Voorbeelden van testmethodologieën zijn unit-testen, integratietesten, systeemtesten, prestatietesten enz. Elke testmethodologie heeft een gedefinieerd testdoel, teststrategie en resultaten.
Opmerking : aangezien softwaretests een integraal onderdeel vormen van elke ontwikkelingsmethodologie, gebruiken veel bedrijven de term ontwikkelingsmethodologieën en testmethoden in de volksmond. Daarom kunnen testmethodologieën ook verwijzen naar Waterval-, Agile- en andere QA-modellen in tegenstelling tot de bovenstaande definitie van testmethodologieën. Discussie over verschillende testtypen voegt geen waarde toe voor de lezers. Daarom bespreken we de verschillende ontwikkelingsmodellen.
In deze tutorial leer je-
- Waterval model
- Iteratieve ontwikkeling
- Agile methodologie
- Extreem programmeren
- Welke softwaremethode moet ik kiezen?
- Hoe software-testmethodologieën instellen?
Waterval model
Wat is het?
In het watervalmodel verloopt de softwareontwikkeling door verschillende fasen, zoals behoefteanalyse, ontwerp enz. - opeenvolgend .
In dit model begint de volgende fase pas als de eerdere fase is voltooid.
Wat is de testaanpak?
De eerste fase in het watervalmodel is de requirementsfase waarin alle projecteisen volledig zijn gedefinieerd voordat met het testen wordt begonnen. Tijdens deze fase brainstormt het testteam over de scope van testen, teststrategie en stelt een gedetailleerd testplan op.
Pas als het ontwerp van software is voltooid, gaat het team verder met het uitvoeren van de testcases om ervoor te zorgen dat de ontwikkelde software zich gedraagt zoals verwacht.
Bij deze methodologie gaat het testteam pas naar de volgende fase als de vorige fase is voltooid.
Voordelen
Dit software-engineeringmodel is heel eenvoudig te plannen en te beheren. Daarom kunnen projecten, waarbij de eisen vooraf duidelijk zijn gedefinieerd en vermeld, eenvoudig worden getest met behulp van een watervalmodel.
Nadelen
In het watervalmodel kun je pas met de volgende fase beginnen als de vorige fase is voltooid. Daarom is dit model niet geschikt voor ongeplande gebeurtenissen en onzekerheid.
Deze methodiek is niet geschikt voor projecten waarbij de eisen vaak veranderen.
Iteratieve ontwikkeling
Wat is het?
In dit model wordt een groot project opgedeeld in kleine onderdelen, en elk onderdeel wordt onderworpen aan meerdere iteraties van het watervalmodel. Aan het einde van een iteratie wordt een nieuwe module ontwikkeld of wordt een bestaande module uitgebreid. Deze module is geïntegreerd in de softwarearchitectuur en het hele systeem wordt samen getest
Wat is de testaanpak?
Zodra de iteratie is voltooid, wordt het hele systeem getest. Feedback van testen is direct beschikbaar en wordt verwerkt in de volgende cyclus. De testtijd die nodig is bij opeenvolgende iteraties kan worden verminderd op basis van de ervaring die is opgedaan met eerdere iteraties.
Voordelen
Het belangrijkste voordeel van iteratieve ontwikkeling is dat de testfeedback direct beschikbaar is aan het einde van elke cyclus.
Nadelen
Dit model verhoogt de communicatie-overhead aanzienlijk, aangezien aan het einde van elke cyclus feedback moet worden gegeven over te leveren producten, inspanningen, enz.
Agile methodologie
Wat is het?
Traditionele methodologieën voor softwareontwikkeling gaan ervan uit dat de softwarevereisten gedurende het hele project constant blijven. Maar naarmate de complexiteit toeneemt, ondergaan de vereisten tal van 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 klant 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 verholpen voor de volgende release.
Voordelen
Het is op elk moment mogelijk om wijzigingen in het project aan te brengen om aan de eisen te voldoen.
Deze incrementele tests minimaliseren de risico's.
Nadelen
Constante klantinteractie betekent extra tijdsdruk voor alle belanghebbenden, inclusief de klant zelf, softwareontwikkeling en testteams.
Extreem programmeren
Wat is het?
Extreme programmering is een soort agile methodologie die gelooft in korte ontwikkelingscycli. Een project is onderverdeeld in eenvoudige engineeringtaken. Programmeurs coderen een eenvoudig stuk software en nemen contact op met de klant voor feedback. Beoordelingspunten van de klant worden verwerkt en de ontwikkelaars gaan verder met de volgende taak.
Bij extreme programmering werken ontwikkelaars meestal in paren.
Extreme Programming 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 testcase toe aan de testsuite om de nieuwe functionaliteit die nog moet worden ontwikkeld, te verifiëren
- Voer alle tests uit en het is duidelijk dat de nieuwe toegevoegde testcase moet mislukken, aangezien de functionaliteit nog niet is gecodeerd
- Schrijf een code om de functie / functionaliteit te implementeren
- Voer de testsuite opnieuw uit. Deze keer zou de nieuwe testcase moeten slagen, aangezien de functionaliteit is gecodeerd
Voordelen
Klanten die een vaag software-ontwerp in gedachten hebben, kunnen extreme programmering gebruiken
Continu testen en continue integratie van kleine releases zorgen ervoor dat de softwarecode van hoge kwaliteit wordt geleverd
Nadelen
Vergaderingen tussen het softwareontwikkelingsteam en klanten verhogen de tijdvereisten.
Welke softwaremethode moet ik 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 keuze van een bepaalde methodologie hangt af van vele factoren, zoals de aard van een project, klantvereisten, projectplanning, enz.
Vanuit een testperspectief pushen sommige methodologieën om input vroeg in de ontwikkelingscyclus te testen, terwijl andere wachten tot een werkend model van het systeem klaar is.
Hoe software-testmethodologieën instellen?
Methodologieën voor het testen van software mogen niet alleen worden opgezet om softwarecode te testen. Het grote geheel moet in overweging worden genomen en het hoofddoel van het project moet tevreden zijn met de testmethodologie.
Het roosteren
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 teamleden op één lijn te houden, moeten goed gedefinieerde resultaten worden geleverd. De deliverables moeten directe inhoud bevatten zonder enige dubbelzinnigheid.
Test aanpak
Zodra de planning is voltooid en de gedefinieerde resultaten beschikbaar zijn, moet het testteam in staat zijn om de juiste testaanpak te formuleren. Definitiedocumenten en ontwikkelaarsbijeenkomsten moeten het team aangeven wat de beste testaanpak is die voor het project kan worden gebruikt.
Rapporteren
Transparante rapportage is erg moeilijk te bereiken, maar deze stap bepaalt de effectiviteit van de testaanpak die in het project wordt gebruikt.