Testing for Nybegynnere



Like dokumenter
Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Øvingsforelesning 5 Python (TDT4110)

Livsløpstesting av IT-systemer

Øvingsforelesning 5 Python (TDT4110)

Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.

Grunnleggende testteori. Etter Hans Schaefer

Syntax/semantics - I INF 3110/ /29/2005 1

HONSEL process monitoring

BIBSYS Brukermøte 2011 Live Rasmussen og Andreas Christensen. Alt på et brett? -om pensum på ipad og lesebrett

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

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

Trådløsnett med Windows XP. Wireless network with Windows XP

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

ISTQB Foundation Level Prøveeksamen

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Hangman. Level. Introduksjon

GJENNOMGANG UKESOPPGAVER 9 TESTING

TMA4240 Statistikk 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

(MVC - Model, View, Control)

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

SAS-feil kavalkade. Viggo Skar Oslo Universitetssykehus HF (OUS)

Lotus Traveler - Manual for installasjon

SuperOffice hurtigstart guide

Start Here USB *CC * *CC * USB USB

Feilmelding Årsak Løsning

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Klask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Vanlige spørsmål om EndNote (april 2013)

Brukertesting i et nøtteskall

SmartPass Mini User Manual BBNORGE.NO

UNIVERSITETET I OSLO

Marine Propulsion Control Systems 9000 Series Processor Feilsøking

Use case modellering. Use case modellen. Metode for systembeskrivelse og Nettsted-design

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

1) Sørg for at du fortsatt er i eventredigeringsmodus (klikk F6 på tastaturet, eller velg ikonet med en person fra menylinjen).

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

Oppsummering fra sist

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Kom i gang med emedia

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

AlgDat 12. Forelesning 2. Gunnar Misund

PSi Apollo. Technical Presentation

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

UNIVERSITETET I OSLO

Vedlegg Brukertester INNHOLDFORTEGNELSE

Web Accessibility Toolbar. Struktur. Funksjonene. Headinger. Mer om tilgjengelighet og Flash.

REMOVE CONTENTS FROM BOX. VERIFY ALL PARTS ARE PRESENT READ INSTRUCTIONS CAREFULLY BEFORE STARTING INSTALLATION

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

IN2010: Algoritmer og Datastrukturer Series 2

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

TB-615 / TB-617 Wireless slim keyboard. EN User guide SE Användarhandledning FI Käyttöohje DK Brugervejledning NO Bruksanvisning

Brukermanual. Trio Visit Web. Trio Enterprise 5.0

INF120: Oblig 3. Yngve Mardal Moe

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

Dynamic Programming Longest Common Subsequence. Class 27

Den som gjør godt, er av Gud (Multilingual Edition)

Exercise 1: Phase Splitter DC Operation

INF 5120 Modellering med objekter

Trådløsnett med Windows Vista. Wireless network with Windows Vista

User manual English Svenska Norsk

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

Introduksjon...5. Systemkrav...7. For Windows...9

Information search for the research protocol in IIC/IID

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Grunnleggende testteori

Perpetuum (im)mobile

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Brukerveiledning. Koblingsur. Varenr:

Oversikt over SMS kommandoer for Holars 2020G

Paul Hinsch. MICADO AS Utviklet MapBasic applikasjoner i 10 år. Registreringsknapper og Objektdialog

1 User guide for the uioletter package

Introduction to DK- CERT Vulnerability Database

The regulation requires that everyone at NTNU shall have fire drills and fire prevention courses.

Smidige metoder i praksis Høgskolen i Oslo Kristin Meyer Kristiansen Objectnet AS

2 Om statiske variable/konstanter og statiske metoder.

TEORI OG PRAKSIS. Kjønnsidentitet og polaritetsteori. En kasusstudie av en samtalegruppe med transpersoner

