Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Automated Testing Tool & When to Stop Testing

Liknende presentasjoner


Presentasjon om: "Automated Testing Tool & When to Stop Testing"— Utskrift av presentasjonen:

1 Automated Testing Tool & When to Stop Testing
Gruppe 5 består av: Cecilie Vitting – Marit S. Asklien - Terje Dahl - Lars-Gøran Larssen - Ole Henrik Leister - Presentasjonen og tilleggsnotater ligger her: home.no/gruppe5/presentation

2 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Introduksjon Kodeanalysering kan deles i to grupper: Statisk analysering og dynamisk analysering. Statisk analysering: Programmet blir analysert før det kjøres. Dynamisk analysering: Programmet bli analysert mens det kjører. I begge tilfeller returneres informasjon om koden eller testen som blir kjørt. Vi kan dele verktøy for kodeanalysering i to grupper: Statisk analysering og dynamisk analysering. Statisk analysering gjøres før programmet blir kjørt, dynamisk analysering skjer mens programmet kjører. Begge former returnerer informasjon om koden eller testen som blir kjørt. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

3 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Statisk analyse I statisk analyse deles verktøyet som sjekker riktigheten av programmet inn i fire deler: Kodeanalysering: Komponentene blir evaluert for riktig syntaks. Struktur sjekking: Genererer en graf fra komponentene som er input. Dataanalysering: Inspiserer datastrukturen, data deklarasjoner og komponent grensesnitt. Sekvens sjekking: Her blir sekvensene av eventene sjekket. Kodeanalysering: Komponentene blir evaluert for riktig syntaks. Statements med feil syntaks kan f.eks. bli fremhevet, det samme hvis et dataelement ikke har blitt definert osv. Eks. En kodeanalyser kan generere en symboltabell som merker seg hvor en variabel førts ble definert og hvor den er brukt. Struktur sjekking: Dette verktøyet genererer en graf fra komponentene som er input. Grafen avbilder den logiske strømmen og sjekker etter strukturmangler. Eks. En struktursjekker kan lese et program og finne alle løkkene, merke alle statements som aldri blir kjørt, finne alle forgreninger fra en løkke osv. Dataanalysering: Verktøyet her inspiserer datastrukturen, data deklarasjoner og komponent grensesnitt. Deretter merker den feilaktig forbindelse blant komponentene, datadefinisjoner i konflikter og ulovlige dataanvendelse. Eks. En dataanalyserer kan melde i fra når nevner i en brøk blir satt til 0. Den kan også sjekke om argumenter i subrutinene er godkjent. Sekvens sjekking: Her blir sekvensene / rekkefølgen av eventene sjekket. Hvis de er kodet i feil sekvens, blir eventene fremhevet. Eks. Input og output komponenter av et system kan være underordnet til en sekvenssjekker for å avgjøre om eventene er kodet i korrekt rekkefølge. F.eks. kan en sekvenssjekker forsikre at alle filer blir åpnet før de blir modifisert. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

4 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Statisk analyse Det er vanlig at outputen i statisk analyse er måling- og struktur karakteristikker. Eksempel: Flytgrafer som viser alle mulige stier gjennom programmet. Her ser vi et eksempel på outputen fra statisk analyse: Det er vanlig at outputen i statisk analyse er måling- og struktur karakteristikker. På den måten får man en bedre forståelse for programmets atributter. Eksempel her er Flytgrafer som viser alle mulige stier gjennom programmet. Her ser vi et eksempel på outputen fra statisk analyse: [BILDE] Her blir innstillingene sammenliknet for en bestemt del av koden med en større database av historisk informasjon. Sammenlikningen involverer ikke bare målinger slik som dybde av nesting, koblinger og antall beslutninger, men også informasjon om potensielle feil og variabler som ikke er inninsitert. En slik fremstilling forteller oss hvor enkel testing kan være og advarer oss mot mulig feil som vi antakelig ønsker å fikse før formelle tester blir kjørt. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

5 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Dynamisk analyse Denne formen for analysering brukes ofte i forbindelse med real-time systemer. Vanskelig å lage realistiske testverktøy Automatiserte verktøy brukes for å ”fange” tilstanden til eventene i løpet av kjøringen av et program. Kalles også ”program monitorer” da de passer på og rapporterer programmets oppførsel. Man får en del statistikk og informasjon som forteller om systemets tilstand. Denne formen for analysering brukes ofte i forbindelse med real-time systemer der det er mange prosesser som foregår samtidig. Her kan det være vanskelig å lage realistiske testverktøy. Automatiserte verktøy muliggjør test-gruppen å ”fange” tilstanden til eventene i løpet av kjøringen av et program ved å bevare et øyeblikk av tilstanden. Disse verktøyene kalles også ”program monitorer” fordi de passer på og rapporterer programmets oppførsel. En monitor kan liste opp antall ganger en komponent er kalt eller en linje av kode har blitt kjørt. Denne statistikken forteller inspektørene om tilstanden eller sti-dekningen av deres testtilfeller. Man får dermed en god del statistikk og informasjon som forteller om systemets tilstand. Man kan også la variablene skifte verdi under testene for å se hvordan programmet reagerer på ulike input. I tillegg kan man sette avbruddspunkter for at testverktøyet kan returnere forekomsten av verdier. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

