Kirsten Ribu

Like dokumenter
Validering og verifisering. Kirsten Ribu

Kirsten Ribu

Verifikasjon og validering

Verifikasjon og validering

Verifikasjon og validering

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

Livsløpstesting av IT-systemer

Grunnleggende testteori

GJENNOMGANG UKESOPPGAVER 9 TESTING

Grunnleggende testteori

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Grunnleggende testteori. Etter Hans Schaefer

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

Inf1055 Modul B 26 april 2017:

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

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

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Testing av programvare. INF1050: Gjennomgang, uke 08

Finansportalen Historiske bankdata

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

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

ISTQB Foundation Level Prøveeksamen

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

TDT4735 Systemutvikling, fordypning. Metoder for systemtest av websystemer

Erfaring med funksjonell testing i en integrert ALM prosess

Testing av programvare

Effektiv testing. Per Otto Bergum Christensen September, JavaZone. Bergum Christensen Consulting

Testbilag til IT kontrakter

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

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

Løsningsforslag Sluttprøve 2015

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

Test i smidig. Laila Sandbæk Testrådgiver og testleder Sogeti

Automatisert Robusthetstesting. Erik Arisholm Testify AS

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

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

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

Mellom barken og veden Smidig testing i krevende terreng TTC 2015

JigZaw. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

Test og kvalitet To gode naboer. Børge Brynlund

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

UNIVERSITETET I OSLO

Programvareutvikling hos Sun Microsystems. Jørgen Austvik Sun Microsystems Database Technology Group

Konfigurasjonsstyring

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

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

Modernisering av IKT i NAV

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

PRESENTASJON NORDIG OKTOBER Alle skal kunne teste alt - overalt

Oppgave 1. Finn krav. Finn krav. Finn test

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

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

Testplan (Software Test Plan)

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

Kvalitet i programvaresystemer Dokumentasjon av tester

Estimeringsmetoder. I dag. Kostnadsestimering. Kostnader og prisfastsettelse. Ulike estimeringsmetoder. Måling av programvare. Estimeringsteknikker

Oppsummering. Thomas Lohne Aanes Thomas Amble

Elhub Strategi Aktørtesting

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1

Retningslinjer for akseptansetest

Cross the Tech Bridge. Anette Valaker

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

Eksamen 2013 Løsningsforslag

Retningslinjer for akseptansetest

Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus. Forprosjektrapport. Presentasjon

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

Altinns nye tjenesteverksted. Lars Vegard Bachmann, produkteier portal og tjenester, Altinn

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

Innhold. Login. Påvirkningskraft som kvalitetskriterium Forskjeller mellom evalueringsmetoder? En til? Kanskje litt vanskeligere denne

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

UNIVERSITETET I OSLO

Saksnummer 13/ / 29

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

Gårsdagens testroller takler ikke dagens utfordringer. Magnus Halvorsen og Erik Rogstad

Eksamen i fag SIF8018 Systemutvikling. Fredag 25. mai 2001 kl

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

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

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

Kirsten Ribu - Høgskolen i Oslo

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

Automatisert test som leveransekrav

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

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

Bilag 4 Prosjekt- og fremdriftsplan for migrering til ny plattform

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

Produktrapport Gruppe 9

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi

Transkript:

Validering og verifisering Kirsten Ribu 03.03.04 1

I dag Om prosjektet Validering og verifisering Prototyping Inspeksjon Testing 2

Prosjektet Status: Bra framgang Solid arbeid Roller: Definer rollene tydelig. Lag en rollebeskrivelse for hver rolle. Veiledningstimer? Vurderingsform 3

Prosjektet Sjekk kurssidene jevnlig. Endringer forekommer (forelesningsplanen) Hvordan fungerer gruppene? Fungerer arbeidsfordelingen? Fungerer møtene? Hvordan gjør dere rapportering? Kom med spørsmål! Husk å logge alle problemer/løsninger = skal inn i prosessrapporten Samle alle filer i ett dokument etter hvert Begynn med programmeringen 4

