Store programvarefirmaer, som Google, lykkes på tross av lavprioriterte feil i programvaren, men mindre bedrifter og oppstart har ikke den luksusen.
Kunder forventer at produkter skal gjøre hva de hevder på salgssiden, eller i dokumentasjonen. Med så mange alternativer der ute, tenker de ikke to ganger om hoppeskip hvis produktet sløser med tid og penger. Derfor gjennomgår programvaren strenge tester før utgivelsen for å:
markere forskjeller mellom det opprinnelige konseptet og den endelige utgangen
Kontroller at programvaren fungerer som designere planlagt
validere sluttproduktet - produktet må oppfylle kundens krav
vurdere egenskaper og kvalitet
Testing følger en streng tegning. Dette optimaliserer bruken av verdifulle ressurser - ferdigheter, tid og penger, samtidig som interessentene gir viktig informasjon for å ta produktet videre. Målet er å legge til rette for en god sluttbrukeropplevelse gjennom et sterkt kvalitetssikringsprogram . Med innsatsen så høyt, er QA-ledere noen av de beste inntektene i tech.Testing følger vanligvis disse trinnene:
Kravanalyse hvor ledere skisserer en plan for å sette en egnet teststrategi på plass.
Testene begynner og resultatene gjennomgår analyser.
Eventuelle feil er korrigert, og programvaren går gjennom regresjonstesting - et system for å kontrollere at programmet fortsatt fungerer etter endringer.
En test lukke rapport angir deretter hele prosessen og resultatene.
Software Testing Methods
Her er de forskjellige metodene som brukes til å bedømme produktadferd og ytelse.
Svart boks og hvit boks testing er de to grunnleggende metodene.
- Svart boks testing - Også kalt funksjonell eller spesifikasjonsbasert testing, fokuserer denne metoden på produksjon. Testere er ikke opptatt av interne mekanismer. De sjekker bare at programvaren gjør hva den skal. Kunnskap om koding er ikke nødvendig, og testere fungerer på brukergrensesnitt.
- Hvit boks testing - Denne metoden bruker kodingsteknologi som en del av testprosedyren. Når et produkt mislykkes, går testerne så dypt inn i koden som nødvendig for å finne årsaken. Programvareutviklerne gjør dette selv siden de bestemmer hvordan produktet skal fungere. Strukturbasert og glassbokstesting er andre navn for denne metoden.
- Statisk testing - Testere undersøker programvarens kode og dokumentasjon, men utfører ikke programmet. Statiske tester begynner tidlig i produktets utvikling under verifikasjonsprosessen.
- Dynamisk testing - Programvaren utføres med ulike innganger, og testere sammenligner utdataene med forventet oppførsel med denne metoden.
- GUI testing - Dette tester GUI egenskaper - tekstformatering, tekstbokser, knapper, lister, layout, farger, skrifter, skriftstørrelser og så videre. GUI-testing er tidkrevende, og tredjepartsselskaper tar ofte oppgaven i stedet for utviklere.
Testnivåer
Disse er nødvendige for å identifisere områder med svakhet og overlapping i hver fase av programvareutviklingen livssyklus.
- Enhetstesting - Utviklere tester de mest grunnleggende delene av kode som klasser, grensesnitt og funksjoner / prosedyrer. De vet hvordan koden deres skal svare og kan gjøre justeringer avhengig av produksjonen.
- Komponenttesting - Andre navn er modul- eller programtesting. Det ligner enhetstesting, men inneholder et høyere integrasjonsnivå. Modulene i programvaren testes for feil for å verifisere deres individuelle funksjon.
- Integrasjonstesting - Dette identifiserer feil når modulene er integrert. Ulike integrasjonstester er nederst, topp ned og funksjonell inkrementell.
- Systemtesting - Komponenter av et prosjekt testes som helhet i forskjellige miljøer med denne metoden. Det faller under svart boks-metoden og er en av de endelige tester i prosessen. Det avgjør om systemet fungerer som det skal for å møte forretnings- og brukerbehov.
- Alfa-testing - Internt personale tester programvaren på utviklerens nettsted i et simulert eller faktisk miljø. Etter det, utvikler utviklere feil og andre problemer.
- Betatesting - Også kjent som felt testing, klienten tester produktet på eget nettsted i ekte forhold. Klienten kan tilby en gruppe sluttbrukere muligheten til å teste programvaren via prerelease- eller beta-versjoner. Tilbakemelding om mulige forbedringer sendes da til utvikleren.
- Godkjenningstesting - Også under omfanget av svart boks testing testes klienten programvare for å finne ut om utvikleren har opprettet programmet til ønsket spesifikasjon.
Testtyper
Disse programvaretester fokuserer på bestemte mål.
- Installasjonstesting - Programvaretestingeniør og konfigurasjonsleder utfører denne testen for å sikre at sluttbrukeren kan installere og kjøre programmet. Den dekker områder som installasjonsfiler, installasjonssteder og administrative rettigheter.
- Utviklingstesting - Dette implementerer en rekke synkroniserte strategier for å oppdage og forebygge feil. Den inkluderer statisk kodeanalyse, peer code reviews, sporbarhet og metrisk analyse. Målet er å redusere risiko og spare kostnader.
- Usability testing - Brukeropplevelse kommer under søkelyset med denne testen. Det måler hvor godt GUI er designet og brukervennlighet. Testen kontrollerer nøyaktighet og effektivitet av funksjoner og de emosjonelle responsene til testpersonene.
- Sanity testing - Dette indikerer om programvaren er verdt tiden og kostnaden for å fortsette ytterligere tester. For mange feil og mer aggressive tester følger ikke.
- Røktesting - Røyktesting avslører grunnleggende feil som er alvorlige nok til å forhindre utgivelse. Når dette utføres på en ny bygg, kalles det en byggverifikasjonstest.
- Regresjonstesting - Når systemet gjennomgår endring, overvåker regresjonstesting uventet oppførsel. Det peker på bivirkninger på moduler eller komponenter.
- Destruktive testing - Testere skriver unormale oppføringer og skiller programvarens evne til å håndtere uventet inngang. Dette viser utviklere hvor robust programmet er ved feilhåndtering.
- Gjenopprettingstesting - Når maskinvare eller andre funksjoner feiler, viser denne testen hvor godt programvaren kan gjenopprette og fortsette driften.
- Automatisert testing - Dette gjør funksjoner vanskelig å implementere manuelt. Den bruker spesifikk programvare for å kjøre testene og gi data om faktiske versus forventede resultater.
- Kompatibilitetstesting - Programvaren må kjøre i forskjellige databehandlingsmiljøer, slik at dette kontrollerer kompatibilitet med forskjellige systemer. For eksempel fungerer programvaren med ulike operativsystemer og nettlesere?
- Ytelsestesting - Dette er en grundig test som undersøker programvareytelsen i ulike scenarier. Informasjon om respons, stabilitet, ressursallokering og hastighet samles. Videre spiller delforsøk som volum-, kapasitets- og spikttesting en rolle i denne prosessen.
- Sikkerhets testing - Dette måler programvarens evne til å beskytte brukernes sikkerhet. Dette betyr autorisasjonsfunksjoner, autentisering, konfidensialitet, integritet, tilgjengelighet og ikke-avvisning.
- Tilgangstesting - Dette er ikke det samme som brukervurderinger. Dette bestemmer i hvilken grad brukerne av ulike evner - læring og fysiske funksjonshemminger inkludert, kan bruke programvaren.
- Internasjonalisering og lokaliseringstesting - Resultatene viser hvordan programvaren kan tilpasse seg ulike språk og regionale krav. Dette inkluderer å legge til komponenter for bestemte steder og oversette tekst.
Programvare testing er en viktig del av å bringe et produkt til markedet. Og uten testere ville det store spekteret av tilgjengelig programvare ikke eksistere. Bli en sertifisert software tester gjennom organisasjoner som BCS, The Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) og ASQ (tidligere American Society for Quality).