Grunnleggende testteori

Like dokumenter
Grunnleggende testteori

Grunnleggende testteori. Etter Hans Schaefer

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

Repetisjon av testing. Vi undersøker om systemet virker slik det skal

Repetisjon av testing. Vi undersøker om systemet virker slik det skal

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Livsløpstesting av IT-systemer

BlackBox, WhiteBox og andre testmetoder. Etter ønske fra studentene 26. november 2009

Validering og verifisering. Kirsten Ribu

GJENNOMGANG UKESOPPGAVER 9 TESTING

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Testing av programvare. INF1050: Gjennomgang, uke 08

Prosjektet - leveranser. Testing og evaluering av systemer. Hva er sikkerhetskritiske systemer? I dag: Systemfeil og testing. Robust kraftforsyning?

Inf1055 Modul B 26 april 2017:

Kirsten Ribu

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.

Kvalitet og programvare. Når bare det beste er godt nok. Produktet prosessen eller begge deler?

ISTQB Foundation Level Prøveeksamen

Testplan (Software Test Plan)

Test og kvalitet To gode naboer. Børge Brynlund

EKSAMEN. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

Testrapport Prosjekt nr Det Norske Veritas

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

Grunnleggende om Evaluering av It-systemer

Kravspesifikasjon MetaView

Software Test Plan. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Ansvarlig: Faglig ansvarlig for innhold og revisjon, Testseksjonen TestiT, Avd. for Tjenesteproduksjon HN IKT

Kirsten Ribu

Repetisjon om evaluering av It-systemer. Hvordan vurdere og verdsette?

Løsningsforslag Sluttprøve 2015

UKE 14 Versjonshåndtering og testing. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Kostnadseffektivt eller bortkastet tid? Øyvind Woll Seniorkonsulent, Vivento AS

Systemutvikling - oppsummering. Alexander Nossum blog.eksplisitt.net 22. mai 2006

UNIVERSITETET I OSLO

Verifikasjon og validering

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Ifi. Spørsmålet Analoge Digitale Videre

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011

Krav som bør stilles til leverandørens verifikasjon og test

RUTEPLANLEGGINGSSYSTEM TESTDOKUMENTASJON

Testrapport for Sir Jerky Leap

Characteristics of a good design

INF109 - Uke 1a

Testdekning og automatisering - Er 100% testdekning et mål?

Læringsmål og pensum. v=nkiu9yen5nc

Erfaring med funksjonell testing i en integrert ALM prosess

Introduksjon til evaluering av It-systemer. Hvordan vurdere og verdsette?

Konfigurasjonsstyring

Introduksjon til evaluering av It-systemer. Hvordan vurdere og verdsette?

Why Desperate Houswives make Excellent Test Managers Testprosjektet som suksessfaktor i et hvert prosjekt

Overordnet Testplan. MUSIT Ny IT-arkitektur, Pilot og Hovedprosjekt. Page 1 of 11

Brukskvalitet. Lett å bruke og samtidig nyttig

Brukskvalitet. Bruk og nytte av systemet

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Høgskoleni østfold EKSAMEN. Hjelpem idler: Faglærer: Kåre Sorteberg Ingen hjelpemidler. Monica Kristiansen

Forelesning i INF våren 2014 Hvordan jobber vi med evaluering? Tomm Eriksen Interaksjonsdesigner - Universitetet I Oslo

Krav. Beskriver tjenestene produktet skal håndtere Kravene kan testes

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12

Spørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Ledelsens gjennomgåelse Anne Grændsen Norsk akkreditering / Grændsen consulting

TDT4110 IT Grunnkurs Høst 2014

Kvalitetssikring av internasjonale IT-prosjekter innen bank og finans. Industrial Management

Kravhåndtering. INF1050: Gjennomgang, uke 03

AlgDat 10. Forelesning 2. Gunnar Misund

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Eksamensdato: 31. mai 2017 Eksamenstid 14:30-18:30 Hjelpemidler: Ingen. Les denne forsiden nøye. Oppgaven består av fire deler.

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Versjonsbrev for Extensor05 versjon februar 2018

Hvilke IT-prosjekter lykkes best? Magne Jørgensen Simula Research Laboratory Universitetet i Oslo Scienta

Testing av programvare

Evaluering av IT-systemer Introduksjon. Monica Kristiansen

Test i Praksis. NTNU Februar Copyright 2014 Accenture All Rights Reserved.

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

Evaluering vol. 1. Plenum IN1050 Uke 11 Maria og Helle

Sikkerhet, risikoanalyse og testing: Begrepsmessig avklaring

Eksamen består av 4 oppgaver, hver med 4 deloppgaver. Alle delspørsmål gis samme vekt i evalueringen.

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Debugging. Tore Berg Hansen, TISIP

