Designverifiering och valideringsprocess

โšก Smart sammanfattning

Designverifiering bekrรคftar att en designutgรฅng matchar dess dokumenterade designinput, medan designvalidering bekrรคftar att den fรคrdiga produkten uppfyller anvรคndarnas verkliga behov. Bรฅda pรฅgรฅr genom hela utvecklingsfasen, aldrig en enda gรฅng i slutet.

  • ๐Ÿ”˜ Tvรฅ olika frรฅgor: Verifiering frรฅgar om produkten designades rรคtt, och validering frรฅgar om rรคtt produkt designades รถverhuvudtaget.
  • โ˜‘๏ธ Ingรฅngar och utgรฅngar: Designinput รคr uppsรคttningen fysiska krav och prestandakrav; designoutput รคr vad varje designfas producerar och vad verifieringen undersรถker.
  • โœ… Objektiva bevis: Valideringen รคr endast fullstรคndig nรคr det finns fysiska bevis pรฅ att produkten uppfyller de dokumenterade anvรคndarbehoven.
  • ๐Ÿงช Verifiering i fem steg: Identifiering och fรถrberedelse, planering, utvecklingping, utfรถrande och rapportering utgรถr standardverifieringssekvensen.
  • ๐Ÿ› ๏ธ Tracfรถrmรฅga genomgรฅende: Kopplingar mellan designinput, testfall och resultat รคr det som bevisar att alla krav faktiskt uppfylldes.
  • ๐Ÿ“ˆ Sekvensfrรฅgor: Validering fรถljer pรฅ lyckad verifiering, och verifiering รคr aldrig en acceptabel ersรคttning fรถr den.

Designverifiering och valideringsprocess inom mjukvaruutveckling

Designverifiering

Designverifiering รคr en metod fรถr att bekrรคfta, genom granskning och genom att tillhandahรฅlla bevis, att utdata frรฅn en designad programvaruprodukt uppfyller dess indataspecifikationer. Mรฅlet med designverifieringsprocessen under programvaruutveckling รคr att sรคkerstรคlla att den designade programvaruprodukten รคr densamma som vad som specificerades.

Designinput รคr alla fysiska krav och prestandakrav som anvรคnds som grund fรถr designen. Designoutput รคr resultatet av varje designfas och av den totala designinsatsen. Inom reglerade branscher som medicintekniska produkter blir den slutliga designoutputen grunden fรถr enhetens huvuddata, vilket รคr anledningen till att designkontrollvokabulรคr fรถrekommer sรฅ ofta i verifieringsdokumentation.

I praktiken jรคmfรถr verifiering tvรฅ uppsรคttningar dokument: de specifikationer, standarder och begrรคnsningar som angavs mot de ritningar, kod och testinstruktioner som utfรคrdades. Varje avvikelse mellan dem รคr ett verifieringsresultat.

Design validering

Verifiering bevisar intern konsistens. Validering stรคller den svรฅrare frรฅgan om huruvida specifikationen beskrev rรคtt produkt frรฅn fรถrsta bรถrjan.

Design validering รคr en process fรถr att utvรคrdera programvaruprodukten mot slutanvรคndarnas eller intressenternas exakta krav. Syftet med designvalidering รคr att testa programvaruprodukten efter utveckling fรถr att bekrรคfta att den uppfyller dessa krav nรคr den anvรคnds i anvรคndarens egen miljรถ.

Validering handlar om att visa att en design รคr konsekvent och fullstรคndig med avseende pรฅ anvรคndarnas behov. Det hรคr รคr steget dรคr man faktiskt bygger en version av produkten och validerar den mot anvรคndarnas krav.

Bannern nedan markerar de tvรฅ halvorna av aktiviteten sรฅ som de vanligtvis presenteras i designdokument.

Rubrik fรถr designvalidering som anvรคnds i designkontrollposter

Diagrammet som fรถljer visar sjรคlva designvalideringsprocessen, frรฅn anvรคndarnas behov till den validerade produkten.

Designvalideringsprocessflรถde frรฅn anvรคndarbehov till validerad produkt

Syftet รคr att med objektiva bevis bevisa att produkten uppfyller de dokumenterade anvรคndarbehoven. Objektiva bevis รคr helt enkelt fysiska bevis pรฅ resultatet โ€“ en bild, en textfil, en ljudfil eller en signerad rapport โ€“ som visar att proceduren faktiskt utfรถrdes.

