exact difference between verification
Verificatie versus validatie: ontdek de verschillen met voorbeelden
Haar terug naar de basis mensen! Een klassieke kijk op het verschil tussen Verificatie en validatie
Er is veel verwarring en discussie over deze termen in de wereld van het testen van software.
In dit artikel zullen we zien wat verificatie en validatie zijn vanuit het oogpunt van softwaretests. Aan het einde van dit artikel zullen we de verschillen tussen de twee termen zien.
Hieronder volgen enkele van de belangrijke redenen om het verschil te begrijpen:
- Het is een fundamenteel QA-concept, daarom is het bijna de bouwsteen voor QA-kennis.
- Dit is een veel gestelde vraag Softwaretest sollicitatievraag
- Certificatie syllabus heeft een groot aantal hoofdstukken die hieromheen draaien.
- Ten slotte, en praktisch aangezien wij testers beide testtypen uitvoeren, kunnen we hier net zo goed experts in zijn.
Wat je leert:
- Wat is verificatie en validatie bij softwaretests?
- Wat is verificatie?
- Wat is validatie?
- Voorbeelden van validatie en verificatie
- V&V in verschillende fasen van de ontwikkelingscyclus
- Verschil tussen verificatie en validatie
- Diverse normen
- Wanneer valideren en verifiëren gebruiken?
- Gevolgtrekking
Wat is verificatie en validatie bij softwaretests?
In de context van testen, ' Verificatie en validatie ”Zijn de twee veelgebruikte termen. Meestal beschouwen we beide termen als hetzelfde, maar eigenlijk zijn deze termen behoorlijk verschillend.
Er zijn twee aspecten van V & V-taken (Verificatie & Validatie):
- Bevestigt aan vereisten (mening van de producent over kwaliteit)
- Geschikt voor gebruik (mening van consumenten over kwaliteit)
De mening van de producent over kwaliteit , in eenvoudiger bewoordingen, betekent de perceptie van de ontwikkelaars van het eindproduct.
Consumenten kijken naar kwaliteit betekent de perceptie van de gebruiker van het eindproduct.
Bij de uitvoering van de V & V-taken moeten we ons concentreren op beide kwaliteitsopvattingen.
Laten we eerst beginnen met de definities van verificatie en validatie, en dan zullen we deze termen met voorbeelden gaan begrijpen.
Opmerking: Deze definities zijn, zoals vermeld in de CSTE CBOK van de QAI (bekijk deze link voor meer informatie over CSTE).
Wat is verificatie?
Verificatie is het proces waarbij de tussenliggende werkproducten van een softwareontwikkelingscyclus worden geëvalueerd om te controleren of we op de goede weg zijn om het eindproduct te creëren.
Met andere woorden, we kunnen ook stellen dat verificatie een proces is om de mediatorproducten van software te evalueren om te controleren of de producten voldoen aan de voorwaarden die aan het begin van de fase worden gesteld.
Nu is de vraag hier: Wat zijn de tussenproducten of mediatorproducten?
Dit kunnen de documenten zijn die tijdens de ontwikkelingsfasen worden geproduceerd, zoals specificatie van vereisten, ontwerpdocumenten, ontwerp van databasetabellen, ER-diagrammen, testcases, traceerbaarheid Matrix , enzovoort.
We hebben soms de neiging om het belang van het herzien van deze documenten te negeren, maar we moeten begrijpen dat het beoordelen zelf veel verborgen anomalieën kan ontdekken als het erg kostbaar kan zijn als het in de latere fase van de ontwikkelingscyclus wordt ontdekt of opgelost.
Verificatie zorgt ervoor dat het systeem (software, hardware, documentatie en personeel) voldoet aan de normen en processen van een organisatie, op basis van de beoordeling of niet-uitvoerbare methoden.
Waar wordt verificatie uitgevoerd?
Specifiek voor IT-projecten, volgen enkele van de gebieden (ik moet benadrukken dat dit niet alles is) waarop verificatie wordt uitgevoerd.
Verificatiesituatie | Acteurs | Definitie | Uitvoer |
---|---|---|---|
Beoordeling van testdocumentatie (peer review) | QA-teamleden | Bij een peer review beoordelen de teamleden elkaars werk om er zeker van te zijn dat er geen fouten in de documentatie zelf staan. | Testdocumentatie klaar om te worden gedeeld met de externe teams. |
Beoordeling van zakelijke / functionele vereisten | Ontwikkelteam / klant voor zakelijke vereisten. | Dit is een noodzakelijke stap om er niet alleen voor te zorgen dat de vereisten verzameld en / of correct zijn, maar ook om er zeker van te zijn dat ze haalbaar zijn of niet. | Afgeronde vereisten die klaar zijn om te worden verbruikt door de volgende stap - ontwerp. |
Ontwerpbeoordeling | Ontwikkelteam | Na het maken van het ontwerp beoordeelt het Dev-team het grondig om er zeker van te zijn dat aan de functionele vereisten kan worden voldaan via het voorgestelde ontwerp. | Design is klaar om geïmplementeerd te worden in een IT-systeem. |
Code doorlopen | Individuele ontwikkelaar | De code die eenmaal is geschreven, wordt beoordeeld om eventuele syntactische fouten te identificeren. Dit is meer casual van aard en wordt door de individuele ontwikkelaar uitgevoerd op de door hemzelf ontwikkelde code. | Code klaar voor het testen van eenheden. |
Code inspectie | Ontwikkelteam | Dit is een meer formele opzet. Vakdeskundigen en ontwikkelaars controleren de code om er zeker van te zijn dat deze in overeenstemming is met de zakelijke en functionele doelstellingen van de software. | Code klaar om te testen. |
Testplanbeoordeling (intern voor QA-team) | QA-team | Een testplan wordt intern beoordeeld door het QA-team om ervoor te zorgen dat het nauwkeurig en volledig is. | Een testplan-document klaar om te worden gedeeld met de externe teams (projectmanagement, bedrijfsanalyse, ontwikkeling, omgeving, klant, enz.) |
Testplanbeoordeling (extern) | Projectmanager, bedrijfsanalist en ontwikkelaar. | Een formele analyse van het testplan-document om er zeker van te zijn dat de tijdlijn en andere overwegingen van het QA-team in lijn zijn met de andere teams en het hele project zelf. | Een afgetekend of goedgekeurd testplan-document op basis waarvan de testactiviteit zal worden gebaseerd. |
Test documentatie eindbeoordeling | Business analist en ontwikkelingsteam. | Een beoordeling van de testdocumentatie om er zeker van te zijn dat de testcases alle zakelijke voorwaarden en functionele elementen van het systeem omvatten. | Testdocumentatie klaar om te worden uitgevoerd. |
Zie de test documentatie review artikel waarin een gedetailleerd proces wordt geplaatst over hoe testers de beoordeling kunnen uitvoeren.
Wat is validatie?
Validatie is het proces waarbij het eindproduct wordt geëvalueerd om te controleren of de software voldoet aan de zakelijke behoeften. In eenvoudige bewoordingen is de testuitvoering die we in ons dagelijks leven uitvoeren eigenlijk de validatieactiviteit die omvat rooktesten , functionele testen, regressietesten, systeemtesten, etc.
Validatie zijn alle vormen van testen waarbij met het product wordt gewerkt en getest.
Hieronder staan de validatietechnieken:
Validatie zorgt er fysiek voor dat het systeem volgens een plan werkt door de systeemfuncties uit te voeren door middel van een reeks tests die kunnen worden geobserveerd en geëvalueerd.
Eerlijk genoeg, toch? Hier komt mijn twee cent:
Als ik in mijn klas met dit V & V-concept probeer om te gaan, is er veel verwarring. Een eenvoudig, klein voorbeeld lijkt alle verwarring op te lossen. Het is een beetje gek maar werkt echt.
Voorbeelden van validatie en verificatie
Real-life voorbeeld Stel je voor dat je naar een restaurant / diner gaat en misschien bosbessenpannenkoekjes bestelt. Wanneer de ober / serveerster uw bestelling brengt, hoe kunt u dan zien dat het eten dat eruit komt, overeenkomt met uw bestelling?
De eerste dingen zijn dat we ernaar kijken en de volgende dingen opmerken:
producttestsites die dingen verzenden
- Ziet het eten eruit zoals pannenkoeken doorgaans lijken te zijn?
- Zijn de bosbessen te zien?
- Ruiken ze goed?
Misschien meer, maar je begrijpt de essentie goed?
Aan de andere kant, als u absoluut zeker wilt weten of het voedsel is zoals u had verwacht: u zult het moeten eten.
Verificatie is alles als je nog moet eten, maar je controleert een paar dingen door de onderwerpen te herzien. Validatie is wanneer u het product daadwerkelijk eet om te zien of het goed is.
In deze context kan ik er niets aan doen, maar ga terug naar de CSTE CBOK referentie. Er is een prachtige uitspraak die ons helpt dit concept naar huis te brengen.
Verificatie beantwoordt de vraag: 'Hebben we het juiste systeem gebouwd?' terwijl validaties adresseert: 'Hebben we het systeem goed gebouwd?'
V&V in verschillende fasen van de ontwikkelingscyclus
Verificatie en validatie worden uitgevoerd in elk van de fasen van de ontwikkelingscyclus.
Laten we ze eens bekijken.
# 1) V & V-taken Planning
- Verificatie van het contract.
- Evaluatie van conceptdocument.
- Risicoanalyse uitvoeren.
# 2) V & V-taken Vereiste fase
- Evaluatie van softwarevereisten.
- Evaluatie / analyse van de interfaces.
- Genereren van het systeemtestplan.
- Genereren van acceptatietestplan.
# 3) V & V-taken Ontwerpfase
- Evaluatie van softwareontwerp.
- Evaluatie / analyse van de interfaces (UI).
- Genereren van een integratietestplan.
- Genereren van het Component-testplan.
- Genereren van testontwerp.
# 4) V & V-taken Implementatie fase
- Evaluatie van de broncode.
- Evaluatie van documenten.
- Genereren van testcases.
- Genereren van de testprocedure.
- Uitvoering van testcases voor componenten.
# 5) V & V-taken Testfase
- Uitvoering van systeemtestcase.
- Uitvoering van de acceptatietestcase.
- Traceerbaarheidsstatistieken bijwerken.
- Risico analyse
# 6) V & V-taken Installatie- en afrekenfase
- Audit van installatie en configuratie.
- De laatste test van de installatiekandidaat build.
- Genereren van het definitieve testrapport.
# 7) V & V-taken Operatiefase
- Evaluatie van nieuwe beperking.
- Beoordeling van de voorgestelde wijziging.
# 8) V & V-taken Onderhoudsfase
- Evaluatie van de anomalieën.
- Beoordeling van migratie.
- Beoordeling van de kenmerken van het nieuwe proces.
- Beoordeling van de voorgestelde wijziging.
- Validatie van de productieproblemen.
Verschil tussen verificatie en validatie
Verificatie | Validatie |
---|---|
Evalueert de tussenproducten om na te gaan of deze voldoen aan de specifieke eisen van de betreffende fase. | Evalueert het eindproduct om te controleren of het voldoet aan de zakelijke behoeften. |
Controleert of het product is gebouwd volgens de gespecificeerde vereisten en ontwerpspecificaties. | Het bepaalt of de software geschikt is voor gebruik en voldoet aan de zakelijke behoeften. |
Controleert 'Maken we het product goed'? | Controleert 'Maken we het juiste product'? |
Dit wordt gedaan zonder de software uit te voeren. | Wordt gedaan met het uitvoeren van de software. |
Betreft alle statische testtechnieken. | Bevat alle dynamische testtechnieken. |
Voorbeelden zijn beoordelingen, inspectie en walkthrough. | Voorbeeld omvat alle soorten testen, zoals rook, regressie, functioneel, systemen en UAT. |
Diverse normen
ISO / IEC 12207: 2008
Verificatieactiviteiten | Validatieactiviteiten |
---|---|
Verificatie van vereisten omvat een herziening van de vereisten. | Bereid de testvereisten documenten, testcases en andere testspecificaties voor om de testresultaten te analyseren. |
Ontwerpverificatie omvat beoordelingen van alle ontwerpdocumenten, inclusief de HLD en LDD. | Evalueer of deze testvereisten, testcases en andere specificaties de vereisten weerspiegelen en geschikt zijn voor gebruik. |
Codeverificatie omvat codebeoordeling. | Test op grenswaarden, stress en de functionaliteiten. |
Documentatieverificatie is de verificatie van gebruikershandleidingen en andere gerelateerde documenten. | Test op foutmeldingen en in geval van een fout wordt de applicatie netjes beëindigd. Test of de software voldoet aan de zakelijke eisen en geschikt is voor gebruik. |
CMMI:
Verificatie en validatie zijn twee verschillende KPA's op volwassenheidsniveau 3
Verificatieactiviteiten | Validatieactiviteiten |
---|---|
Uitvoeren van peer reviews. | Bevestig dat de producten en de componenten ervan geschikt zijn voor het milieu. |
Controleer de geselecteerde werkproducten. | Wanneer het validatieproces wordt geïmplementeerd, wordt het gecontroleerd en gecontroleerd. |
Standaardiseer een bepaald proces door beleidsregels op organisatieniveau vast te stellen voor het plannen en uitvoeren van beoordelingen. | Doe geleerde activiteiten en verzamel informatie over verbeteringen. Institutionaliseer een bepaald proces. |
IEEE 1012:
De doelstellingen van deze testactiviteiten zijn:
- Vergemakkelijkt vroege detectie en correctie van fouten.
- Stimuleert en verbetert managementinterventie binnen proces- en productrisico's.
- Biedt ondersteunende maatregelen voor het levenscyclusproces van software, om de naleving van planning en budgetvereisten te verbeteren.
Wanneer valideren en verifiëren gebruiken?
Dit zijn onafhankelijke procedures die samen moeten worden gebruikt om te controleren of het systeem of de applicatie in overeenstemming is met de eisen en specificaties en of het zijn beoogde doel bereikt. Beide zijn belangrijke onderdelen van het kwaliteitsmanagementsysteem.
Het is vaak mogelijk dat een product de verificatie passeert, maar faalt in de validatiefase. Omdat het echter voldeed aan de gedocumenteerde vereisten en specificaties, waren die specificaties zelf niet in staat om aan de behoeften van de gebruiker te voldoen. Daarom is het belangrijk om beide typen te testen om de algehele kwaliteit te waarborgen.
Verificatie kan worden gebruikt als een intern proces bij ontwikkeling, opschaling of productie. Aan de andere kant moet validatie worden gebruikt als een extern proces om de acceptatie van fitness bij belanghebbenden te krijgen.
Is UAT-validatie of verificatie?
UAT (User Acceptance Testing) moet als validatie worden beschouwd. Het is de real-world validatie van het systeem of de applicatie, die wordt gedaan door de daadwerkelijke gebruikers die valideren of het systeem 'geschikt is voor gebruik'.
Gevolgtrekking
V & V-processen bepalen of de producten van een bepaalde activiteit voldoen aan de eisen en geschikt zijn voor gebruik.
Ten slotte zijn er een paar dingen om op te merken:
- In zeer eenvoudigere bewoordingen (om elke vorm van verwarring te voorkomen), onthouden we alleen dat Verificatie de beoordelingsactiviteiten of de statische testtechnieken betekent en validatie de feitelijke testuitvoeringactiviteiten of de dynamische testtechnieken.
- Verificatie kan al dan niet betrekking hebben op het product zelf. Validatie heeft absoluut het product nodig. Soms kan verificatie worden uitgevoerd op de documenten die het uiteindelijke systeem vertegenwoordigen.
- Verificatie en validatie hoeven niet per se door de testers te worden uitgevoerd. Zoals je hierboven in dit artikel ziet, worden sommige hiervan uitgevoerd door de ontwikkelaars en andere teams.
Dit is alles wat u moet weten over verificatie en validatie om de kmo's (experts op het gebied van onderwerpen) over dit onderwerp te zijn.
Aanbevolen literatuur
- Verschil tussen Desktop, Client Server Testing en Web Testing
- Functioneel testen versus prestatietesten: moet het tegelijkertijd worden uitgevoerd?
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Functioneel testen versus niet-functioneel testen
- Statisch testen en dynamisch testen - Verschil tussen deze twee belangrijke testtechnieken
- Prestatietests versus belastingtests versus stresstests (verschil)
- Build Verification Testing (BVT Testing) Complete Guide
- 101 Verschillen tussen de basisprincipes van softwaretests