Neste innlevering Leveranse III (18.mars) Oppdatert prosjektplan (husk versjonsnummer) Valg og beskrivelse av systemutviklingmodell (oppdatert) Designmodell: Klassediagram med attributter, metoder, relasjoner. Evaluering av designet i henhold til prinsipper for god OO design (Lav kobling, ekspert-, skaper, kontrollprinsipp) Estimat over forventet tidsbruk (antall timer) Skisser til brukergrensesnitt Oppdatert risikoplan 5

Validering og verifisering Å sørge for at et datasystem tilfredsstiller brukerens behov 6

Hvorfor validering og verifisering? For å kunne vurdere hva vi gjør og hvorfor vi gjør det Behov for verifisering øker med størrelsen på systemet Ca 1/3 av utviklingstiden brukes å testing Noen ganger opp til 50% Systemutvikling er en industriell prosess! 7

Statisk og dynamisk verifisering Inspeksjoner (statisk verifisering) Analyse av systemet kodeinspeksjon og gjennomgang av dokumentasjon for å oppdage probelemer Testing (dynamic verifisering) Observasjon av systemoppførsel Systemet kjøres med testdata 8

V&V: Validering: Bygger vi det riktige systemet? Snakke med brukerne Bruke use case modellen Verifikasjon: Bygger vi systemet riktig? Manuelle inspeksjonsmetoder Automatisert testing 9

Mennesker gjør feil Det vi lager er ikke det vi burde laget Det vi lager har defekter Vi trenger ikke nødvendigvis best mulig kvalitet: Godt nok er bra nok. Jo senere en feil oppdages, desto mer alvorlig er det Feil kan være forretningskritisk (i ytterste konsekvens kan menneskeliv gå tapt) 10

Hva slags feil? 11

Hvorfor finnes feil i ferdige produkter? Det som er laget er feil (ikke det kunden vil ha) Ikke alle feil prioriteres rettet: Kategori 1: Kritiske feil som MÅ rettes (lansering holdes igjen til feilen er rettet) Kategori 2: Kritiske feil som bør rettes (betydelig reduksjon av kvaliteten) Kategori 3: Ikke-kritiske feil (kosmetiske feil) 12

Forts. I praksis umulig å få verifisert alle kombinasjoner av input til et system Tendens til å teste og vektlegge bekreftelser, i motsetning til å prøve å falsifisere. NB! Det er en vesentlig forskjell i holdning mellom det å utvikle og det å teste. En god utvikler er konstruktiv, mens en god tester er destruktiv. Mange organisasjoner velger derfor å skille rollene, dvs. å ha egne testere. Tendens til å tro at sist funnet feil er siste feil. 13

Hvordan verifisere? Finn ut om vi har laget systemet riktig: Sammenlign produktet med kravspesifikasjonen Kravspek er visualisert i use case modellen beskrevet i use case ne 14

Hensikten med testing Finne feil Vurdere kvaliteten på systemet i forhold til kravene Riktig kvalitet ( ikke nødvendigvis beste kvalitet ) Vite når systemet er ferdig! 15

Kvalitetssikringsstandarder ISO 9000 familien ISO 9001 standarden beskriver kvalitetssikringsarbeidet i hele livssyklusen Utviklingsprosesse (for eksempel RUP) er også en kvalitetssikringsprosess 16

3 måter: Prototyping Benyttes tidlig i utviklingsprosessen Lage et utkast til hvordan det endelige systemet kan se ut. Testes mot sluttbruker Inspeksjoner Benyttes i alle faser av utviklingsprosessen Gjennomgang av leveranser Utføres hovedsakelig mennesker, men kan være programmer Testing Gjøres sent i utviklingsprosessen Sjekke hvor godt systemet oppfyller kravene Resultatet av kjøringer sammenlignes med fasit 17

Ikke motsetninger Inspeksjoner og testing bør brukes sammen under programvareutviklingen Test casene bør også inspiseres! Inspeksjoner avdekker feil ved test casene Dermed kan det lages mer effektive måter å teste systemet på 18

1.Prototyping Utkast til hvordan systemet kan se ut Tegninger (storyboarding) Skjermbilder uten funksjonalitet Brukes til validering av systemet i krav/analysefasen Enkelt for brukere å forholde seg til (i forhold til modeller og dokumenter) Avdekker effektivt manglende/feil krav og forretningsregler Ulemper: Gode prototyper kan gi falske forventninger i forhold til hvor langt prosjektet har kommet Brukere kan bli opphengt i irrelevante detaljer 19

