Kæmpe softwarefirmaer, som Google, lykkes trods lavprioriterede fejl i deres software, men mindre virksomheder og startups har ikke den luksus.
Kunder forventer, at produkterne gør hvad de hævder på salgssiden eller i dokumentationen. Med så mange muligheder derude, tænker de ikke to gange om springskib, hvis produktet spilder deres tid og penge. Derfor underkastes software stringente tests inden udgivelsen for at:
fremhæve forskelle mellem det oprindelige koncept og den endelige produktion
Kontroller, at softwaren fungerer som designere planlagt
validere slutproduktet - produktet skal opfylde kundernes krav
vurdere funktioner og kvalitet
Testning følger en streng plan. Dette optimerer brugen af værdifulde ressourcer - færdigheder, tid og penge, samtidig med at interessenter får vigtige oplysninger til at tage produktet videre. Målet er at lette en god slutbrugeroplevelse gennem et stærkt kvalitetssikringsprogram . Med indsatsen så højt er QA-ledere nogle af de bedste indkomster i tech.Testing følger normalt disse trin:
Kravsanalyse, hvor ledere beskriver en plan for at sætte en passende teststrategi på plads.
Test begynder og resultater gennemgår analyse.
Eventuelle defekter rettes, og softwaren går gennem regressionsprøvning - et system til at kontrollere, at programmet stadig virker efter ændringer.
En test lukningsrapport angiver derefter hele processen og resultaterne.
Software Testing Methods
Her er de forskellige metoder, der bruges til at bedømme produktadfærd og ydeevne.
Black box og white box test er de to grundlæggende metoder.
- Black box test - Også kaldet funktionel eller specifikationsbaseret test, denne metode fokuserer på output. Testere er ikke bekymrede over de interne mekanismer. De kontrollerer kun softwaren, hvad den skal. Kendskab til kodning er ikke nødvendig, og testere arbejder på brugergrænsefladeniveau.
- Hvid boks test - Denne metode bruger kodning know-how som en del af testproceduren. Når et produkt fejler, går testerne så dybt ind i koden som nødvendigt for at finde årsagen. Softwareudviklerne gør det selv, da de bestemmer, hvordan produktet skal fungere. Struktur-baserede og glas boks test er andre navne til denne metode.
- Statisk test - Testere undersøger softwareens kode og dokumentation, men udfører ikke programmet. Statiske tests begynder tidligt i produktets udvikling under verifikationsprocessen.
- Dynamisk test - Softwaren udføres med forskellige input, og testere sammenligner output med forventet adfærd med denne metode.
- GUI-test - Dette tester GUI-egenskaber - tekstformatering, tekstbokse, knapper, lister, layout, farver, skrifttyper, skriftstørrelser og så videre. GUI-test er tidskrævende, og tredjepartsselskaber tager ofte opgaven i stedet for udviklere.
Testniveauer
Disse er nødvendige for at identificere svaghedsområder og overlappe hinanden i hver fase af softwarens udviklingscyklus.
- Enhedstestning - Udviklere tester de mest grundlæggende dele af kode som klasser, grænseflader og funktioner / procedurer. De ved, hvordan deres kode skal svare og kan foretage justeringer afhængigt af output.
- Komponentprøvning - Andre navne er modul- eller programtest. Det ligner enhedsprøvning, men indeholder et højere integrationsniveau. Modulerne i softwaren testes for fejl for at verificere deres individuelle funktion.
- Integrationstest - Dette identificerer fejl, når moduler integreres. Forskellige integrationstest er bottom up, top down og funktionelle incremental.
- Systemtest - Komponenter af et projekt testes som helhed i forskellige miljøer med denne metode. Det falder under den sorte boks metode og er en af de endelige prøver i processen. Det afgør, om systemet fungerer som det skal for at opfylde forretnings- og brugernes behov.
- Alfa-test - Internt personale tester softwaren på udviklerens websted i et simuleret eller faktisk miljø. Derefter korrigere udviklere fejl og andre problemer.
- Betatestning - Kendes også som feltprøvning, klienten tester produktet på deres eget websted i reelle forhold. Klienten kan tilbyde en gruppe af slutbrugere mulighed for at teste softwaren via prerelease- eller beta-versioner. Tilbagemelding om mulige forbedringer sendes derefter til udvikleren.
- Acceptance test - Også under omfanget af sort boks test, tester testen software for at finde ud af om udvikleren har oprettet programmet til ønskede specifikationer.
Testtyper
Disse software tests fokuserer på specifikke mål.
- Installationstest - Software testingeniør og konfigurationsleder udfører denne test for at sikre, at slutbrugeren kan installere og køre programmet. Det dækker områder som installationsfiler, installationssteder og administrative rettigheder.
- Udviklingstestning - Dette implementerer en række synkroniserede strategier til at registrere og forhindre fejl. Den omfatter statisk kodeanalyse, peer code reviews, sporbarhed og metrics analyse. Målet er at reducere risici og spare omkostninger.
- Usability testing - Brugeroplevelse kommer under fokus med denne test. Det måler, hvor godt GUI er designet og dets brugervenlighed. Testen kontrollerer nøjagtigheden og effektiviteten af funktioner og de følelsesmæssige responser af forsøgspersoner.
- Sanity test - Dette indikerer, om softwaren er den tid og omkostninger, der er værd at fortsætte yderligere tests. For mange fejl og mere aggressive tests følger ikke.
- Røgtestning - Røgtest afslører grundlæggende fejl, der er alvorlige nok til at forhindre frigivelse. Når dette udføres på en ny bygning, kaldes det en build verifikationstest.
- Regressionsprøvning - Når systemet undergår ændring, overvåger regressionstesten uventet opførsel. Det påpeger bivirkninger på moduler eller komponenter.
- Destruktive test - Testere indtaster unormale indgange og skelner softwareens evne til at håndtere uventet input. Dette viser udviklere, hvor robuste programmet er ved fejlhåndtering.
- Recovery test - Når hardware eller andre funktioner fejler, viser denne test, hvor godt softwaren kan gendanne og fortsætte driften.
- Automatiseret test - Dette gør funktionerne vanskelige at implementere manuelt. Det bruger specifik software til at køre testene og til at levere data om faktiske versus forventede resultater.
- Kompatibilitetstestning - Software skal køre i forskellige computermiljøer, så det kontrollerer kompatibilitet med forskellige systemer. For eksempel fungerer softwaren med forskellige operativsystemer og webbrowsere?
- Præstationsprøvning - Dette er en dybtgående test, der undersøger softwareydelsen i forskellige scenarier. Oplysninger om lydhørhed, stabilitet, ressourceallokering og hastighed indsamles. Desuden spiller deltests som volumen-, kapacitets- og spikesprøvning en rolle i denne proces.
- Sikkerhedsprøvning - Dette måler softwareens evne til at beskytte brugernes sikkerhed. Det betyder autorisationsfunktioner, godkendelse, fortrolighed, integritet, tilgængelighed og ikke-afvisning.
- Tilgængelighedstest - Dette er ikke det samme som brugervenlighedstest. Dette bestemmer i hvilket omfang brugere af forskellige evner - læring og fysiske handicap inkluderet kan bruge softwaren.
- Internationalisering og lokaliseringstest - Resultaterne viser, hvordan softwaren kan tilpasse sig forskellige sprog og regionale krav. Dette omfatter at tilføje komponenter til bestemte steder og oversætte tekst.
Software test er en væsentlig del af at bringe et produkt til markedet. Og uden testere ville det store udvalg af tilgængelig software ikke eksistere. Bliv certificeret software tester gennem organisationer som BCS, The Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) og ASQ (tidligere American Society for Quality).