Hvad er softwarekvalitetssikring?
Softwarekvalitetssikring involverer afprøvning af computersoftwaredesign og -implementering og sikring af, at den opfylder en minimumsstandard for kvalitet. Kernen i kvalitetssikringsprocessen er testning, som er den metode, hvorpå hvert trin i udviklingscyklussen analyseres for at finde mangler, såsom fejl eller sikkerhedsproblemer. Den mest kendte del af softwarekvalitetssikringsprocessen er software og kodetest; det dækker dog også andre aspekter af ingeniørcyklussen. Andre aspekter af softwareteknik, der er genstand for kvalitetsanalyse, inkluderer design- og implementeringsstadier.
Det overordnede koncept om softwarekvalitetssikring kræver, at det starter i softwareplanlægningsfasen. Dårligt planlagt software kan være vanskeligt eller umuligt at skrive på en måde, der lever op til forventningerne fra den organisation, der forestillede sig det. Kvalitetsstyring i designfasen involverer at studere konsekvenserne af projektets specifikationer eller mål samt organisationens planer for at nå deres mål. Fordelen ved kvalitetsanalyse i designfasen er, at den finder og eliminerer fejl tidligt snarere end senere i udviklingscyklussen, når designproblemer er meget dyrere at løse.
En softwaretestingeniør, også kendt som en softwarekvalitetsanalytiker, er den primære person, der er ansvarlig for at udføre testprocessen. Denne person designer og udfører testplanerne, der vil hjælpe en organisation med at forbedre kvaliteten af deres software. Ideelt set bør en programmerer aldrig teste sit eget produkt, hvilket betyder, at inden for et projekt er en programmerer og testingeniør to forskellige mennesker.
Testplaner er en kritisk del af systemet med kvalitetssikring, især softwaretestfasen. Formålet med testplaner er at bestemme forhold, der markerer succes eller fiasko af software. En typisk testplan vil omfatte en omfattende liste over programmer og underprogrammer eller procedurer, der skal testes, samt de teknikker, der er involveret i testen. En anden kritisk funktion af en testplan er at bestemme, hvilke fejl der er uacceptable. Testplaner er typisk designet, før projektets faktiske softwarekode udvikles.
Når testingeniører skriver programmer til implementering af testplaner, kaldes disse testmanuskripter. Test scripts er en væsentlig del af softwarekvalitetssikringsprocessen. Deres formål er at automatisere testen af et programs eksisterende kode for at finde mangler. Derudover bruger testingeniører typisk kommercielt designede testværktøjer til at se efter potentielle problemer. Testplaner implementeres i kodningsfasen af softwareudvikling.
Der er en række vigtige trin involveret i selve testfasen i softwarekvalitetssikringsprocessen. Disse inkluderer enhedsafprøvning, der vurderer integriteten af forskellige sektioner af softwarekode samt fejlinjektioner, som er designet til at undersøge, hvordan programmerne reagerer på forkerte data. Yderligere trin inkluderer belastningstest eller stresstestning, som ser, hvordan et program fungerer under kraftig anvendelse, og indtrængen eller sikkerhedstestning for at teste et programs modstand mod uautoriseret adgang. Et softwareprojekt underkastes typisk også brugbarhedstest for at verificere, at det resulterende program er let for andre at bruge.
Specialister, der deltager i softwarekodetestning, er normalt opdelt i to grupper, den ene kaldet black box-testere og den anden, der er kendt som white box, eller glass box, testere. Black box-test er en mere overfladisk proces, der begynder på softwarekodningstrinnet og ikke undersøger nogen underliggende computerkode. Den undersøger en softwares brugervenlighed, kosmetiske konsistens og forekomsten af fejl og funktionsfejl.
White box testing er en proces, der starter helt i begyndelsen af softwarekvalitetssikringsprocessen, på designstadiet. Det inkluderer forudsigelse af potentielle problemer, før koden faktisk skrives, samt skrivning af testplaner og avancerede testmanuskripter. I modsætning til test af sortkasse involverer test af hvid boks også undersøgelsen af den underliggende computerkode.
Kvalitetssikring gælder også for softwareimplementeringsfasen, som er, når softwaren er tæt på færdiggørelse og installeres på computersystemer til evaluering. Denne fase omtales ofte som alfa-test, og den forekommer, når det næsten færdige produkt installeres og testes af udviklerpersonalet. Når softwaren præsenteres for potentielle kunder uden for virksomheden, kaldes den betatest. Hvis der vises defekter, efter at softwaren er frigivet, og en patch skal udvikles, bruges regressionstest for at sikre, at nye fejl ikke oprettes af opdateringerne.