Alt du trenger å vite om programvaretestingsmetoder
- 3427
- 135
- Mikkel Hagen
Før programvare sendes til offentlig eller kommersiell bruk, bruker programmerere timer på å stryke ut hver feil, med produktet som er igjen i limbo til alle interessenter er fornøyde.
Silicon Valley-programvaregiganter som Google og Facebook vil ofte sende populære produkter til markedet til tross for programvarens lavprioriterte feil. Investorer og millioner av lojale brukere tåler programvareoppdateringer og midlertidige knekk i produkter disse selskapene tilbyr.
De fleste programvareselskaper har ikke denne luksusen. Kunder vil at produkter skal utføre som annonsert og er med rette skremt hvis det er uadresserte sårbarheter.
Hvorfor er testferdigheter nødvendige?
Med så mange tilgjengelige programmer for programvareutvikling, tenker ikke kundene to ganger om å hoppe skip hvis produktet stinker av bortkastet tid og penger. Programvarevirksomheter må utføre streng testing på produktene sine før de slipper dem til kunder. Disse testene gir følgende innsikt:
- De fremhever forskjeller mellom det opprinnelige konseptet og den endelige utgangen.
- De bekrefter at programvaren fungerer som designerne planla.
- De vurderer funksjoner og kvalitet.
- De validerer at sluttproduktet oppfyller kundens krav.
Testing følger en streng blåkopi for å optimalisere arbeidsmengden, tid og penger mens du gir interessenter viktig informasjon for å flytte produktet fremover. Målet er å lette en positiv sluttbrukeropplevelse ved å holde et grundig kvalitetssikringsprogram (QA) -program. Gitt de høye innsatsene for utviklere, er QA -ledere noen av de beste inntektene i teknologibransjen. Testing følger vanligvis disse trinnene:
- Gjennomføre en kravanalyse, der ledere skisserer en plan for å sette en passende teststrategi på plass.
- Begynn tester og analyser resultatene.
- Rett eventuelle feil og sett programvaren gjennom regresjonstesting (et system for å sjekke at programmet fremdeles fungerer etter endringer).
- Lag en testnedleggsrapport som beskriver prosessen og resultatene.
Enkeltpersoner kan bli sertifiserte programvaretestere gjennom BCS, Chartered Institute for IT, ISTQB (International Software Testing Qualifications Board) og ASQ (American Society for Quality).
Programvaretestingsmetoder
Testing av svart / hvitt boks er to grunnleggende metoder for å bedømme produktatferd og ytelse. Black Box Testing, også kalt funksjonell eller spesifikasjonsbasert testing, fokuserer på utgang. Testere er ikke opptatt av de interne mekanismene. De sjekker bare at programvaren gjør det den skal gjøre. Kunnskap om koding er ikke nødvendig, og testere jobber på brukergrensesnittnivå.
Hvit boks testingBruker kodingsopplevelse som en del av testprosedyren. Når et produkt mislykkes, går testere dypt inn i koden for å finne årsaken. Programvareutviklere vil gjøre dette selv fordi klienter forventer at de skal lage et produktarbeid. Testing av hvit boks blir også referert til som "strukturbasert" eller "glassboks" -testing.
Statisk testing undersøker kildekoden og eventuell tilhørende dokumentasjon, men utfører ikke programmet. Statiske tester starter tidlig i produktets utvikling under bekreftelsesprosessen.
Dynamisk testing bruker forskjellige innganger når programvaren kjører, og testere sammenligner utganger med forventet oppførsel. Grafisk brukergrensesnitttesting evaluerer tekstformatering, tekstbokser, knapper, lister, layout, farger og andre grensesnittelementer. GUI-testing er tidkrevende, og tredjepartsbedrifter tar ofte på seg oppgaven i stedet for utviklere.
Testnivåer
Ulike testnivåer brukes til å identifisere svakhetsområder og overlappe i hver fase av programvareutviklingens livssyklus. Testnivåene er:
- Enhetstest
- Integrasjonstesting
- Systemtesting
- Aksepttesting
Når enhetstesting, tester utviklere de mest grunnleggende kodedeler, for eksempel klasser, grensesnitt og funksjoner/prosedyrer. De vet hvordan koden deres skal svare og kan gjøre justeringer avhengig av utgangen.
Integrasjonstestinger også kjent som "modul" eller "program" -testing. Det ligner enhetstesting, men inneholder et høyere integrasjonsnivå. Moduler av programvaren er testet for feil for å bekrefte deres funksjon. Integrasjonstesting identifiserer feil når modulene integrerer. Ulike metoder for integrasjonstester inkluderer "bottom-up", "top-down" og "funksjonell inkrementell".
Systemtestingstester komponenter i et prosjekt som helhet i forskjellige miljøer. Systemtesting faller under Black Box -metoden og er en av de endelige testene i prosessen. Det vil avgjøre om systemet er forberedt på å imøtekomme forretnings- og brukerbehov.
Det er vanligvis to typer akseptstesting. I alfatesting blir programvaren utført internt på utviklerens nettsted i et simulert eller faktisk miljø. Programvaren kjører som om levende sluttbrukere brukte den. Utviklere gjør notater om eventuelle problemer og begynner å rette opp feil og andre problemer.
Også under omfanget av svart-boks-testing, i akseptstesting, testprogramvare for å finne ut om utvikleren har utviklet programmet fullt ut for å passe til de ønskede spesifikasjonene.
Betatesting, eller felttesting, lar klienter teste produktet på nettstedene sine under reelle forhold. Klienter kan tilby en gruppe sluttbrukere muligheten til å teste programvaren via pre-release eller beta-versjoner. Betatesting tar sikte på å få faktisk tilbakemelding fra brukeren, som sendes til utvikleren.
Testtyper
Ulike typer programvaretester er designet for å fokusere på spesifikke mål. Testingeniøren og konfigurasjonsbehandleren bruker installasjonstesting for å sikre at sluttbrukeren kan installere og kjøre programmet. Den dekker områder som installasjonsfiler, installasjonssteder og administrative privilegier.
Utviklingstesting implementerer en rekke synkroniserte strategier for å oppdage og forhindre feil. Det inkluderer statisk kodeanalyse, jevnaldrende kodevurderinger, sporbarhet og beregningsanalyse. Målet er å redusere risikoen og spare kostnader.
Brukeropplevelse kommer under søkelyset med brukervennlighetstesting. Den måler hvor enkelt GUI er å bruke. Det sjekker nøyaktigheten og effektiviteten til funksjoner og de emosjonelle responsene til testpersonene.
En sunnhetstest indikerer om programvaren er verdt tid og kostnad for å fortsette ytterligere tester. Hvis det er for mange feil, vil ikke mer aggressive tester følge.
Sanity -testing gjøres i løpet av programvarenes utgivelsesfase, der røykstesting gjøres for å se om programvaren vil kjøre nok til å være testbar.
Røykstesting avslører grunnleggende feil som er alvorlige nok til å forhindre løslatelse. Når utviklere tester en ny bygning, kalles det en "build verification" -test. Når systemet gjennomgår modifisering, overvåker regresjonstestingsmonitorer uventet oppførsel. Det peker på bivirkninger på moduler eller komponenter.
Testere legger inn unormale oppføringer og skiller programvarens evne til å håndtere uventede innspill i destruktive tester. Dette viser utviklere hvor robust programmet er på feilstyring.
Når maskinvare eller andre funksjoner mislykkes, viser gjenopprettingstesting hvor godt programvaren kan gjenopprette og fortsette å operere.
Automatisering utfører funksjoner som er utfordrende å implementere manuelt. Testing innebærer å bruke spesifikk programvare for å kjøre tester og gi data om faktisk VS. Forventede resultater.
Programvaren må kjøres i forskjellige databehandlingsmiljøer, så kompatibilitetstesting sjekker hvordan programvaren reagerer på forskjellige systemer. For eksempel tester programmerere programvaren med forskjellige operativsystemer og nettlesere.
Tester må være omfattende og adressere alle kundens bekymringer, eller prosjektet blir raskt bortkastet ressurser.
Performance Testing undersøker programvareytelse i forskjellige scenarier. Informasjon om respons, stabilitet, ressursallokering og hastighet samles. Undertester som volum, kapasitet og piggprøving spiller en rolle i denne prosessen.
Sikkerhetstesting måler programvarens evne til å beskytte brukernes sikkerhet. Autorisasjonsfunksjoner, autentisering, konfidensialitet, integritet, tilgjengelighet og ikke-avvisning er alle eksempler på funksjoner som må testes.
Tilgjengelighetstesting er annerledes enn brukervennlighetstesting. Dette bestemmer i hvilken grad brukere av forskjellige evner kan bruke programvaren.
Internalisering og lokaliseringstestresultater viser hvordan programvaren kan tilpasse seg forskjellige språk og regionale krav. Dette inkluderer å legge til komponenter for spesifikke steder og tekstoversettelse.
- « Eksempel på anbefalingsbrev for en markedsføringsansatt
- 10 grunner til at hendelsesstyring er en ideell oppstartsmulighet »