Verktøy Penn og papir Whiteboard Tegneprogrammer HTML-editorer GUI-byggere Modellbaserte prototypingsverktøy Programmeringsspråk 20

Eksempel 21

2. Inspeksjon Dokumentgjennomgang Kodegjennomgang 22

Dokumentgjennomgang Gjennomgang av dokumenter med formål å finne feil og mangler Forskjellige teknikker kan benyttes parprogrammering (kontinuerlig inspeksjon) Forskjellige typer gjennomgangsmøter (dokumentet presenteres i møtet, distribueres på forhånd Hvem bør gjennomgå dokumentet? De som skal ha systemet De som skal bruke dokumentet De som har vært delaktige i utformingen av dokumentet Eksperter (rollen / forretningsområdet) 23

Kodegjennomgang Gjennomgang av kildekoden for å finne feil og mangler Funksjonelle feil (avvik fra design og kravspesifikasjon) Avvik fra kodestandard og retningslinjer (for eksempel navngiving av klasser) Tekniske feil (for eksempel feil i en hashmapfunksjon) Testbarhet (for eksempel dokumentasjonsmangler, muligheten for isolasjon, etc) Forskjellige teknikker kan benyttes Parprogrammering (kontinuerlig kodegjennomgang) Distribusjon til en eller flere for gjennomlesning Koden gjennomgås av en review-gruppe i et møte Aspektbasert inspeksjon 24

Inspeksjons-team Hvem bør gjennomgå kode? Sjefsprogrammerer/designere Juniorprogrammerere (opplæring) Testere Tekniske eksperter Arkitekter Minst 4 medlemmer i teamet: Den som har laget koden Inspektør som finner feil, uoverenstemmelser, mangel på konsistens OPpleser som leser koden for teamet Møteleder som noterer feilene som blir funnet 25

Automatisert kodeanalyse Programmer som analyserer kildekode og avdekker avvik fra spesifiserte krav Sjekker at alle klassenavn begynner med store bokstaver Sjekker at metoder ikke er for lange Sjekker at input-paramtere valideres Sjekke at alle metoder er dokumentert Ikke-eksekverbar kode Variabler som aldri brukes Minnehåndtering Kan integreres i utviklingsmiljøet, versjonshåndteringssystemet eller byggesystemet For eksempel kan kode hvor verktøyene rapporterer feil i nektes innsjekking Raskt å kjøre (billig) i motsetning til inspeksjon Men mange ting fanges ikke opp her. Eksempel på verktøy: kompilatorer jdepend jmetric 26

Fordeler Mer enn 60% av alle feil kan oppdages ved kodeinspeksjon (Fagan) Med matematisk verifisering kan 90% av feil i koden oppdages. Mange ulike defekter oppdages under en enkelt inspeksjonsrund (Ved testing: Kan ofte bare oppdage 1 feil - programmet kræsjer f.eks ved feil) Gjenbruker kunnskap om domenet og programmeringsspråk Inspektørene har sannsynligvis sett vanlig feil relatert til programmeringsspråket og i den type applikasjoner. Derfor er det fokus på denne type feil under inspeksjonen 27

3. Testing Typer av test V-modellen Testplan Testdata Ekvivalensklasser Enhetstesting (med verktøy og eksempler gjerne relatert til XP) Testdrevet utvikling Gjenbruk 28

Testing En form for induktiv bevisføring, dvs. å vise (sannsynliggjøre) at alle svaner er hvite ved å observere et representativt utvalg av alle svaner. Test er både verifikasjon og validering Testing kontrollerer ny funksjonalitet, samt at eksisterende funksjonalitet fortsatt virker (regresjonstesting) Effektiv testing gjøres ved: Testbare krav Testbare programvarestrukturer Bruk av ekvivalensklasser Testverktøy Gjenbruk 29

Testing vs. debugging Testing er ikke det samme som debugging Testing er å finne feil Debugging er å rette feil men begge deler gjøres ofte i testfasen av prosjektet (noe uklare grenser) 30

Eksempel 31

Det første virkelige tilfelle av bug 9. september 1945, kl. 3:45 p.m., fant forskere ved Harvard universitetet årsaken til at Mark II Aiken Relay kalkulatoren oppførte seg merkelig En møll ble funnet fanget mellom punkter på relé #70, panel F Maskinen ble debugget med en pinsett! Dokumentert i loggen som First actual case of bug being found. med møllen tapet inn ved siden av 32

Type test Enhetstest/funksjonstest Hvem tester: Programmerer Integrasjons- og systemtest Hvem tester: Tester Akseptansetest Hvem tester: Installatør og kunde Drift: Kunde 33

Typer testing Enhetstest Tester at komponenten (klassen) virker isolert Simulerer omgivelsene til komponenten Utføres av utviklere Skrives ofte som automatiske tester Integrasjonstest Tester at komponenten (klassen) virker sammen med andre komponenter Simulerer ofte andre sub-systemer Bruker konstruerte testdata Utføres ofte av utviklere Gjøres ofte manuelt, men kan med fordel automatiseres 34

Typer testing forts. Betatest Utvalgte kunder tar i bruk systemet før offisiell lansering Akseptansetest Tester at systemet lar brukerne gjøre det de trenger Tester med reelle data Utføres gjerne i samarbeid mellom kunder og testere Systemtest Tester at systemet oppfører seg korrekt i samspill med omgivelsene 35

Type testing forts. Ytelsestest (tester ytelse = hastigheten på én transaksjon) Stresstest (overbelastningstest) (tester skalerbarhet = hastigheten på mange samtidige transaksjoner) Recoverability-test (tester systemets håndtering av uforutsette avbrudd) 36

Black- og white-box testing Komponent Inndata Utdata Black box: Gir input forventet output? Komponent Inndata Xxxxx xxxxx Utdata White box: Følger hvert trinn i komponenten. Midlertidige utskrifter. 37

V-modellen (verifikasjonsmodellen) 38

Testplan V&V-plan (kvalitetssikringsplan) er en del av prosjektplanen Fokus på feilavdekking/-retting ved kjøring av programmer Testplanen bør inneholde beskrivelse av enhetstest (UT) integrasjonstest (IT) systemtest (ST) akspetansetest (AT) Tidsplan (hvilke tester når) Ressursbruk (mennesker/systemer/maskiner/data) Testleveranser (testscript, testrapporter, dokumentasjon, etc.) Risikofaktorer 39

Eksempel For hvert testdesign Gjennomføring av test for en eller flere features Relatert til kravspesifikasjon Features som skal testes/ikke testes Hvilke test-cases inngår For hver test-case Situasjoner som tester funskjonalitet Input og forventet output Eksekveringsbetingelser (f.eks. hvilke kundedata som skal ligge i databasen) Testprosedyre (detaljert steg-for-steg beskrivelse for gjennomføring av testen) 40

Testdata Eksempel: Skal teste at en kunde flytter fra Oslo til Svalbard Skal ikke betale moms Bruker Per som testdata Ok første gang Andre gang feiler testen siden Perble flyttet i test nr 1 ==> Testdata må resettes mellom hver test Dette er vanskelig/umulig Vanskelig: å finne komplette/realistiske testdata å isolere testdata mellom tester å teste konfidensielle data Testdatabaser får fort dårlig datakvalitet Blir ikke vedlikeholdt på linje med produksjonsdatabaser Data blir herjet mer med enn data i produksjon Feil i kode kan føre til inkonsistente tilstander 41

Enhetstesting i praksis Målet er å skrive automatiserte enhetstester 42

JUnit Java basert verktøy Kan lastes ned gratis på www.junit.org 43

Eksempel Test case 44

junit test 45

Eksempel på JUnit 46

4. Gjenbruk Kode som gjenbrukes er allerede testet Mange penger å spare Men den er ikke nødvendigvis testet for ditt bruk ikke testet i din anvendelse ikke testet med din konfigurasjon 47

Neste gang Systemutviklingsverktøy Emne 1 i G&H Torsdag: Fortsett med oppgaven lever oppdatert og rettete oppgaver. 48