SALGSKNAPP 7: GARDEROBE lapper med løpende nummerserie (2-sett) Garderobelappene kan skrives ut med text,logo,vare ikon, tid/dato, pris, bongnr

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Slope-Intercept Formula

INF2810: Funksjonell Programmering. Mengder og lokal tilstand

Systemutvikling (Software Engineering) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

SIE 4005, 8/10 (3. Forelesn.)

Transkript:

Testing for Nybegynnere Hva må alle testere vite? Kort intro i basis test design metoder Hans Schaefer hans.schaefer@ieee.org http://www.softwaretesting.no/ 2005-2008, Hans Schaefer Slide 1

Hvem er jeg? Dataingeniør (informatikk, jernbanesignalsystemer, Teknisk universitet Braunschweig, Tyskland, 1979 Fraunhofer Institutt Karlsruhe: Utvikling av styringssystemer, til 1981 Senter for Industriforskning, Oslo, utvikling av IDE, testverktøy, kvalitetssikring, til 1987 Forelesninger i testing på universiteter i Norden (1984 til i dag) Konsulent innen testing siden 1987 Kurs og opplæring innen testing siden 1984, i alle skandinaviske land, Tyskland, India, USA, Canada, Polen Kunder i det siste: AOL, Banverket, Helse Vest + Øst, Lucent, Skandiabanken, Visma Del av programkomiteen i internasjonale konferanser om testing og advisory board til Better Software Magazine. I fritiden: Turleder for Bergen Turlag, aktiv på Gamle Vossebanen med museumstog. 2005-2008, Hans Schaefer Slide 2

Målet med testing Informasjon Hvor stor risiko er det å sette dette i drift? Destruksjon Finne flest mulig feil Læring Hva kan egentlig systemet? Hvordan virker det? Hva kan det ikke? 2005-2008, Hans Schaefer Slide 3

Er Du en god tester? Kritisk sans? Spør heller enn å anta ting? Vil lære mer? Tenker på tvers? Liker åfåting til åfeile? Systematisk? 2005-2008, Hans Schaefer Slide 4

Grunnlag for testen Spesifikasjon / endringsoppdrag Bruksanvisning Online hjelp Standarder for grensesnitt Forretningsgang, regler Datamodell, databruksbeskrivelse o.l. Selve systemet / koden (det vi vet om, det vi ser under test) Heuristikk / Erfaring 2005-2008, Hans Schaefer Slide 5

Første muligheter - Heuristikk H - Historie (vår) I - Image http://www.istqb.org/index.php?id=5 vs. Id=6 F - Forventninger til brukerne http://www.nsb.no tog til Stockholm eller Narvik, Excel: summer arbeidstid F - Forskrifter, regler og standarder P - Produktet selv WORD: bullet lists, Excel: tekst blir til dato P - Produktets mål og mening P - Påstander (om vårt system) S - Sammenlignbare produkter http://177nordland.no/modules/freecontent/index.php?id=2 -> Sjekk mot andre 177-websider! Sjekk mot dette UNDER TESTINGEN! 2005-2008, Hans Schaefer Slide 6

Metoder (ikke fullstendig) 1 - Sjekk av forretningsganger (use cases, scenarier) 2 - Sjekk av dataverdier (rette, feile) 3 - Sjekk av forretningslogikk (beslutningstabeller) 2005-2008, Hans Schaefer Slide 7

Metoder (ikke fullstendig) 1 - Sjekk av forretningsganger (use cases, scenarier) Vanlig flyt (alt går riktig) Alternative flyt (brukerfeil, utstyrsfeil,...) Avbrudd, gjentakelser evtl. Misbruk 2 - Sjekk av dataverdier (rette, feile) 3 - Sjekk av forretningslogikk (beslutningstabeller) 2005-2008, Hans Schaefer Slide 8

Metoder (ikke fullstendig) 1 - Sjekk av forretningsganger (use cases, scenarier) 2 - Sjekk av dataverdier (rette, feile) Input (rett, feil, ekstrem, spesielt, tilstede, ikke, default) Output (ulik format, verdi, relasjoner, ekstrem, feilmeldinger) Mellomverdier (normal, ekstrem, plassproblem) 3 - Sjekk av forretningslogikk (beslutningstabeller) 2005-2008, Hans Schaefer Slide 9

Metoder (ikke fullstendig) 1 - Sjekk av forretningsganger (use cases, scenarier) 2 - Sjekk av dataverdier (rette, feile) 3 - Sjekk av forretningslogikk (beslutningstabeller) Betingelser enkeltvis Kombinasjoner Sjekk alle output 2005-2008, Hans Schaefer Slide 10

Grunnmetode - Coverage For hver type grafikk: - (C0) Alle bokser - (C1) Alle forbindelser - (Cn) Kombinasjon av forbindelser (Kontroll)Flytdiagram Datastruktur Dataflyt Arkitektur Use case Tilstandsdiagram Forretningsgang... 2005-2008, Hans Schaefer Slide 11

Et typisk testfall - KKK K - klargjør Sett opp testmiljø. Sjekk at system er i rett tilstand. K - kjør Utfør testen. K - kontrollér Sjekk resultat. Sjekk andre ting (som ligger utenfor og er ikke direkte synlige). evtl: Bring systemet i neste tilstand som behøves. 2005-2008, Hans Schaefer Slide 12

Hvordan finne Testbetingelser? Nr Hva Forretningsgang Data Logikk 1 Funksjoner x x x 2 Tilstander og overganger x x 3 Datakanaler x 4 Data x 5 Relasjoner x x 6 Annet x x x 2005-2008, Hans Schaefer Slide 13

1. Finne funksjoner En funksjon er noe programmet skal gjøre. USE CASE Feilreaksjoner, alarmer, og display av online-hjelp er også med her (underpunkter under en funksjon). USE CASE - ALTERNATIVE FLYT Risikofaktorer i algoritmer en skal bruke. Hva hvis input ikke tilstede? Hva med divisjon med null? Unntak? Brukerfeil Oppsettparametre? 2005-2008, Hans Schaefer Slide 14

2. Tilstander og tilstandsoverganger Endrer programmet sin virkningsmåte basert på historien til input? Er der rekkefølger av handlinger som er viktige? Som en mobiltelefon (er det en telefon, kamera eller en SMS maskin?) I så fall Finn hver tilstand Finn hver overgang Også ikke lovlige inputs til tilstandene Lag et tilstandsdiagram! Test alle overganger 2005-2008, Hans Schaefer Slide 15

Tilstandsdiagrammer Tistand Hendelse Aksjon Off evpoweron / InitPhone Overgang On Guard evmenuphonebook [SIM Card Is in phone ] / StartPhonebook Phone book Overgang med Guard evcbutton / beep Overgang til samme tilstand 2005-2008, Hans Schaefer Slide 16

Tilstander inne i hverandre (state charts) Off On Etter denne overgang blir begge to parallelle tilstandsmaskiner startet Phone Display Light Camera Dark 2005-2008, Hans Schaefer Slide 17

Aksjoner (output/effekter) forbundet med tilstander State A Entry / action a1 Exit / action a2 Event x / action a3 Ved inngang og utgang skjer output State B 2005-2008, Hans Schaefer Slide 18

Eksempel Vis klokkeslett Hvordan din digitale klokke virker V. øvre knapp V. øvre knapp Klokketid med lys på V. nedre knapp V. øvre knapp Vis vekketid V. nedre knapp Vis stoppeklokke V. nedre knapp V. øvre knapp Timesetting V. øvre knapp Min.setting V. nedre knapp klokkesetting 2005-2008, Hans Schaefer Slide 19

Feil i modellen og implementasjonen Feil i modellen --------------------------- REVIEW Startilstand ikke definert Guard koblet til tilstand istedenfor overgang Guards overlapper, feil, mangler, ekstra Tilstander mangler, feil, ekstra Overganger mangler, feil, ekstra Overganger fra samme tilstand med samme aktivering Feil i implementasjonen -------------TEST Extra / manglende / korrupt / feil tilstand Manglende / feil aksjon Sneak paths (som ikke burde finnes) Trap doors 2005-2008, Hans Schaefer Slide 20

Test Case Design Definer et sett av inputsekvenser som starter og går tilbake til start-tilstanden (hvis mulig). Testca se no. Input + Guards 1 Betal 100 kr, saldo > 100 2 OK, forfallsregister Tilstand Logget inn Sjekk av transaksjon v/ bruker Forventet neste tilstand Sjekk av transaksjon v/ bruker Forfallsreg display Forventet output Kopi av transaksjon, Spørsmål om bekreftelse HELE FFR + ny trans... Start med tester som tester det som forekommer mest i praksis (bra for regressionstest), legg til mer komplekse tilfeller. Ikke glem ugyldige / umulige overganger! 2005-2008, Hans Schaefer Slide 21

Test Case Design Metoder I forhold til tilstandsdiagram: Branch cover State-event cover Switch cover For guards: Vanlige kriterier som ekvivalensklasser, grenseverdier, kombinasjoner se senere 2005-2008, Hans Schaefer Slide 22

Branch Cover Hver tilstandsovergang testes minst en gang. En vil garantert finne at output mangler eller en helt annen output genereres. 2005-2008, Hans Schaefer Slide 23

Generering av en branch cover test Start i start-tilstanden. Velg overganger og heng de etter hverandre til hver overgang har forekommet minst en gang. Vi antar at tilstandsmaskinen henger sammen. 2005-2008, Hans Schaefer Slide 24

State-event Cover Utfør hver hendelse i hver tilstand. Dette er det samme som branch cover hvis tilstandsmaskinen er fullstendig definert.(dvs det er definert for hver hendelse i hver tilstand, hva som skal skje). Typisk glemmer en hendelser som skal ignoreres. 2005-2008, Hans Schaefer Slide 25

Switch Cover En switch (or 1-switch) er et par med etter hverandre følgende overganger. Utfør hver mulig switch. Her kan en finne at feil overgang blir valgt av programmet. 2005-2008, Hans Schaefer Slide 26

Extra: Process cycle test A test of the combined working of automated and manual procedures. Check that the users can do their job with the information given by the automated system. Check that the users have the information the automated system requires. Check if users have sufficient authorization. Normal workflow and exceptions. No check of the system, just of the manual work /automated work interface. Need for representative real users. 2005-2008, Hans Schaefer Slide 27

Oppsummering for test av tilstandsoverganger Kjør historier for objekter i systemet Eksempel: Livet til en vare, transaksjon, kunde Hvert testfall tilbake til start (f.eks. Startskjerm) Unntak, feil, angre, avbrutt! Lange historier med (såpeopera) 2005-2008, Hans Schaefer Slide 28

Neste testmetode: Mer analyse for data i enkeltfunksjoner: Trinn 3 til 6 Enkeltfunksjoner må testes med ulike input-data. Riktig - feil Stor - liten De neste sidene skal identifisere betingelser som er viktige pr. enkeltfunksjon 2005-2008, Hans Schaefer Slide 29

3. Finn datakanaler Hvor kommer input fra, hvor går output hen? Input: Tastatur, mus, filer, databaser, interne globale data, nettverk, apparater, operativsystem, parametere... Output: Skjerm, printer, høyttaler, filer, databaser, interne globale data, nettverk, apparater, operativsystem, parametere... Ikke glem interne data (lagring!) Ikke glem det du ikke ser på et enkelt vis! 2005-2008, Hans Schaefer Slide 30

4. Finn datastrukturer og elementer (felter) i hver kanal En datastruktur er alt som består av mer enn ett element / felt. Notér for hele strukturen og dens deler: Format / layout - restriksjoner Antall Betingelser som gjelder Datatype Verdiområde Må eller kan forekomme 2005-2008, Hans Schaefer Slide 31

5. Finn relasjoner Kombinasjoner Rekkefølge Syntaks Betingelser på tvers av de enkelte feltene Sjekk alle dataelementer / felter mot hverandre! 2005-2008, Hans Schaefer Slide 32

6. Finn annet Tingenes iboende... Betingelser som ligger implisitt i sakens natur Det du vet om problemet Det du vet om restriksjoner i løsningen 2005-2008, Hans Schaefer Slide 33

Eksempel på en testtabell Funksjon 1 Inputkanal 1 Datastruktur 1 Dataelement 1 Dataelement 2 Betingelse Dataelement 3 Verdiområde, format,... Datastruktur 2 Inputkanal 2 Outputkanal 1 2005-2008, Hans Schaefer Slide 34

Noen generelle punkter ved skjermbilder TK1:Er bildet i virkeligheten slik det ser ut i spesifikasjonen? Er arvede dataverdier korrekt? TK2:Korrekt lengde, type, farge, format, posisjon på alle felt? Grenseverdier, feilmeldinger, hjelpetekster etc. TK3: Skjermbilde- og dialogstandard fulgt? Standardverdier riktig? TK4:Mulighet til å gå ut eller gjenta registrering. Editering av felt. TK5: Opsjonelle felter kan virkelig hoppes over. Obligatoriske felt MÅ fylles ut. TK6: Feil input provoserer ikke sammenbrudd. Feilhåndtering. Ny sjanse for input. TK7: Cursorstyring i felt og fra felt til felt TK8: Blir databasen riktig behandlet og oppdatert? 2005-2008, Hans Schaefer Slide 35

Teknikker for valg av TESTDATA Ekvivalensklasser Grenseverdier Spesialverdier Randomtest 2005-2008, Hans Schaefer Slide 36

Ekvivalensklasseinndeling Definisjon: En ekvivalensklasse er en samling verdier der DU TROR at alle behandles likt av programmet. Tre hovedkonsepter: Dekk ALLE MULIGE inputs eller/og outputs Anta: Hver verdi i en klasse håndteres på samme måte av programmet Ingen overlapp mellom klassene 2005-2008, Hans Schaefer Slide 37

Hvordan finne klasser Numeriske data med verdiområde: tre klasser (1) for små verdier, (2) alt som er tillatt, (3) alt som er for stort. 2005-2008, Hans Schaefer Slide 38

Hvordan finne klasser Tidsdata: fire klasser (1) for tidlig, (før) (2) innen forventet tidsrom, (samtidig med) (3) for sent (etter). (4) umulige verdier (f.eks. ikke eksisterende datoer) 2005-2008, Hans Schaefer Slide 39

Hvordan finne klasser Diskrete verdier: mange klasser (1)...(n) En klasse for hver tillatt verdi, og (n+1) En for "noe annet" (noe ikke tillatt). Betingelse: to klasser. (1) Betingelse oppfylt (2) Betingelse ikke oppfylt. 2005-2008, Hans Schaefer Slide 40

Hvordan finne klasser Listeprosessering: mange klasser (1) Null i listen (2) En i listen (3) Flere i listen. (4) Maksimal listelengde (5) For mange i listen. Eventuelt: (6),... Posisjon for funn: Start, innimellom, slutt, funn, ikke funn 2005-2008, Hans Schaefer Slide 41

Hvordan finne klasser Mengde: to klasser (1) tilhører (2) tilhører ikke (komplement av mengden) Eksistens av en input: to klasser (1) input finnes (2) input finnes ikke Format / datatype av hver input: To eller flere klasser (1) riktig format og datatype (2) ikke riktig 2005-2008, Hans Schaefer Slide 42

Hvordan finne klasser Sortering (1) Oppstigende (2) Nedstigende (3) Ikke ordnet Eventuelt: (4) Duplikater (5) Ikke duplikater 2005-2008, Hans Schaefer Slide 43

Noen flere regler Hvis du tror at en klasse må deles opp mer, gjør det! (Pessimistregelen) Gjør dette med alle inputs og outputs. Avmerk alle klasser som fører til feil / avbrutt som "feil" klasser. Hvis data er sjekket før, kan det evtl. bli ingen feil -klasser. Det er en fordel å gjøre inndelingen hierarkisk: Hvis noe bare er interessant under forutsetning av at andre klasser opptrer, før klassifiseringen inn som sub-klasser under den klassen som gir forutsetningen.(classification Tree Method) 2005-2008, Hans Schaefer Slide 44

Eksempel på en testtabell Funksjon 1 Inputkanal 1 Datastruktur 1 Dataelement 1 Dataelement 2 Dataelement 3 Datastruktur 2 Klasse 1 OK Klasse 2 Feil Klasse 3 OK Inputkanal 2 Outputkanal 1 2005-2008, Hans Schaefer Slide 45

Datavalg ut fra Klasseinndeling Arbeidstrinn: (1) For hver parameter og betingelse, del opp i klasser (gjort under Testbetingels-analyse). (2) Velg testdata og dekk alle inputklasser. (3) Se hvilke outputklasser er dekket. Prøv å dekke resten. (4) Velg eventuelt kombinasjoner av klasser 2005-2008, Hans Schaefer Slide 46

Detaljer for steg 2 Start med globale input. (Fil, database, tabeller,...) Velg global input slik at alle andre klasser har sjanse til å bli dekket. For OK" input klasser: - kombiner Velg data slik at de dekker flest mulig OK" klasser på en gang (tilfeldig valgt, alle inputdata OK). For "feil" input klasser: - ikke kombiner Velg data slik at de til enhver tid bare dekker en "feil" klasse, og alt annet er "OK" (tilfeldige OK" klasser så langt som mulig) 2005-2008, Hans Schaefer Slide 47

Sjekkliste for test av feilhåndtering Har vi: Feildeteksjon Recovery Ryddig utgang (dersom recovery ikke mulig) Feilhåndtering lett å teste???? Mulige feil: 1. Feilmeldingen gir ikke nok info til bruker. 2. Feilmeldingen gir feil feilårsak. 3. Systemet finner ikke feilen fordi annen feilhåndtering maskerer den. 4. Feilhåndteringen selv er feil. 5. Feilhåndteringen finnes ikke. 2005-2008, Hans Schaefer Slide 48

Grenseverdianalyse Grenseverdier avdekker ofte feil. (<, <=, >, >=, off-by-one) (1) Velg grensene til alle inputs og outputs. (2) Bruk testdata på og rundt øvre og nedre grense. Grenser Klasse A Klasse B Test Tilfelle 2005-2008, Hans Schaefer Slide 49

Detaljer for grenseverdianalyse Minimum for hardware Like under tillatt minimum tillatt minimum like over tillatt minimum like under tillatt maksimum maksimum like over tillatt maksimum Ved åpne grenser Bare to verdier pr. grense! PÅ, UTENFOR Maksimum for hardware Første, siste, andre, nestsiste element i en liste, buffer eller fil. Mye input, ingen input (tomme filer) Grenseverdier ved flere dimensjoner. 2005-2008, Hans Schaefer Slide 50

Spesialverditest Lag testdata for verdier der de brukte funksjoner virker spesielt. Null og en for aritmetiske funksjoner Maksimale og minimale verdier tillatt i hardwaren Tom streng, spesielle karakterer (&, $, #, /,., ", ~, ', \, Æ, Ø, Å... ) for tekstfunksjoner Tomt dataområde for bufferhåndtering magiske verdier (misbrukte verdier) Defaultverdier Funksjoner med bare ett argument: Test dem med verdier der output er forskjellig fra input og der output er forskjellig fra output av andre liknende funksjoner som kunne (feilaktig) ha vært brukt her. Forsøk å legge inn kode... ( Cross site scripting ) 2005-2008, Hans Schaefer Slide 51

Example from James Whittaker using a default value For example, in Word 2000 the following dialog has an options menu that, when left unchanged, actually makes controls disappear when the dialog is redisplayed. Note the missing heading level controls. Moreover, it changes the display from 3 headings to 9 heading without the user entering any values! Try this: 1) Invoke MS Word 2000, Rev 9.0.2720 or WORD 98 or later on Macintosh 2) ->File->New->Blank Document 3) ->Insert->Index and Tables 4) -> Table of Contents tab. 5) -> Options 6) -> OK (Changing nothing) 7) Note that everything is normal. There are 3 levels selected and three levels displayed. 8) Repeat steps 5 and 6. 9) Now note that there are 9 levels selected! You see them in the preview display field. 10) Repeat steps 5 and 6. 11) Now note that the levels control has disappeared! (On Mac with WORD 98 this does NOT happen, it remains with 9 levels) The default settings change without warning, forcing the user to reset the values. This odd behavior nicely demonstrates the second attack: force software to display the value of internal data and then change some (but not all) or none of the values. This requires defaults to be set; if no defaults have been coded, then the software may very well fail. 2005-2008, Hans Schaefer Slide 52

