Programvaretesting In 140 Sommerville kap 20.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Høgskolen i Oslo - GM Vær metodisk  Definer og forstå problemet  Spesifiser hva du har av hardware  Lag en prototyp av brukersnittet  Design.
Gruppe 6 Gunnar Henrik Mathias Morten Ronny Svein Ivar.
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
Prototyping & Use Case Software Engineering Gruppe
IS-102 Klassedefinisjoner
Validering og verifisering
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Oppgave gjennomgang Kap. 3 og 4.
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.
Grunnleggende testteori
In 140 Forelesning Nr 17 Sommerville kap 20
Utforming av arkitektur
Verifikasjon og validering
Programvare-prosesser
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
INF150 Programmering mandag 11.9
Hovedprinsipper i Rational Unified Process
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Prognose av framtidig etterspørsel
I dag snakker vi om: Brukergrensesnitt med kvalitet Bruksegenskaper Normans 7 stadier Testing med papirprototyp.
Innledning SIF80AP Future and HCI av Brad Myers m.fl.
Hvordan uttrykke krav Kapittel 4.4. Innledning Målet er å samles rundt ett entydig språk som ikke kan misforståes eller feiltolkes. Gjør sporbarheten.
Software Requirements Elicitation
Testintegrering Gruppe3 Andrè Hauge Vegard Simensen Mats Lindh Henning Kristiansen.
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.
Automated Testing Tool & When to Stop Testing
Object Oriented Measurement
Bærekraftig utvikling - forskerspiren
VI LAGER EN PLATEBUTIKK
Hvorfor bruke tid på testing ?
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Magnus Haug Algoritmer og Datastrukturer
Natalya Fridman Noy and Carole D. Hafner The State of the Art in Ontology Design Av Ida Kokkersvold.
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.
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
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.
1 Systemering In 140 forelesning nr. 2 Sommerville kap. 3.
Programvaretesting In 140 Forelesning Nr 17 Sommerville kap 20.
Freenet A Distributed Anonymous Information Storage and Retrieval System.
Programvareendring del 1 In 140 Forelesning Nr 21 Sommerville kap 27, 1. Del.
Programvare- prosesser - del2 In 140 Forelesning nr. 4 Sommerville kap. 3.
Kapittel 6 Objektorientert design. 6.1 Programvareutvikling Skriving av kode ein liten del av arbeidet med å lage programvare Fire hovudaktivitetar Kravspesifikasjon.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Gamle systemer In 140 Sommerville kap 26. Forelesninger fremover 8/4:Gamle systemer 22/4: Systemevolusjon og vedlikehold 28/4: Konfigurasjonsstyring.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Systemmodeller In 140 Forelesning nr. 9 Sommerville kap. 7.
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Kapittel 10 Exceptions Handtering av exceptions Ein exception er eit objekt som representerer ein feil eller eit unntak Exceptions blir kasta av.
1 Programvaretesting del 2 In 140 Forelesning Nr 18 a Sommerville kap 20 del 2.
IN 265 Våren 2003 : Forelesning : Design av arkitektur og komponent 1 IN250 – Om komponent design Mål for forelesningen: l Se på prinsipper.
RUP-prosjekt Sammenhengen med UML
IS-102 Interaksjon med objekter
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Programvaretesting In 140 Sommerville kap 20

Mål Forstå noen test-teknikker som brukes for å finne programfeil Kjenne til retningslinjer for testing av komponentgrensesnitt Forstå noen tilnærmingsmetoder for testing av komponenter og integrasjon av objektorienterte systemer Forstå hvordan CASE-verktøy kan støtte testing

Testing og OO OO skiller seg fra funksjonsorientert Ikke klart skille mellom funksjoner og moduler. Ingen klar hierarkisk struktur. Ikke lett å skille komponent og integrasjonstesting

Defekttesting Finne feil før systemet leveres Det gjelder å få systemet til å feile. Modell Test case Test data Test resultater Test rapport Testdata kan genereres automatisk Test case kan ikke genereres automatisk

Defekttestingsprosessen

Defekttesting – hvor grundig? Uttømmende (Exhaustive) testing Sjekker alle mulige eksekveringsveier Umulig å gjennomføre Hvilket subset skal da testes? Alle programsetninger minst en gang Bygge på erfaringer fra bruk Alle menyfunksjoner testes Kombinasjoner av funksjoner på samme meny Teste alle innmatingsmuligheter med gyldige og ugyldige data

Black-box –testing Testene utledes fra spesifikasjonen Kalles også funksjonell testing Kan brukes på alle systemer Gi systemet inndata, sjekke utdata Det gjelder å finne inndata som fører til svikt Bruke kunnskaper om anvendelsesområdet Systematisk testdatautvalg

