Grunnleggende testteori

Slides:



Advertisements
Liknende presentasjoner
Teknologi i klasserommet
Advertisements

STATISTISK KVALITETSSTYRING
Knutepunktsimulering
Brukertesting •Lærefil fra •© 2004 Nina Furu.
Tema 7 FAG- OG SVENNEPRØVER
Endringsstyring Change Management.
Høgskolen i Oslo - GM Vær metodisk  Definer og forstå problemet  Spesifiser hva du har av hardware  Lag en prototyp av brukersnittet  Design.
- Avslutningsseminar prosjekt Fallende gjenstander
Risikovurdering Systematisk HMS – arbeid dreier seg om mestring av risiko, for å unngå skader og sykdom Mestring av risiko- redusere eller fjerne.
Gjennomføring av prosjekter
Dokumentasjon og Planlegging av større IT-prosjekter
Målinger generelt •I et moderne samfunn brukes målinger i mange ulike sammenhenger •Eksempler: –Sammenligne priser, lønninger –Høyde: størrelse på klær.
Forbedringsprosjektet
Levende HMS-system – hva betyr det i praksis?
1 Validering og verifisering Kirsten Ribu I dag Validering og verifisering Inspeksjon Testing.
Validering og verifisering
23. januar 2004TDT4285 Planl&drift IT-syst1 Tjeneroppgraderinger TDT4285 Planlegging og drift av IT-systemer Anders Christensen, IDI.
Usikkerhet skal integreres i prosjektstyringen
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Skisse til løsningsforslag
1 Oppgave gjennomgang Kap Oppgaver -Kap 12: 1, 2, 3, 5, 7, 8, 11, 18, 19.
EVALUERING AV PRODUKTER, PROSESSER OG RESSURSER. Gruppe 4 Remi Karlsen Stian Rostad Ivar Bonsaksen Jonas Lepsøy Per Øyvind Solhaug Andreas Tønnesen.
Gruppe 9 Design evaluering og validering.
Verifikasjon og validering
1 KravprosessenKravprosessen Noen sentral punkter.
Utført av: Jeppe Flensted HiST Vår 2009
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Konstruksjoners sikkerhet
Human Factors (HF) i kontrollrom - En revisjonsmetode 2003
Human Factors i boring og brønn
Empiriske metoder Oppgaveanalyse, observasjon
 Utvikler eller arkitekt, du er også designer! Ketil Storvik.
Presentasjon  SW faults og failure/testing issues –Gruppe 1 Petter Therese Kjell Gunnar Christian Eva.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Testing av system Gruppe 6 Henrik Bækhus Morten A. Iversen Mathias Bondeson Gunnar K. Kulleseid Svein Ivar Kristiansen Ronny Hulthin.
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Improving Products Gruppe Presenteres av : Hege-Kristin Johansen Herman Kolås Marianne Ates Marit Finden Jonas Lillevold André Johansen Tom.
Automated Testing Tool & When to Stop Testing
HMS i de lokale og regionale energibedriftene Hvordan ivaretar bedriftene helse, miljø og sikkerhet? KS Bedriftenes Møteplass 2011, 17.februar.
Oppfølging og kvalitetssikring
Er det registrert Avvik til planen? Er det identifisert Risiko?
ERISK på 1, 2, 3… Risikovurdering for å redusere omfang av byggefeil i elektriske og tekniske installasjonsleveranser mot boligmarkedet
Konfigurasjonsstyring Configuration Management
Hvorfor bruke tid på testing ?
Hvordan skal vi som ledere bekjempe økonomisk kriminalitet i Bydel Sagene? Økonomisk kriminalitet benevnes heretter: økkrim.
1 Oppgave gjennomgang Kap. 1 og 2. 2 Oppgaver -Kap 1: 5, 6, 7, 10, 12, 16, 22 og 25 -Kap 2: 2, 6, 10, 12, 13, 14 og 20.
Testing av objektorienterte systemer Testplanlegging
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Spørsmål og aktiviteter på ulike nivåer
Prosjektavslutning og sluttrapport
Maintenance problems - Measuring Maintenance characteristics Software Engineering Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Thomas Julsen Kjartan Haugen.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Objektorientert utforming In 140 Sommerville kap. 12.
Planlegge og prioritere tiltak
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Objektorientert design
Finne feil - Debugging Introduksjon til sortering.
Presentasjon av Valgrutiner. Kommunal- og regionaldepartementet Innhold Hva er Valgrutiner? Bakgrunn og hensikt Verktøy og standarder Oppbygging og innhold.
1 Utvikling av kritiske systemer Kort sammendrag Kap. 1 og 2.
Introduksjon til in 140 Systemering. In 140 Systemering Forelesninger Rom 112 –Mandag –Torsdag Lærebok: –Sommerville, Ian. Software.
Kvalitetssikring. er alle tiltak som er nødvendig for å sikre at et produkt vil tilfredsstille angitte krav til kvalitet og trygghet Kvalitetsarbeid krever.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
ROS-analyse.
Oift Fartøyvernets ABC Kostnadsoverslag. Fartøyvernets ABC KOSTNADSOVERSLAG Er det noen vits i å få et kostnadsoverslag på en jobb som skal utføres? Hvorfor.
Prosjekt ERP i Troms Kraft Beskrivelse prosjektfaser og overordnede prosesser
Kvalitet, risiko og avvik
ROS-analyse.
First Level Controller
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Utskrift av presentasjonen:

