Software Quality Assurance (SQA) defineres som en velplanlagt og systematisk tilgang til evaluering af softwarekvaliteten. Den kontrollerer overholdelsen af softwareproduktstandarder, processer og procedurer. SQA inkluderer den systematiske proces med at sikre, at standarder og procedurer er etableret og følges i hele softwareudviklingens livscyklus og testcyklus.
Hovedfokus ved testning er at identificere fejlene i systemet så tidligt som muligt, fordi det er billigere at løse fejlene tidligt. I henhold til antallet af en undersøgelse, hvis der findes fejl efter frigivelse, bliver de dyrere at rette, og de påvirker også slutbrugernes tillid til applikationen.
En IBM-undersøgelse viser, at det er 100 gange dyrere at rette fejl, der findes, efter at applikationen er frigivet
- Sammenfattende er softwarekvalitetssikring vigtig, fordi den gør det muligt at:
- Sørg for, at projektet opfylder kravene
- Forhindre, opdage og rette fejl tidligt
- Minimer projektrisici
- Forøg produktets pålidelighed
- Forbedre slutbrugeroplevelsen
- Test og standardoverholdelse
- Release management og Release Control
- Reducerede omkostninger til udvikling
- Reducerede omkostninger til vedligeholdelse
Fordele ved testning
- Reduceret tid til marked
- Høj kvalitet
- State of the art testressourcer
- Fleksibel ressourcer
- Fokus på strategiske prioriteter
SQA-aktiviteter finder sted på hvert trin i udviklingslivscyklussen. Faserne er kategoriseret i områder med kravindsamling, systemdesign og kodning og test og endelig frigivelse.
- Verifikation - Processen med at evaluere et system eller en komponent for at bestemme, om produkterne fra en given udviklingsfase opfylder de betingelser, der blev stillet ved starten af den fase.
- Validering - Processen med at evaluere et system eller en komponent under eller ved afslutningen af udviklingsprocessen for at afgøre, om det opfylder specifikke krav
Under kravanalysen, design og kodning af applikationsudvikling skal output fra hvert trin måles, overvåges og styres, så hvert output kan verificeres i forhold til dets foruddefinerede exitkriterier. Når den endelige ansøgning er afsluttet kodnings- og integrationsfasen, skal den valideres i forhold til de oprindelige ansøgningskrav og underskrives af den øverste ledelse som bestået valideringstest. På hvert trin i denne applikationsudvikling skal indsatsen under udviklingen forbedres, hvor det er muligt for at forbedre kvaliteten og forblive konkurrencedygtig.
Forskellen mellem verifikation, validering og softwarekvalitetsmåling
En effektiv verifikationsindsats skal vise, at alle krav er udført korrekt. Dette gøres ved at teste kravene i forhold til produktlevering. Disse tests kan genudføres for at opnå de samme resultater, hvis systemet ændres på et senere tidspunkt.
Verifikation viser, at et produkt opfylder sine specificerede krav ved foruddefinerede milepæle i udviklingslivscyklussen. Validering kontrollerer, at systemet opfylder kundens krav ved afslutningen af udviklingslivscyklussen.
Validering er processen med at evaluere det endelige produkt for at kontrollere, om applikationen opfylder kundens forventninger og krav. Det er en dynamisk mekanisme til validering og test af det faktiske produkt. Valideringstesten bruger metoder som sort boks (funktionel) test, grå boks test og hvid boks (strukturel) test osv.
Kvaliteten af softwaren, der produceres i hver proces eller model, er beskrevet med hensyn til antallet af defekter, der oprettes. De mest almindelige metrics for defekter er typisk:
- Samlet antal testsager
- Antal beståede testsager
- Antal testsager mislykkedes
- Antal blokerede testsager
- Antal fundne mangler
- Antal accepterede mangler
- Antal afviste mangler
- Antal udskudte mangler
- Antal kritiske fejl
- Antal planlagte testtimer
- Antal faktiske testtimer
- Antal fejl fundet efter levering
Forskellige kvalitetssikringsaktiviteter er som følger:
- Opretholdelse af projektets kvalitet i henhold til specifikationerne og forretningskravene.
- Defektforebyggelse og formelle metoder til andre teknikker til forebyggelse af defekter.
- Fejlreduktion.
- Inspektion, formel og uformel gennemgang: Direkte fejldetektion og fjernelse uden at udføre projektscenariet.
- Test af projektet for fejlobservation og fjernelse af fejl.
- Risikoidentifikation.
- Fejlsporingsteknikker og -metoder.
- Software fejltolerance.
- Afsluttende bemærkninger og vedligeholdelse af rapporter.
Hvorfor softwarekvalitetssikring er meget vigtigt
- Brugerperspektiv : Kvalitetssikring af softwareapplikation er godt at se applikationen fra slutbrugerperspektiv og oprette et scenario afhængigt af det samme.
- Defekt i testfase : Det er godt at finde problemerne i et tidligt stadium og rette dem, før kunden f.eks. Finder dem i produktion.
- Projektrisiko : QA i starten af et projekt spiller en nøglerolle i afbødningen af de risici, der er blevet identificeret i specifikationsfaserne.
- Pålidelighed : Øger slutbrugernes tillid, når de finder applikationer, der fungerer efter deres forventninger. Selv et negativt scenario med fuld fiasko øger slutbrugerens tillid og gør applikationen intelligent.
- Giver lethed til slutbruger : Det hjælper slutbrugeren med at udføre forretningsopgaver uden teknisk viden om applikationen. Let forståelige applikationer har flere brugere end traditionelle applikationer.
- Forebyggelse af sikkerhedsbrud : Det hjælper softwareudviklere med at beskytte brugerdataene i produktionsmiljøet og opdage datalækage i testmiljøet.
- Load Understanding : Det hjælper med at forstå applikationen, der fungerer under simulering, og løse problemerne efter at have forstået den reelle belastning på systemet i produktionsmiljøet.
- Automatisering : Test af softwaren med det formål at reducere testindsatsen og levere kapacitet hurtigere og på en mere overkommelig måde. Det hjælper med at opbygge software af bedre kvalitet med mindre indsats.