Genom dessa objektiva bevis undersรถker processen konsekvent om produkten uppfyller de fรถrdefinierade kraven. Det involverar testaktivitet, inspektion, analys och liknande tekniker, vilket รคr anledningen till att validering vanligtvis bygger pรฅ systemtestning och testning av anvรคndaracceptans snarare รคn pรฅ kontroller pรฅ enhetsnivรฅ.

Skillnad mellan designverifiering och validering

Det finns alltid missuppfattningar mellan verifiering och validering. De รคr olika aktiviteter, och bรฅda utfรถrs i varje steg av utvecklingsprocessen snarare รคn vid en enda milstolpe.

Designverifiering Design validering
Designverifiering anvรคnds dรคr den faktiska designutgรฅngen ska vara densamma som den fรถrvรคntade designutgรฅngen, vilket uppfyller produktens specifikationer. Designvalidering anvรคnds fรถr att faststรคlla att den slutliga designen uppfyller anvรคndarens fรถrvรคntningar.
Designverifieringen frรฅgar: designade du produkten rรคtt? Designvalidering frรฅgar: designade du rรคtt produkt?
Designverifiering inkluderar enhet och primรคr testning pรฅ integrationsnivรฅ. Designvalidering inkluderar integration pรฅ sekundรคr eller hรถgre nivรฅ och testning pรฅ systemnivรฅ.
Vissa aspekter av designvalidering kan utfรถras under designverifiering, men designverifiering ersรคtter inte designvalidering. Designvalidering fรถljer framgรฅngsrik designverifiering.
Designverifiering kan utfรถras pรฅ en enskild modul eller pรฅ det fรคrdiga systemet under alla fรถrhรฅllanden. Designvalidering ska utfรถras under ett specificerat villkor enligt anvรคndarens krav.
Designverifiering kan anvรคnda statiska tekniker. Det inkluderar systeminspektioner, analyser och formella verifieringsaktiviteter. Designvalidering bestรฅr av den slutliga rapporten รถver testresultaten, som granskas, godkรคnns och signeras. Dessa dokument lagras fรถr framtida referens.

En anvรคndbar genvรคg: verifiering รคr mestadels statiskt arbete mot dokument, medan validering mestadels รคr dynamisk testning mot en lรถpande byggnad.

Designverifieringsprocess

Verifieringsprocessen sker i fem steg, och varje steg producerar en artefakt som nรคsta steg รคr beroende av.

Identifiering och fรถrberedelse:

  • Medan en specifikation utvecklas identifieras verifieringsaktivitet parallellt. Detta gรถr det mรถjligt fรถr konstruktรถren att sรคkerstรคlla att specifikationen faktiskt รคr verifierbar, sรฅ att en testingenjรถr kan bรถrja med detaljerade testplaner och procedurer. Alla รคndringar i specifikationen mรฅste kommuniceras.
  • Identifiera den bรคsta metoden fรถr att utfรถra verifiering och definiera mรคtmetoder, nรถdvรคndiga resurser, verktyg och anlรคggningar.
  • Den fรคrdiga verifieringsplanen granskas med designteamet fรถr att upptรคcka problem innan planen slutfรถrs.

Planera:

  • Planering fรถr verifiering รคr en samtidig aktivitet med kรคrn- och utvecklingsteamen. Den sker under hela projektets livscykel och uppdateras nรคrhelst designinputen รคndras.
  • Under denna fas dokumenteras omfattningen av den programvara eller det system som testas.
  • En preliminรคr testplan skrivs och fรถrfinas sedan. Planen fรฅngar upp de kritiska milstolpar som minskar projektrisken.
  • Verktyg, testmiljรถ och utvecklingsstrategi vรคljs ut, och de krav som ska bekrรคftas genom inspektion eller analys identifieras.

Utvecklaping:

  • Testfall utvecklingen sammanfaller med SDLC metodik som projektgruppen har implementerat. En mรคngd olika testmetoder identifieras i detta skede.
  • Designunderlagen mรฅste utvecklas sรฅ att รคven de enklaste verifieringsaktiviteterna รคr entydiga och verifierbara.
  • Verifieringstiden minskar nรคr liknande koncept verifieras i fรถljd, eftersom utdata frรฅn ett test kan รฅteranvรคndas som indata fรถr ett efterfรถljande test.
  • TracFunktionslรคnkar skapas mellan testfall och deras motsvarande designindata, fรถr att sรคkerstรคlla att alla krav testas och att designutgรฅngen uppfyller designindata.