Random test Verdier blir plukket tilfeldig. Helst ved bruk av random-generator. Problem: Testorakel. Finner feil som ikke de andre metodene finner. Spesielle kombinasjoner. Feil for bare noen få verdier. Det en ikke hadde tenkt på. 2005-2008, Hans Schaefer Slide 53

Feilgjetting Usystematisk metode som brukes etter de systematiske. Lag testdata som vil vise antatte typer feil, basert på skepsis. Misbruk, misforståelser. Vi må vite hvilke feil er vanlige. Derfor: Skriv opp feil som finnes av brukerne! Vi trenger "destruktiv" tenkning. 2005-2008, Hans Schaefer Slide 54

Detaljer for feilgjetting Spesielle ideer: Generelle ideer: Tomme inputlister Gå rett ut av modulen igjen etter start Database full eller ikke tilgjengelig Input mangler For mye input (repetert for mange ganger) Feil korrelasjon mellom inputs Forbudte situasjoner Umulige situasjoner Reset av timer Norske bokstaver Tall med ledende pluss, null, eller blanke eller punkter imellom Uklarheter Motsigelser Misforståelser Hva hvis... Ønskelige forhold Ikke gjennomtenkt 2005-2008, Hans Schaefer Slide 55

Test av forretningslogikk Hver betingelse enkeltvis Ja og Nei Alle kombinasjoner Parvis kombinasjoner Bruk av beslutningstabell Mer om det hvis vi har tid. 2005-2008, Hans Schaefer Slide 56

Litteratur Glenford Myers, The Art of Software Testing, 1979 på dansk i Borgen forlag, København, 1984: "Kunsten at teste edb-programmer". Boris Beizer, Software Testing Techniques, Van Nostrand Reinhold, 1990. En meget detaljert bok om testdatavalgmetoder. For spesialister i testing. Boris Beizer, Black Box Testing, 1995 Introduksjon, noe formell James Whittaker, How to Break Software, Addison-Wesley, 2002. Meget praktisk. Linz, Schaefer, Spillner, Software Testing Foundations, 2nd ed. Rocky Nook 2007 Omhandler pensum i internasjonal tester sertifiserings-eksamen (ISTQB) Paul C. Jørgensen, Software Testing - A Craftman s Approach, 3rd ed., CRC Press 2008 2005-2008, Hans Schaefer Slide 57