Testrapport. Studentevalueringssystem

BE AGILE. Torbjørn Laukvik og Bjørn Andreas Wang Pettersen Seniorkonsulenter, Sogeti Norge

Bilag 1 Kundens kravspesifikasjon

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Studentdrevet innovasjon

Dokument 1 - Sammendrag

Testrapport. Moduler for bonefish.no CMS. Gruppe 08-23

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8

ISTQB. Foundation Level

Finne ut om en løsning er helt riktig og korrigere ved behov

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

Kvalitet i programvaresystemer Dokumentasjon av tester

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

4.5 Kravspesifikasjon

Transkript:

1 Grunnleggende testteori

Industri - og software produkt Industriprodukt: Fysisk produkt Testes under produksjon og til slutt om produktet oppfyller kravene Tilpasses, endres, redesignes, og justeres så produktet oppfyller kravene. Softwareprodukt: Immaterielt produkt Kan ikke testes direkte Testes under utvikling for å finne svakheter og feil Mye vanskeligere fordi en ikke vet om alle feil er funnet og dermed oppfyller kravene når produktet er ferdig utviklet 2

Hva er testing? Testing er å kjøre programmet eller deler av det for å vurdere om kravene til det som testes er tilfredstiltfeiltesting finne feil og rette Statistisk testing beregne systemets pålitelighet Stresstesting måle belastningen før systemet feiler Benchmarking sammenligne systemer Systemtesting teste hele systemet Akseptansetest kundens test av hele systemet Whitebox-testing Teste modulens indre oppbygging Blackbox-testing teste modulens funksjonalitet 3

Test-minibanken(1) Opprett konto med 100 000 kr. 1. Ta ut 1000 kr. 2. Ta ut 2000 kr. 3. Ta ut 3000 kr. 4. Ta ut 4000 kr. 5. Ta ut 5000 kr. For hver uttak skriv ut saldo og uttak for å kontrollere at programmet regner riktig 4

Test-minibanken(2) Opprett konto med 100 000 kr. 1. Ta ut 40 000 kr. 2. Ta ut 60 000 kr. 3. Sett inn 10 000 kr. 4. Ta ut 10 001 kr. 5. Ta ut 9999 kr. 6. Ta ut 0 kr. 7. Ta ut -1 kr For hver uttak skriv ut saldo og uttak for å kontrollere at programmet regner riktig God dekning 5

Hvorfor teste software? Testingen og testdokumentasjonen er en viktig del av dokumentasjonen for å vise at IT-systemet fyller kravene som er forutsatt For å vurdere om kravene er oppfylt må kravspesifikasjon og utviklingsdokumenter gjennomgåes nøye. Hvordan programmet fungerer kan bare vurderes ved testing på datamaskin Derfor er testing en viktig del av arbeidet med å utvikle programmet 6

Error-Fault-Failure Error : når en programmerer koder feil eller utelater kode årsaken til en fault Fault (defect eller bug): feil i kode kan lede til failure dersom koden der den befinner seg eksekveres Failure: uoverenstemmelse mellom aktuelt resultat og oppførsel og forventet resultat og oppførsel avvik fra forventet resultat forårsakes av faults 7

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

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. 9

Testing Systematisk kjøring av programmet under kontrollerte betingelser for å dokumentere at systemet er korrekt implementert øke tilliten til programmet finne failures I tillegg inkluderer testing statiske metoder Analysere program, dokumentasjon og andre beskrivelser 10

Testing 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 11

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 - Efficiency Drift, Vedlikehold og Maskinplattform 12 Det er nødvendig å prioritere mellom kriteriene

Den grunnleggende testprosessen 13 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.

Teststrategi Mål: optimalisere fordelingen av tester til de delene av systemet som trenger det mest. Avklar hvilke testteknikker som skal benyttes Definer testintensitet for delsystemene. Avhenger av: hvilken testdekning som ønskes hvilke testeteknikker som benyttes Finn testtilfeller Test logikk og lag konkrete tilfeller Ikke glem grenseverdiene!! 14

Teststrategi 1. Prioriter mellom delsystemene : de viktigste delsystemene testes først og mest inngående 2. Prioriter mellom funksjonene: de viktigste funksjonene testes først og mest inngående 3. Bruk verdier som ligger i området som er mest benyttet 15

Logisk testtilfelle Definer betingelser Definer forventet resultat Testtilfeller Virkelig testtilfelle Velg en verdi Vurder hvilket logisk tilfelle verdien tilhører Utfør testen Vurder om forventet virkelig resultat stemmer med forventet logisk resultat i testtilfellet 16

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

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

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 19

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 20

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 21

4 Feilene 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 22

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 23

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 24

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 25

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