Statisk testing Testing uten datamaskin, men med vår egen evne til å vurdere og analysere
Hva er statisk testing Analyser som utføres på skrevne dokumenter Hensikten er å finne avvik fra spesifikasjonene Resultatene kan brukes til å optimalisere utviklingsprosessen og gi innspill til den dynamiske testingen
Testtyper Strukturerte gruppegjennomganger Reviews Gjennomganger, inspeksjoner Statiske analyser Bruke compilere for å kontrollere syntaks og variabler Teste konvensjoner og standarder Utføre dataflytanalyse Utføre kontrollstrukturanalyse Definere metrikker
Reviews - gjennomsyn Alle dokumenter kan gjennomgås Hensikten er å oppdage avvik mellom de forskjellige dokumenter i utviklingsfasen
Dynamisk testing Kjøring av testobjektet på en datamaskin
Hva er dynamisk testing? Kjøring av testobjektet på en datamaskin Hensikten er å finne avvik fra forventede verdier eller bekrefte verdier Uferdige deler av programmet erstattes av testomgivelser, driver og stub Enkle moduler testes som White-box Kompliserte moduler testes som Black-box Testdataene deles i ekvivalensklasser
Forløp Avklare forutsetninger og mål Beskrive de aktuelle testtilfeller Avklare hvordan testen skal gjennomføres Gjennomføre testingen Dokumentere testingen Rapportere Graden av formalitet avhenger av hvordan testen skal brukes i fremtiden
Testomgivelser Test bed Alle omgivelser testobjektet trenger for å testes Testobjekt Programenheten som skal testes Driver Programmet som kaller testobjektet Stub Programmet som kalles av testobjektet PoC Point of Control - input PoO Point of Observation output White box testing Tester strukturen Black box testing Tester funksjonalitet
White-box testing - strukturtesting Kildekoden er kjent White-box testing forutsetter kjennskap til den indre struktur og virkemåte til programmet som testes. Brukes mest i enhetstestene av de ulike modulene. Enhetstesten for egenutviklede moduler bør være whitebox testing Enhetstester for hyllevare og gjenbrukmoduler bør være black-box tester. Dermed testes grensesnittet til modulen som er de ulike funksjonene som er tilgjengelige i grensesnittet til modulen. For enhetstesten er utvikleren testansvarlig og bør utføre testen.
White-box testing - strukturtesting Andre navn Glass-box, Clear-box Målet er å teste alle programsetninger Egnet for små programmoduler Analysere kode for å identifisere ekvivalensklasser
Verifisering og validering Verifisering er å sikre at produktet utfører alle operasjoner korrekt Validering er å sikre at produktet tilfredsstiller alle kravene kunden har beskrevet
Black-box testing - funksjonstesting Kildekoden er ukjent Black-box testing betrakter programvaren som en svart boks og kjenner bare grensesnittet mot omverdenen. Brukes til integrasjonstester, systemtester og akseptansetesten Testene utledes fra spesifikasjonen Kan brukes på alle systemer og nivåer Gi systemet inndata, kontroller utdata Viktig å finne inndata som fører til feil eller bekrefter at funksjonen fungerer riktig Bruke kunnskaper om anvendelsesområdet Gjennomføre systematiske testdatautvalg
Ekvivalensklasser Systemets inndata deles i grupper (klasser) En ekvivalensklasse er en datamengde der alle elementene behandles likt ekvivalensklasser kan identifiseres fra spesifikasjonen Tommelfingerregel Velg data som ligger godt inne i ekvivalensklassen og på grensen Grenseverdier blir ofte behandlet feil av programmet.
Utfordringer ved Black-box testing Parametere kan ha feil rekkefølge og type Feil kan oppstå på grunn av feil i testomgivelsene test bed altså utenfor modulen som testes for eksempel i en driver eller en stub
Oppsummering Statisk testing skjer uten datamaskin Gjennomgang av dokumenter Dynamisk testing skjer med datamaskin De mest brukte systemdelene testes grundigst White-box testing utføres for å finne eksekveringsveier Black-box testing utføres uten kildekode Testdataene deles i ekvivalensklasser Testing med grenseverdier finner ofte feil