Grunnleggende testteori

Error-Fault-Failure Error : Fault (defect eller bug): Failure: når en programmerer koder feil eller utelater kode (evt. miljøpåvirkning) årsaken til en fault Fault (defect eller bug): feil i kode kan lede til failure dersom koden der den befinner seg eksekveres Failure: uoverensstemmelse mellom aktuell oppførsel og forventet oppførsel vi må vite hva forventet oppførsel er (definert i spesifikasjon /krav) forårsakes av faults

Testing er ikke debugging Testing vs. debugging Testing er ikke debugging Hensikten med testing er å: Systematisk kjøring av programmet for å påvise/finne failures (indikerer tilstedeværelse av faults) Kjøre programmet for å vurdere kvaliteten Kjøre programmet for å vurdere om det er til å stole på(confidens) Analysere program kode eller dokumentasjon for å hindre faults Spare penger Hensikten med debugging er å: Lokalisere og rette faults Lokalisere fault Rette og fjerne fault Teste rettingen slik at ikke nye faults er introdusert

Den første bug 9. september 1945 fant forskere ved Harvard universitetet årsaken til at Mark II Aiken Relay kalkulatoren oppførte seg så merkelig. En møll ble funnet fanget mellom punkter på relé #70, panel F. Maskinen ble ”debugget” med en pinsett! Hendelsen ble logget som ”First actual case of bug being found.” med møllen tapet inn I dokumentet.

Testing I Systematisk eksekvering av programmet under kontrollerte betingelser for å demonstrere korrekt implementasjon av kravene øke tilliten til programmet finne failures  Dynamisk testing I tillegg inkluderer testing statiske metoder Statisk analyse av software ved bruk av verktøy. Manuell sjekking av programkode, dokumentasjon og andre beskrivelser  Statisk testing

Testing II Fullstendig testing av hele systemet er som oftest umulig. Testing kan derfor aldri dokumentere fravær av faults, bare at de ikke har opptrådt under testingen. Hvor mye et system skal testes avhenger av systemets risiko. I tillegg spiller tid og ressurser inn.

Mål for programkvalitet – summen av alle kvalitetskriteriene Testing: bidrar til å forbedre softwarekvalitet Men er også et mål for softwarekvalitet Følgende faktorer hører til under softwarekvalitet: Funksjonalitet: oppfylle kravene Sikkerhet Pålitelighet (reliability) Brukervennlighet (usability) Effektivitet Drift, Vedlikehold og Maskinplattform Det er ofte en konflikt mellom disse faktorene og det er nødvendig å prioritere mellom dem.

Den grunnleggende testprosessen Kronologisk beskrivelse av alle testoppgavene som skal gjennomføres Hver testoppgave må splittes i mindre oppgaver og spesifiseres nøyaktig planlegging og kontroll analyse og design implementasjon og gjennomføring evaluering og rapportering avslutning Selv om det logisk sett ser ut som om disse aktivitetene bør inntreffe etter hverandre, kan aktivitetene overlappe eller inntreffe samtidig.

1. Testplanlegging og kontroll Mål for testingen må defineres. Bruk av ressurser må planlegges (ansatte, utstyr, tid). Alt må dokumenteres i en testplan. Avvik må rapporteres. Hovedmålet er å sette opp en teststrategi.

Teststrategi Optimaliser fordelingen av tester til de delene av systemet som trenger det mest. Avklar hvilke testteknikker som skal benyttes Definer testintensitet (avslutningskriterier) for delsystemene. Avhenger av: hvilken testdekning som ønskes hvilke testeteknikker som benyttes

