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

Validering og verifisering. Kirsten Ribu

Livsløpstesting av IT-systemer

GJENNOMGANG UKESOPPGAVER 9 TESTING

ISTQB Foundation Level Prøveeksamen

Kirsten Ribu

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

Test og kvalitet To gode naboer. Børge Brynlund

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

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

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

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

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

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Testrapport Prosjekt nr Det Norske Veritas

Evaluering av IT-systemer Introduksjon. Monica Kristiansen

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

ISTQB. Foundation Level

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

Testing av programvare. INF1050: Gjennomgang, uke 08

Kirsten Ribu

Testplan (Software Test Plan)

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

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

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

Erfaring med funksjonell testing i en integrert ALM prosess

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

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

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Verifikasjon og validering

Debugging. Tore Berg Hansen, TISIP

Konfigurasjonsstyring

Kravspesifikasjon MetaView

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

Kvalitet i programvaresystemer Dokumentasjon av tester

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

Tildeling av minne til prosesser

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

Inf1055 Modul B 26 april 2017:

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

De fleste kjenner Tomras pantemaskiner, som er godt utbredt i store deler av verden.

Teknisk gjeld. Innhold. Hva er teknisk gjeld? NAVs tilnærming Dokumentasjon av teknisk gjeld Oppsummering

RUTEPLANLEGGINGSSYSTEM TESTDOKUMENTASJON

Eksamen i fag TDT4140 Systemutvikling. Tirsdag 27. mai 2004 kl

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Characteristics of a good design

Testrapport for Sir Jerky Leap

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Definisjon av prosess

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

Oppgraderinger i SAP. Planlegge, organisere og gjennomføre en oppgradering til ECC 5.0/ECC 6.0. Sveinung Gehrken

Presentasjon Test. Møte med Systemleverandører 5.desember 2014

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

INF109 - Uke 1a

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid

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

UNIVERSITETET I OSLO

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

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

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

Betinget eksekvering og logiske tester i shell

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

A tool for collaborating to success in a development project Experience with Visual Studio 2010 and Test Manager at Lånekasse

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

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

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

Risikoanalyser i petroleumsvirksomheten. Behov for å endre/justere kursen? Vidar Kristensen

Systematisk Testing av Software

AlgDat 10. Forelesning 2. Gunnar Misund

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

MMI-sammendrag fra eksamener

Testrapport. Studentevalueringssystem

Læringsmål og pensum. v=nkiu9yen5nc

KTN1 - Design av forbindelsesorientert protokoll

Versjonsbrev for Extensor05 versjon februar 2018

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

Oppgaver uke 1: Løsningsforslag

Vedlegg Brukertester INNHOLDFORTEGNELSE

Programmering i R. 6. mars 2004

YouTube-kanal ITGK. Læringsmål og pensum

Diskusjonsoppgaver Hvilke fordeler oppnår man ved analytisk evaluering sammenliknet med andre tilnærminger?

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

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

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

MAT1030 Diskret matematikk

Sertifisert Tester. Pensum for grunnivå. (Foundation Level)

Sikkerhet, risikoanalyse og testing: Begrepsmessig avklaring

Brukskvalitet. Bruk og nytte av systemet

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

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

Generelt om operativsystemer

Prosjekt. Bluetooth Messaging Service. Kristian Sporsheim, Rolf Erik Normann & Karsten Jansen

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

Transkript:

1 Grunnleggende testteori

Error-Fault-Failure 2 Error : 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

Hensikten med testing er å: Testing vs. debugging Testing er ikke debugging 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 3 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. 4

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 5

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

Mål for programkvalitet summen av alle kvalitetskriteriene 7 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 8 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. 9

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 10

2. Testanalyse og design 11 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. 12

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 13

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 14

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

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

Oppsummering 24 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