tirsdag 26. mai 2015

Testing av programvare

Hva er testing? Hva er hensikten?
For en gitt input forventer vi en viss output. Hensikten med å teste er å vise at systemet gjør det systemet er ment å gjøre og å oppdage feil før systemet blir tatt i bruk. Testing beviser ikke at systemet er feilfritt men viser feil du oppdager under kjøring av testen.

Validering og vertifisering:
Validering: Bygger vi det riktige produktet?
-       Programvaren bør gjøre det brukeren virkelig ønsker
-       Fokus på hele systemet
-       Gjøres som regel i ekte og virkelige omgivelser

Vertifisering: Bygger vi produktet riktig?
-       Stemmer det med kravspesifikasjonen?
-       Fokus på komponent/delsystem
-       Gjøres som regel i laberatorum

Ulike former av utviklingstesting
Testing foregår under utviklingsfasen. Her er det en rekke ulike måter å teste på:
1.     Enhetstesting: Individuelle programenheter eller objektklasser testes. Fokus på å teste funksjonaliteten til objekter og metoder.
2.     Integrasjonstesting: Ulike individuelle enheter er integrert til sammensatte komponenter. Fokus på å teste grensesnitt til komponenter.
3.     Systemtesting: Noen eller alle komponenter i et system er integrert og systemet testes som en helhet. Fokus på å teste interaksjonen mellom komponentene.
4.      Akseptansetesting: brukere eller potensielle brukere tester systemet i egne omgivelser

Typer av test
Black Box testing
Black box testing er en metode eller strategi som tester funksjonaliteten  til et system i motsetning til interne strukturen eller kildekoden. Tester er bygd rundt spesifikasjoner og krav, det vil si, hva programmet er ment å gjøre. Black-box testing kan brukes på alle nivåer av programvaretesting. Det er en rekke fordeler ved black box testing. Det krever ikke programmeringskunnskaper, man kan bruke uavhenige testere som ikke har vært involvert i utviklingen, man unngår at testingen gjør samme antagelser som utviklerne og testing gjøres fra et brukerpersepektiv og kan avsløre mangler i kravspesifikasjonen.

Whitebox testing
White box testing tester interne strukturer eller kode i et program, i motsetning til black box testing som tester funksjonalitet. Programmeringskunnskaper kreves. Brukes vanligvis under enhetstesting, men også systemtesting og integrasjonstesting. Fordeler: kan gjøres tidlig i systemet, testingen er grundig, optimaliserer koden, fjerner unødvendig kode. Ulemper: krever prog.kunnskaper, kan kun utføres av involerte utviklere,

Testdrevet utvikling (TDD:
1.     En tilnærming der testing og koding gjøres pararellt.
2.     Kode utvikles i steg (inkrementelt) sammen med en test for hvert inkrement. Går ikke vidre til neste inkrement før koden ”passerer” testen.
3.     TDD var i utgangspunkt en del av smidige Xp men brukes også i plandreven utvikling.

Ingen kommentarer:

Legg inn en kommentar