2. Testanalyse og design Vurder spesifikasjonen for å finne ut hva som bør testes. Lag logiske testtilfeller fra: Spesifikasjon til testobjektet(black-box) Kildekoden (white-box) Logisk testtilfelle Definer betingelser Definer forventet resultat Lag testtilfeller for både forventet og ikke-forventet input. Design test-bed /testeomgivelser.

3. Testimplementasjon og gjennomføring Transformer logiske testtilfeller til konkrete testtilfeller. Konkret testtilfelle: Velg en verdi Vurder hvilket logisk tilfelle verdien tilhører Utfør testen Vurder om virkelig resultat stemmer med forventet logisk resultat i testtilfellet Logg og mål testdekning.

Eksempel – logisk og virkelig Testnummer Inputverdi Forventet verdi(%) 1 X <= 3 2 3 < X <= 5 50 3 5 < X <= 8 75 4 X > 8 100 7 12

4. Evaluering og rapportering Testobjektet vurderes mot de kriteriene som ble satt i planleggingen. Kriterier for å avslutte testingen: Testdekning Feildeteksjonsrate Tid og kostnader Skriv testoppsummeringsrapport

5. Avslutning Erfaringer underveis bør analyseres og gjøres tilgjengelig for videre prosjekter Spesielt avvik mellom planen og testevirkeligheten, samt de antatte årsakene. Testetilfeller, testelogger, testinfrastruktur, verktøy etc. bør gis til de som er ansvarlig for vedlikehold.

Testingens 7 grunnregler 1. Tester påviser feil, ikke feilfrihet 2. Fullstendig testing er umulig 3. Testing skal starte så tidlig som mulig 4. Feil hoper seg opp 5. Tester mister effekten 6. Tester er kontekstavhengige 7. Et feilfritt system trenger ikke være et nyttig system

1 – Tester påviser feil, ikke feilfrihet Testing kan vise om programmet inneholder feil – ikke om programmet er feilfritt Riktig utførte tester reduserer sannsynligheten for at det foreligger skjulte feil Selv om en ikke finner feil med testing betyr ikke det at programmet er feilfritt

2 – Fullstendig testing er umulig En fullstendig test der alle inputs og kombinasjoner testes mot alle forutsetninger lar seg ikke gjennomføre En fullstendig test av et IT-system vil føre til alt for mange tester i forhold til gevinsten Utfordringen er å utføre et riktig utvalg tester med hensyn til prioritering og risiko

3 – Testing skal starte så tidlig som mulig Testaktivitetene bør starte så tidlig som mulig i utviklingsfasen og fokusere på definerte mål. Dermed finnes feilene tidligst mulig og kostnadene ved å rette dem blir minst mulige

4 – Feil hoper seg opp Ofte skjer en opphopning av feil i systemet Feil er vanligvis ikke jevnt eller tilfeldig fordelt i systemet men kommer i klynger Om det finnes mange feil ett sted i systemet finnes det også trolig flere i nærheten Påstandene er ikke allmenngyldige

5 – Tester mister effekten Dersom en test gjentas mange ganger mister den effekten og nye feil påvises ikke Tester må omarbeides og tilpasses for å finne nye feil Deler av systemet som verken er testet eller brukt kan dermed bli testet og nye feil kan finnes

6 – Tester er kontekstavhengige Testen må tilpasses bruk og omgivelser for systemet (risikoene tilknyttet bruk av det enkelte systemet) To systemer skal ikke testes på samme måte Hvert system skal testes individuelt avhengig av bruk, brukere og omgivelser Sikkerhetskritiske systemer trenger andre tester enn for eksempel et butikksystem

7 – Et feilfritt system trenger ikke være et nyttig system Å finne og rette feil betyr ikke at systemet oppfyller kravene som er satt eller er brukbart i en virksomhet Å involvere brukere tidlig i utviklingen og bruke prototyper for å vurdere løsninger er forebyggende tiltak for å unngå problemer

Oppsummering Testing er viktig for å kvalitetssikre utviklingsprosessen Den grunnleggende testprosessen består av: planlegging og kontroll analyse og design implementasjon og gjennomføring evaluering og rapprtering avslutning Et testtilfelle består av input, forventet resultat og virkelig resultat Mennesker gjør feil Testingens 7 grunnregler er viktige retningslinjer