6 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Test-Eksekveringsverktøy Verktøy for å automatisere planleggingen og kjøring av testene. Capture and Replay: Man spesifiserer i en ”testramme” hva slags input som vil bli levert og hva slags resultat som er forventet fra tilstanden som blir testet. ”Fanger” tastetrykk, input og responsen ettersom testene blir kjørt. Sammenlikner forventet resultat med faktisk resultat. Brukes f.eks. når man har funnet en feil og ønsker å sjekke at feilen har blitt rettet uten og introdusere nye feil. Dette er verktøy for å automatisere planleggingen og kjøring av testene. Capture and Replay: Når tester blir planlagt må testgruppen spesifisere i en ”testramme” hva slags input som vil bli levert og hva slags resultat som er forventet fra tilstanden som blir testet. Capture and Replay verktøy ”fanger” tastetrykk, input og responsen ettersom testene blir kjørt. Verktøyet sammenlikner forventet resultat med faktisk resultat. Denne måten å teste på er nyttig når man har funnet en feil og ønsker å sjekke at feilen har blitt rettet uten og introdusere nye feil. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

7 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Test-Eksekveringsverktøy Stubs and Drivers: En driver kan: Sette alle passende tilstandsvariabler til å forberede et gitt testtilfelle, og deretter kjøre testen. Simulere keyborad input og andre datarelaterte responser til tilstander. Sammenlikne faktisk resultat med forventet resultat og rapportere forskjellen. Spore hvilken sti som har blitt traversert gjennom eksekvering. Nullstille variabler for å forberede neste test. Virke sammen med en debugging-pakke, slik at feil kan bli sporet og reparert. En driver kan sette alle passende tilstandsvariabler til å forberede et gitt testtilfelle, og deretter kjøre testen. Simulere keyborad input og andre datarelaterte responser til tilstander. Sammenlikne faktisk resultat med forventet resultat og rapportere forskjellen. Spore hvilken sti som har blitt traversert gjennom eksekvering. Nullstille variabler for å forberede neste test. Virke sammen med en debugging-pakke, slik at feil kan bli sporet og reparert. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

8 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Automatiserte testmiljøer Test-eksekverings-verktøy kan bli integrert med andre verktøy for å danne et omfattende testmiljø. Kan f.eks. kobles sammen med en testing-database, måleverktøy, kodeanalyserings-verktøy, teksteditorer og simulerings- og modellerings verktøy. Test-eksekverings-verktøy kan bli integrert med andre verktøy for å danne et omfattende testmiljø. Verktøy som er beskrevet her er koblet sammen med en testing-database, måleverktøy, kodeanalyserings-verktøy, teksteditorer og simulerings- og modellerings verktøy for å automatisere så mye av testprosessen som mulig. Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

9 Automated Testing Tools
Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Test Case generatorer Testing avhenger av en grundig definisjon av testtilfellene. Derfor er det nyttig å automatisere deler av test-case- genererings-prosessen, slik at man er sikker på at man dekker alle mulige situasjoner. Testing avhenger av en grundig definisjon av testtilfellene. Av den grunn er det nyttig å automatisere deler av test case genererings prosessen, slik at man er sikker på at man dekker alle mulige situasjoner Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

10 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]
When to Stop Testing Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Når slutter man å teste? Når det ikke er mer feil i programmet! Hvordan vet man at det ikker er flere feil i programmet?.. Hvordan vet man hvor mange feil et program inneholder?... Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

11 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]
When to Stop Testing Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Ulogisk sammenheng mellom antall feil funnet og antall feil ikke funnet: Sannsynlige antall feil totalt Antall feil funnet Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

12 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]
When to Stop Testing Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet “Fault seeding” Antall innsatte feil funnet = Antall andre feil funnet Antall innsatte feil totalt Antall andre feil totalt Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

13 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]
When to Stop Testing Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Effektivitetsberegning 2 grupper jobber separat: Gruppe 1 finner 25 feil Gruppe 2 finner 30 feil 15 av feilene er de sammen for gruppe 1 og 2 E1 = 15 / 30 = 0,5 E2 = 15 / 25 = 0,6 Antall feil i programmet totalt: 15 / (0,5 x 0,6) = 50 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]

14 Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]
When to Stop Testing Slideoversikt: Om Gruppe 5 Introduksjon Statisk analyse SA: Eksempel Dynamisk analyse TE: Capture and Replay TE: Stubs and Drivers Automatiserte testmiljøer Test Case generatorer When to Stop Testing Ulogisk sammenheng Fault seeding Effektivitetsberegning Trygghet på feilfrihet Hvor trygg kan en være på feilfrihet i programvaren? S = innsatte feil N = ”naturlige” feil Trygghetsgrad = S / ((S – N) + 1) Software Engineering: Gruppe 5 [home.no/gruppe5/presentation]


Laste ned ppt "Automated Testing Tool & When to Stop Testing"

Liknende presentasjoner


Annonser fra Google