exact difference between verification
Verifiering mot validering: Utforska skillnaderna med exempel
Dess tillbaka till grunderna folk! En klassisk titt på skillnaden mellan Verifiering och validering .
Det finns mycket förvirring och debatt kring dessa termer i programvarutestvärlden.
I den här artikeln kommer vi att se vad verifiering och validering är med tanke på programvarutestning. I slutet av denna artikel kommer vi att få skillnader mellan de två termerna.
Följande är några av de viktiga anledningarna till att förstå skillnaden:
- Det är ett grundläggande QA-koncept, därför är det nästan byggstenen att vara QA-medveten.
- Detta är en vanlig fråga Programtestintervjufråga .
- Certifiering Kursplanen har ett stort antal kapitel som kretsar kring detta.
- Slutligen, och praktiskt taget när vi testare utför båda dessa testtyper, kan vi lika gärna vara experter på detta.
Vad du kommer att lära dig:
- Vad är verifiering och validering vid programvarutestning?
- Vad är verifiering?
- Vad är validering?
- Validerings- och verifieringsexempel
- V&V i olika faser av utvecklingslivscykeln
- Skillnaden mellan verifiering och validering
- Olika standarder
- När ska valideras och verifieras?
- Slutsats
Vad är verifiering och validering vid programvarutestning?
I samband med testning, ” Verifiering och validering ”Är de två allmänt använda termerna. Oftast anser vi att båda termerna är desamma, men faktiskt är dessa termer helt annorlunda.
Det finns två aspekter av V&V-uppgifter (Verification & Validation):
- Uppfyller kraven (producentens syn på kvalitet)
- Lämplig för användning (konsumenternas kvalitetssyn)
Producentens syn på kvalitet betyder i enklare termer utvecklarnas uppfattning om den slutliga produkten.
Konsumenterna ser kvalitet betyder användarens uppfattning om den slutliga produkten.
När vi utför V&V-uppgifterna måste vi koncentrera oss på båda dessa kvalitetssyn.
Låt oss först börja med definitionerna av verifiering och validering och sedan kommer vi att förstå dessa termer med exempel.
Notera: Dessa definitioner är, som nämnts i QAI: s CSTE CBOK (kolla in den här länken för att veta mer om CSTE).
Vad är verifiering?
Verifiering är processen för utvärdering av mellanprodukterna i en livscykel för mjukvaruutveckling för att kontrollera om vi är i rätt spår för att skapa den slutliga produkten.
Med andra ord kan vi också säga att verifiering är en process för att utvärdera programvarans medlare för att kontrollera om produkterna uppfyller de villkor som ställts under fasens början.
Nu är frågan här: Vilka är förmedlings- eller medlingsprodukterna?
Tja, dessa kan inkludera de dokument som produceras under utvecklingsfaserna, kravspecifikation, designdokument, databastabelldesign, ER-diagram, testfall, spårbarhetsmatris , etc.
Ibland tenderar vi att försumma vikten av att granska dessa dokument, men vi bör förstå att granskning av sig själv kan ta reda på många dolda avvikelser när det kan bli mycket kostsamt om det hittas eller fixas i den senare fasen av utvecklingscykeln.
Verifiering säkerställer att systemet (programvara, hårdvara, dokumentation och personal) följer en organisations standarder och processer, beroende av granskningsmetoder eller icke-körbara metoder.
Var utförs verifiering?
Specifikt för IT-projekt, följande är några av de områden (jag måste betona att det inte är allt) där verifiering utförs.
Verifieringssituation | Skådespelare | Definition | Produktion |
---|---|---|---|
Testdokumentation (Peer review) | QA-teammedlemmar | En peer review är där gruppmedlemmarna granskar varandras arbete för att se till att det inte finns några misstag i själva dokumentationen. | Testdokumentation redo att delas med externa team. |
Granskning av affärs- / funktionskrav | Dev team / klient för affärsbehov. | Detta är ett nödvändigt steg för att inte bara se till att kraven har samlats in och / eller korrekt utan också för att se om de är genomförbara eller inte. | Slutförda krav som är redo att konsumeras av nästa steg - design. |
Design Review | Dev team | Efter designskapandet granskar Dev-teamet det noggrant för att se till att funktionskraven kan uppfyllas via den föreslagna designen. | Design är redo att implementeras i ett IT-system. |
Kodgenomgång | Individuell utvecklare | Koden en gång skriven granskas för att identifiera eventuella syntaktiska fel. Detta är mer avslappnat till sin natur och utförs av den enskilda utvecklaren på den kod som utvecklas av sig själv. | Kod redo för enhetstestning. |
Kodinspektion | Dev team | Detta är en mer formell inställning. Ämnesexperter och utvecklare kontrollerar koden för att säkerställa att den överensstämmer med de affärsmässiga och funktionella mål som programvaran riktar sig till. | Kod redo för testning. |
Testplangranskning (internt i QA-teamet) | QA-team | En testplan granskas internt av QA-teamet för att säkerställa att den är korrekt och fullständig. | Ett testplandokument redo att delas med externa team (projektledning, affärsanalys, utveckling, miljö, klient etc.) |
Testplangranskning (extern) | Projektledare, affärsanalytiker och utvecklare. | En formell analys av testplandokumentet för att säkerställa att tidslinjen och andra överväganden för QA-teamet är i linje med de andra lagen och hela projektet. | Ett undertecknat eller godkänt testdokument baserat på vilket testaktiviteten ska baseras på. |
Testdokument slutlig granskning | Affärsanalytiker och utvecklingsteam. | En granskning av testdokumentationen för att säkerställa att testfallet täcker alla affärsförhållanden och funktionella delar i systemet. | Testdokumentation redo att köras. |
Se testdokumentation granskning artikel som publicerar en detaljerad process om hur testare kan utföra granskningen.
Vad är validering?
Validering är processen att utvärdera den slutliga produkten för att kontrollera om programvaran uppfyller affärsbehovet. Med enkla ord är testkörningen som vi gör i vårt dagliga liv faktiskt den valideringsaktivitet som inkluderar rökprovning , funktionstestning, regressionstestning, systemtestning etc.
Validering är alla former av test som innebär att man arbetar med produkten och testar den.
Nedan följer valideringsmetoderna:
Validering säkerställer fysiskt att systemet fungerar enligt en plan genom att utföra systemfunktionerna genom en serie tester som kan observeras och utvärderas.
Rätt nog, eller hur? Här kommer mina två cent:
När jag försöker hantera detta V & V-koncept i min klass, är det mycket förvirring kring det. Ett enkelt, småaktigt exempel verkar lösa all förvirring. Det är lite dumt men fungerar verkligen.
Validerings- och verifieringsexempel
Verkligt exempel :Föreställ dig att du går till en restaurang / matsal och beställer kanske blåbärspannkakor. När servitören / servitrisen tar ut din beställning, hur kan du säga att maten som kom ut är enligt din beställning?
Det första är att vi tittar på det och märker följande saker:
ascii till int c ++
- Ser maten ut som de pannkakor som vanligtvis verkar vara?
- Är blåbär att se?
- Luktar de rätt?
Kanske mer, men du förstår kärnan?
Å andra sidan, när du behöver vara helt säker på om maten är som du förväntade dig: Du måste äta den.
Verifiering är allt när du ännu inte ska äta men kontrollerar några saker genom att granska ämnena. Validering är när du faktiskt äter produkten för att se om den är rätt.
I detta sammanhang kan jag inte låta bli att gå tillbaka till CSTE CBOK referens. Det finns ett underbart uttalande där ute som hjälper oss att ta med detta koncept hem.
Verifiering svarar på frågan 'Byggde vi rätt system?' medan valideringar adresserar, 'Byggde vi systemet rätt?'
V&V i olika faser av utvecklingslivscykeln
Verifiering och validering utförs i var och en av faserna i utvecklingslivscykeln.
Låt oss försöka ta en titt på dem.
# 1) V & V-uppgifter - Planera
- Verifiering av kontrakt.
- Utvärdering av konceptdokument.
- Utföra riskanalys.
# 2) V & V-uppgifter - Kravsfas
- Utvärdering av programvarukrav.
- Utvärdering / analys av gränssnitten.
- Generering av systemtestplanen.
- Generering av godkännandeprovplan.
# 3) V&V-uppgifter - Designfas
- Utvärdering av programvarudesign.
- Utvärdering / analys av gränssnitt (UI).
- Generering av integrationstestplan.
- Generering av komponenttestplanen.
- Generering av testdesign.
# 4) V&V-uppgifter - Implementeringsfas
- Utvärdering av källkod.
- Utvärdering av dokument.
- Generering av testfall.
- Generering av testförfarandet.
- Utförande av testfall av komponenter.
# 5) V&V-uppgifter - Testfas
- Utförande av systemtestfall.
- Utförande av godkännandeprovfallet.
- Uppdaterar spårbarhetsstatistik.
- Riskanalys
# 6) V&V-uppgifter - Installations- och utcheckningsfas
- Granskning av installation och konfiguration.
- Det sista testet av installationskandidatbyggnaden.
- Generering av den slutliga testrapporten.
# 7) V&V-uppgifter - Driftsfas
- Utvärdering av nya begränsningar.
- Bedömning av den föreslagna ändringen.
# 8) V&V-uppgifter - Underhållsfas
- Utvärdering av avvikelser.
- Bedömning av migration.
- Bedömning av omprövningsfunktionerna.
- Bedömning av den föreslagna ändringen.
- Validerar produktionsfrågorna.
Skillnaden mellan verifiering och validering
Verifiering | Godkännande |
---|---|
Utvärderar mellanprodukterna för att kontrollera om de uppfyller de specifika kraven i den specifika fasen. | Utvärderar slutprodukten för att kontrollera om den uppfyller affärsbehovet. |
Kontrollerar om produkten är byggd enligt det angivna kravet och designspecifikationen. | Den avgör om programvaran är lämplig för användning och uppfyller affärsbehovet. |
Kontroller ”bygger vi produkten rätt”? | Kontroller ”bygger vi rätt produkt”? |
Detta görs utan att programvaran körs. | Görs med att köra programvaran. |
Involverar alla statiska testtekniker. | Inkluderar alla dynamiska testtekniker. |
Exempel inkluderar recensioner, inspektion och genomgång. | Exempel inkluderar alla typer av tester som rök, regression, funktion, system och UAT. |
Olika standarder
ISO / IEC 12207: 2008
Verifieringsaktiviteter | Valideringsaktiviteter |
---|---|
Kravsverifiering innebär en granskning av kraven. | Förbered testkravsdokumenten, testfall och andra testspecifikationer för att analysera testresultaten. |
Designverifiering innefattar granskning av alla designdokument inklusive HLD och LDD. | Utvärdera att dessa testkrav, testfall och andra specifikationer återspeglar kraven och är lämpliga för användning. |
Kodverifiering inkluderar granskning av kod. | Testa för gränsvärden, stress och funktionalitet. |
Dokumentationsverifiering är verifiering av användarmanualer och andra relaterade dokument. | Testa för felmeddelanden och i händelse av fel avslutas applikationen graciöst. Testar att programvaran uppfyller företagets krav och är lämplig för användning. |
CMMI:
Verifiering och validering är två olika KPA på mognadsnivå 3
Verifieringsaktiviteter | Valideringsaktiviteter |
---|---|
Utföra peer reviews. | Kontrollera att produkterna och dess komponenter är lämpliga för miljön. |
Verifiera de valda arbetsprodukterna. | När valideringsprocessen implementeras övervakas och kontrolleras den. |
Standardisera en bestämd process genom att fastställa organisationsnivåpolicyer för planering och granskning. | Gör lektioner och samla förbättringsinformation. Institutionalisera en bestämd process. |
IEEE 1012:
Syftet med dessa testaktiviteter är:
- Underlättar tidig upptäckt och korrigering av fel.
- Uppmuntrar och förbättrar ledningsinterventioner i process- och produktrisker.
- Tillhandahåller stödjande åtgärder för programvarans livscykelprocess för att förbättra överensstämmelsen med schema och budgetkrav.
När ska valideras och verifieras?
Dessa är oberoende procedurer som bör användas tillsammans för att kontrollera om systemet eller applikationen överensstämmer med kraven och specifikationerna och att det uppnår det avsedda syftet. Båda är viktiga komponenter i kvalitetsledningssystemet.
Det är ofta möjligt att en produkt passerar verifieringen men misslyckas i valideringsfasen. Eftersom den uppfyllde de dokumenterade kraven och specifikationerna var dessa specifikationer emellertid själva oförmögna att tillgodose användarens behov. Det är därför viktigt att testa för båda typerna för att säkerställa den övergripande kvaliteten.
Verifiering kan användas som en intern process vid utveckling, uppskalning eller produktion. Å andra sidan bör validering användas som en extern process för att få godkännande av lämplighet hos intressenter.
Är UAT-validering eller verifiering?
UAT (User Acceptance Testing) bör betraktas som validering. Det är den verkliga valideringen av systemet eller applikationen, som görs av de faktiska användarna som validerar om systemet är 'lämpligt för användning'.
Slutsats
V&V-processer avgör om produkterna från en viss aktivitet uppfyller kraven och är lämpliga för dess användning.
Slutligen är följande några saker att notera:
- I mycket enklare termer (för att undvika någon form av förvirring), kommer vi bara ihåg att verifiering betyder granskningsaktiviteter eller statiska testtekniker och validering betyder faktiska testkörningsaktiviteter eller dynamiska testtekniker.
- Verifiering kan eller inte inbegriper själva produkten. Validering behöver definitivt produkten. Verifiering kan ibland utföras på de dokument som representerar det slutliga systemet.
- Verifiering och validering behöver inte nödvändigtvis utföras av testarna. Som du ser ovan i den här artikeln utförs några av dessa av utvecklarna och andra team.
Det här är allt du behöver veta om verifiering och validering för att vara små och medelstora företag (ämnesexperter) i ämnet.
Rekommenderad läsning
- Skillnad mellan Desktop, Client Server Testing och Web Testing
- Funktionstestning mot prestandatestning: Bör det göras samtidigt?
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Funktionell testning mot icke-funktionell testning
- Statisk testning och dynamisk testning - Skillnaden mellan dessa två viktiga testtekniker
- Prestandatestning mot belastningstestning vs stresstestning (skillnad)
- Byggverifieringstestning (BVT-testning) Komplett guide
- 101 Skillnader mellan grunderna för programvarutestning