Genomfรถrande

  • Testprocedurerna som skapas under utvecklingsfasen utfรถrs i enlighet med testplanen och fรถljs strikt under verifieringsaktiviteten.
  • Om ogiltiga resultat uppstรฅr, eller om nรฅgon procedur behรถver modifieras, mรฅste รคndringarna dokumenteras och formellt godkรคnnas.
  • Alla problem som upptรคcks loggas som defekt enligt den vanliga metoden. process fรถr felhantering.
  • A tracfรถrmรฅgasmatris skapas fรถr att verifiera att varje designinput som identifierats i verifieringstestplanen har testats och fรถr att bestรคmma godkรคnnandegraden.

Rapporter:

  • Denna aktivitet utfรถrs i slutet av varje fas av verifieringsutfรถrandet.
  • Designverifieringsrapporten ger en detaljerad sammanfattning av verifieringsresultaten, inklusive konfigurationshantering, resultaten fรถr varje typ av testning och de problem som upptรคcktes under verifieringsaktiviteten.
  • En designverifiering tracEn hรฅllbarhetsrapport skapas mellan krav och motsvarande testresultat fรถr att bekrรคfta att alla krav har testats och att lรคmpliga resultat har registrerats.
  • Eventuella avvikelser dokumenteras och รฅtgรคrdas pรฅ lรคmpligt sรคtt.
  • RevVisningar genomfรถrs nรคr designverifieringen รคr slutfรถrd och resultaten รคr formellt godkรคnda.

Designvalideringsprocess

Validering har ingen lika strikt sekvens. Istรคllet anvรคnder den sig av en liten uppsรคttning accepterade metoder, och ett projekt anvรคnder normalt mer รคn en av dem.

  • Jรคmfรถrelse med likvรคrdiga designer. Vissa konstruktioner kan valideras genom att jรคmfรถra dem med liknande utrustning som tjรคnar ett liknande syfte. Detta รคr sรคrskilt relevant vid validering av konfigurationsรคndringar i befintlig infrastruktur, eller standardkonstruktioner som infรถrlivas i ett nytt system eller en ny applikation.
  • Demonstration och inspektion. Antingen eller bรฅda kan anvรคndas fรถr att validera krav och annan funktionalitet hos produkten.
  • Analys. Designen kan analyseras genom matematisk modellering eller en simulering som รฅterskapar den erforderliga funktionaliteten.
  • Testning. Tester utfรถrs pรฅ den slutliga designen fรถr att validera systemets fรถrmรฅga att fungera enligt specifikationen, vilket รคr dรคr funktionstestning och icke-funktionell testning uppfylla anvรคndarnas krav.
  • Dokumentation. Testplanen, utfรถrandet och resultaten bรถr dokumenteras och bevaras som en del av designdokumentationen. Validering รคr i slutรคndan de insamlade resultaten av alla valideringsaktiviteter.
  • Ekvivalensmotivering. Nรคr likvรคrdiga produkter anvรคnds i den slutliga designvalideringen mรฅste tillverkaren dokumentera likheten och eventuella skillnader frรฅn den ursprungliga produktionen.

Exempelvis

Ett kortfattat exempel gรถr skillnaden konkret.

  • Ta en enkel produkt: en vattentรคt klocka.
  • Produktkravdokumentet kan ange att โ€klockan mรฅste vara vattentรคt vid simningโ€. Det รคr anvรคndarbehovet, och det รคr det som valideringen mรคts mot.
  • Designspecifikationen kan ange att โ€klockan ska fungera รคven om anvรคndaren simmar under en lรคngre tidโ€. Det รคr designindata, och det รคr det som verifieringen mรคts mot.
  • Testresultaten bรถr bekrรคfta att klockan uppfyller dessa krav. Om de inte gรถr det fortsรคtter omdesignen tills den gรถr det.

Lรคgg mรคrke till hur en klocka kan klara verifieringen och รคndรฅ misslyckas med valideringen. Om specifikationen definierar en lรคngre simtur som femton minuter och riktiga simmare stannar i vattnet i en timme, matchar designutgรฅngen dess indata perfekt och misslyckas fortfarande med anvรคndaren.

Fรถrdelar med designvalidering och verifiering