Black-box testing

Ekvivalenspartisjonering Systemets inndata kan kategoriseres En ekvivalenspartisjon er en mengde inputdata som behandles likt Ekvivalenspartisjoner kan identifiseres fra spesifikasjonen Retningslinje: Velg data som ligger midt i ekvivalenspartisjone og på grensa – atypiske verdier. Disse blir ofte oversett og feilbehandlet av programmet.

Ekvivalenspartisjoner

Strukturell testing Kalles også White-Box testing eller Glass-box, Clear box Bygger på kjennskap til programvarestrukturen Målet er å teste alle programsetninger Egnet for små programmoduler Analysere kode for å partisjonere

White-box testing

Path testing Formålet er å teste alle veier gjennom systemet Alle vilkårssetninger kjøres med verdier som gir sann eller usann som resultat Antall muligheter proporsjonal med systemets størrelse. Metoden blir ugjennomførbar. Med sløyfer blir mulighetene fort "uendelige". Metoden tar utgangspunkt i flytdiagrammer

Flytkart for binærsøk

Flytdiagrammer Bare vilkårssetninger og sløyfer Hensikten er å utføre alle uavhengige løp Et uavhengig løp går gjennom minst en ny kant Lage testdata som kjører alle løp. Ikke enkelt på kompliserte program Dynamiske programanalysatorer

Integrasjonstesting Utvikles fra spesifikasjon Settes i gang så snart brukbare systemdeler foreligger Inkrementell integrasjon og testing Lettere å isolere feil Repetere tidligere tester Ikke enkelt

Inkrementell integrasjonstesting

Top-down testing

Bottom-up testing

Sammenlikning Top-down vs. Bottom up Arkitekturvalidering Systemdemonstrasjons Testimplementering Testobservasjon I virkeligheten brukes ofte en blanding

Grensesnitt-testing

Grensesnittesting Skjer under integrasjon Målet er å finne feil som oppstår pga av misoppfattelser av grensesnitt Viktig for objektorienterte systemer Grensesnittyper Parametergrensesnitt Delt hukommelsesgrensesnitt Prosedyralt grensesnitt Meldingsutvekslingsgrensesnitt

Grensesnittesting Feiltyper Kan være vanskelige å finne Misbruk av grensesnitt Misforståelse av grensesnitt Feil ved timing Kan være vanskelige å finne Overflow Feil påvirker hverandre Retningslinjer for grensesnittesting Inspiser kildekoden for å finne kall Lag tester med ekstreme verdier Lag tester med nullpekere Ved prosedyrale grensesnitt – lag feil Bruk stress-testing i meldingsformidlings grensesnitt Ved kommunikasjon gjennom delt hukommelse: Test med varierende tilgangsrekkefølge Statiske teknikker er ofte lønnsomme ved grensesnittesting

Stress-testing Ferdigintegrerte systemer kan testes på ikke funksjonelle egenskaper Ytelsestester ofte med økende belastning forbi spesifisert ytelse til systemet svikter. Formål: Sjekke hvordan systemet ter seg under overbelastning. Finne feil som oppstår ved høy belastning Spesielt relevant for distribuerte systemer

Objektorientert testing Forskjeller mellom OO og funksjonsorientert Objekter er større enn enkeltfunksjoner Objekter er løst koblet Ingen klar hierarkisk struktur Gjenbrukskomponenter kan mangle kildekode Fire testnivåer Test av enkeltoperasjoner Testing av enkeltobjektklasser Klyngetesting OO-systemtesting

Komplett objekttesting Alle enkeltoperasjoner alene tilordning og spørring på alle attributter Gjennomkjøring av alle tilstander Alle tilstandsendrende hendelser for hver tilstand må prøves

Tilstandsdiagram for værstasjon

Objektklassetesting Arv/polymorfisme Ekvivalensklasser for attributter Arvede operasjoner må testes i alle underklasser Polymorfe operasjoner må testes Ekvivalensklasser for attributter

Objektintegrasjon Moduler eksisterer ikke, bare samarbeidende objekter Klynge (Cluster)-testing Intet hierarki, men danner funksjonalitet. Testemetoder Use Case/Scenario – basert Thread-testing Objektinteraksjonstesting Method-message path (Alle metodekall fullført) Atomic System Function (Input – Output)

Use Case/Scenariobasert testing Ofte effektivt Bygger på Use Case Kryss av utførte metoder Alle metoder må være testet Kollaborasjonsdiagram kan brukes Planlegge hva som må settes opp og hva som må sjekkes

Kollaborasjonsdiagram

Testbenk (Testing workbenches)