Att kรถra bรฅda aktiviteterna kontinuerligt, snarare รคn som en grind i slutet, รคr det som ger fรถrdelarna nedan.

  • Design kan รถvervakas kontinuerligt, vilket gรถr det mรถjligt att uppfylla anvรคndardefinierade krav i varje steg.
  • Att validera designen pekar pรฅ skillnaden mellan hur funktionaliteten fungerar och hur den fรถrvรคntas fungera.
  • Att dokumentera valideringsprocedurerna gรถr funktionaliteten lรคtt att fรถrstรฅ senare, nรคrhelst en รคndring eller fรถrbรคttring gรถrs.
  • Utvecklingstiden minskas konsekvent och produktiviteten fรถrbรคttras, vilket bidrar till att leverera produkten som fรถrvรคntat.
  • Processen definierar omfattningen och omfattningen av varje valideringsmetod som mรฅste anvรคndas.
  • Validering kan utfรถras med hjรคlp av detaljerade designdata som representerar de slutliga anvรคndarkraven.
  • Eventuella skillnader mellan resultatet och anvรคndarbehovsdokumenten registreras snarare รคn fรถrloras.
  • ร„ndringar i en validerad design utlรถser en omvalideringsaktivitet, sรฅ att posten aldrig fรถrsvinner frรฅn produkten.
  • Att dokumentera varje aktivitet som sker under valideringen รคr det som pรฅ ett adekvat sรคtt bevisar att designen uppfyller anvรคndarnas krav.

Designverifiering och validering planeras dรคrfรถr bรคst inom ramen fรถr det bredare livscykel fรถr mjukvarutestning och mappad mot den andra typer av mjukvarutestning, snarare รคn att behandlas som en separat efterlevnadsรถvning.

Vanliga frรฅgor

Den nedรฅtgรฅende vรคnstra armen hanterar verifieringsaktiviteterna โ€“ krav-, design- och kodgranskningar. Den uppรฅtgรฅende hรถgra armen hanterar valideringsaktiviteterna, frรฅn enhets- och integrationskontroller till system- och acceptanstestning, dรคr varje nivรฅ svarar pรฅ specifikationen mittemot.

Fรถr det mesta, men inte strikt. Verifiering bygger pรฅ granskningar, inspektioner och genomgรฅngar, medan validering kรถr bygget. Verifiering kan fortfarande inkludera utfรถrda tester pรฅ enhetsnivรฅ, sรฅ behandla den statiska och dynamiska uppdelningen som en tendens snarare รคn en regel.

IEEE 1012, standarden fรถr verifiering och validering av system, programvara och hรฅrdvara, รคr det huvudsakliga ramverket. Kvalitetsledningsstandarder som ISO 9001 krรคver bรฅde design- och utvecklingskontroller, och reglerade sektorer lรคgger till sina egna designkontrollregler.

Verifiering utfรถrs vanligtvis av ingenjรถrer och granskare som รคr oberoende av den person som producerade designresultatet. Validering involverar slutanvรคndare eller deras representanter, eftersom endast de kan bedรถma om den levererade produkten uppfyller det faktiska behovet.

AI-assisterade verktyg flaggar tvetydiga eller otestbara krav under granskning, fรถreslรฅr trachรฅllbarhetslรคnkar mellan designindata och testfall, och markerar tรคckningsbrister i en verifieringsmatris. Godkรคnnandebeslutet stannar hos granskaren, eftersom bevisen mรฅste vara fรถrsvarbara.

GitHub Copilot kan utarbeta testkoden som implementerar en verifieringsprocedur och fรถrklara okรคnda moduler under en kodgranskning. Den kan inte i sig tillhandahรฅlla objektiva bevis, sรฅ genererad utdata behรถver fortfarande granskning och formellt godkรคnnande.

Att behandla validering som en formalitet efter att verifieringen รคr godkรคnd, att skriva designindata som inte kan mรคtas och att lรคmna trachรฅllbarhet till slutet. Var och en producerar en post som ser komplett ut men inte kan รถverleva en granskning eller en riktig anvรคndare.

Nรคrhelst รคndringen kan pรฅverka ett anvรคndarbehov eller de villkor under vilka produkten validerades. Konsekvensanalys avgรถr omfattningen: en begrรคnsad korrigering kan behรถvas regressionstestning endast medan ett รคndrat arbetsflรถde krรคver att den pรฅverkade valideringen upprepas.

Sammanfatta detta inlรคgg med: