Certified Tester Foundation Level Syllabus



Relaterede dokumenter
Certified Tester Pensum for Foundation-niveauet

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

Idékatalog Planlægning og brug af test i statslige it-projekter

Nye testteknikker fra ISTQB - direkte fra hylderne. Ole Chr. Hansen

Certificeret Tester. Advanced Test Manager Pensum

Certificeret tester. Syllabus Advanced level. Version International Software Testing Qualifications Board

Udbud af RIPA-Syd. Underbilag 14.A - Definitioner og testtype katalog

Procedure for systemtest

Pensumbeskrivelse for ISEB Softwaretest foundation Certificering (Grundlæggende certificering for softwaretestere) Version 1.0

Testprocesser og målinger i test. Jesper Schultz, Nykredit 19. november 2009

Agil-model versus V-model set i lyset af en testers dilemmaer

Plan for præsentationen

Au Aarhus Universitet. Aarhus Universitet AU på STADS Teststrategi Version 1.0

Certificeret Tester. Advanced Test Analyst Pensum

CV Jakob Niemann. Resumé: Nøglekvalifikationer. Personlighed. Født: 24/

Succesfuld implementering af automatiseret test

Hos Lasse Ahm Consult vurderer vi at følgende supplerende krav i de enkelte kravelementer er væsentlige at bemærke:

10 spørgsmål der vil hjælpe dig med dine testcases

Foundation Level Syllabus Certified Tester

Hos Lasse Ahm Consult vurderer vi at følgende krav i de enkelte kravelementer er væsentlige at bemærke:

DE BEAR TECHNOLOGY. o Processer, metoder & værktøjer. info@dbtechnology.dk

Automation Projektledelse Networking GAPP. GAPP kravspecifikation

BILAG 5.D DOKUMENTATION

Kontrakt om Testressourcer. Bilag 1a - Situationsbeskrivelse. 23. oktober Version 1.0

Branchens perspektiv på den gode indkøbs organisation. En måling er bedre end 100 mavefornemmelser. Per Hartlev

Hos Lasse Ahm Consult vurderer vi at følgende krav i de enkelte kravelementer er væsentlige at bemærke:

Dansk testbegrebsliste version 1.0

Scope Management ITU #ituscpmgt

Teksten i denne instruktion er ikke en del af Kontrakten og vil blive fjernet ved kontraktindgåelse.

Virksomheden bør udvikle, implementere og konstant forbedre de rammer, der sikrer integration af processen til at håndtere risici i virksomhedens:

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test

Underbilag 14 B: Oversigt over prøve- og testtyper. Udbud om levering, installation, implementering, support, drift og vedligehold af BAS

Kvalitetssikring af IT udvikling hos TDC

Branchens perspektiv på den gode indkøbs organisation. En måling er bedre end 100 mavefornemmelser. Per Hartlev

Infoblad. ISO/TS Automotive

Bilag 6 Afprøvninger Version

High performance maksimér potentialet. En måling er bedre end 100 mavefornemmelser. Per Hartlev 30/9-2015

Kontrakt om Videreudvikling, Vedligeholdelse og Support af IMK2- systemet

Indhold. Forord... 11

Test i Danmark Undersøgelse på TestExpo 2014

Bias Reducing Operating System - BROS -

Bilag 10. Afprøvning

STUDIEORDNING. professionsbachelor i softwareudvikling

Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation

Behov for mere indsigt i softwaretest? Anvend testmetrikker!

Fælles teststrategi for Ejendomsdataprogrammet og Adresseprogrammet

Infoblad. IATF Automotive

OPTION TIL RM OG RN BILAG 12 TIL KONTRAKT OM EPJ/PAS PRØVER

Softwaretest. - også af "ikke testbar" software. DAPUG erfamøde 7. marts 2012 Thomas Vedel, Thomas Vedel Consult thomas@veco.

Bilag 9, Kvalitetssikring

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Accepttest-specifikation

dfgfdhsjfgdghjghfkfhgkfhjsrt Test som praktisk håndværksdisciplin Sara Stürup Willer

Udbud af Telemedicinsk løsning til hjemmemonitorering. Bilag 14 - Prøver

Audit beskrivelser for PL

Mangelfuldt dokumenterede it-systemer. Hvordan løses udfordringen?

LEVERANCE 1.3. Model for kvalitetssikring

Bilag 14 Prøver INSTRUKTION TIL TILBUDSGIVER:

[Navn på Tilbudsgiver] Udbudsmateriale. Dato: Bilag 14. Version: 1.0. Bilag 14. Prøver. Bilag 14 Prøver Side 1 / 36

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

Statistisk databaseret automatisk test. Jesper Mortensen / Erik Dargsdorff

ISO 9001:2015 OG ISO 14001:2015 NYE VERSIONER AF STANDARDERNE ER PÅ VEJ ER DU KLAR? Move Forward with Confidence

DANSK IT ARKITEKTUR CERTIFICERING

Load Test. Projektet afgår om få minutter fra SPOR 3

Test i Danmark. Undersøgelse på. TestExpo

Bilag 19: Test af DTT-nettet

En måling er bedre end 100 mavefornemmelser

Performancetest af patientkritisk system DSTB Per Skjoldager ahoc - Jesper Mortensen ahoc

Målbillede for kontraktstyring. Juni 2018

Bring lys over driften af belysningen

Det europæiske kvalitetsmærke tildeles en uddannelsesinstitution efter følgende kriterier.

DSDW, Jobindsats og Refusionsløsningen

Ejendomsdataprogrammet - Fælles teststrategi

SOLRØD KOMMUNE ESDH. Afprøvning. Bilag 6

Velkommen Gruppe SJ-1

Terminologiliste til Software Testing (ISTQB version 1.5)

Styring af testmiljøer almindelig god praksis

Projektlederens roller og kompetencer. Cases til Projektlederens roller og kompetencer

Sikkerhedsanbefaling. Forholdsregler ved ophør af serviceopdateringer til Windows XP Embedded

Kvartalsrapport vedr. fase 1 af SKATs systemmodernisering for 1. kvartal 2008

Case til opgaven: Evaluering som belutningsmodel for forandring. Case til opgaven: Evaluering som beslutningsmodel for forandring.

BILAG 7. Dokumentation

Studieordning Professionsbachelor i softwareudvikling National del

10 gode råd. Vælg den rette model. af konsulent Morten Korsaa, DELTA

Guide til SoA-dokumentet - Statement of Applicability. August 2014

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases

BILAG 0 TIL KONTRAKT OM EOJ-SYSTEM DEFINITIONER

FRA USECASE TIL TESTCASE HP TEST BRUGERKONFERENCE, 10. APRIL 2014

Adresseprogrammet - Fælles teststrategi

TEST MANAGEMENT I ANSKAFFELSESPROJEKTER. DSTB generalforsamling 22/

Målbillede for risikostyring i signalprogrammet. Juni 2018

Procedurer for styring af softwarearkitektur og koordinering af udvikling

Au Aarhus Universitet. Aarhus Universitet AU STADS Organisatorisk Implementering og Forankring PID Version 1.0

Prøverne gennemføres som henholdsvis en Idriftsættelsesprøve, en Driftovertagelsesprøve og en. Prøve Delprøve Delprøve

Revideret Miljøledelsesstandard

Delaftale 3 Pap-, papir-, glas-, metal- og træaffald

Retningslinjer for arkitekturreviews Version 1.0. Maj 2017

Indholdsfortegnelse Afprøvning af Leverancen Fællesregler for afprøvning Fejl! Bogmærke er ikke defineret. Installationsprøve Delleveranceprøve

Vejledning: Side 2 af 36 Bilag 11

Transkript:

Version 2007 Dansk udgave

Copyright 2007, ophavsmændene (Thomas Müller (formand), Dorothy Graham, Debra Friedenberg og Erik van Veendendal). Copyright 2005, ophavsmændene (Thomas Müller (formand), Rex Black, Sigrid Eldh, Dorothy Graham, Klaus Olsen, Maaret Pyhäjärvi, Geoff Thompson og Erik van Veendendal), alle rettigheder forbeholdes. Ophavsmændene overfører copyright til (herefter kaldet ISTQB). Ophavsmændene (de aktuelle copyrightindehavere) og ISTQB (som den fremtidige copyrightindehaver) har aftalt følgende brugsbetingelser: 1) Enhver enkeltperson eller uddannelsesvirksomhed må bruge denne syllabus som grundlag for et uddannelsesforløb, hvis ophavsmændene og ISTQB er angivet som kilde og copyrightindehavere og forudsat, at al sådan uddannelse kun oplyser syllabus efter forelæggelse til officiel akkreditering af undervisningsmaterialet til et godkendt nationalt ISTQB-nævn. 2) Enhver enkeltperson eller gruppe af enkeltpersoner må bruge denne syllabus som grundlag for artikler, bøger eller anden afledt skrift, hvis ophavsmændene og ISTQB er oplyst som kilde og copyright-indehavere af syllabus. 3) Ethvert godkendt nationalt ISTQB-nævn må oversætte denne syllabus og autorisere den (eller oversættelsen heraf) til andre parter.

Revisionshistorie Version Dato Bemærkninger ISTQB 2007 01-Maj-2007 Certified Tester Vedligeholdelsesudgivelse - se Tillæg E - Releasenotat til Syllabus 2007. ISTQB 2005 01-Juli-2005 Certified Tester ASQF V2.2 Juli-2003 ASQF Syllabus Foundation Level Version 2.2 Lehrplan Grundlagen des Softwaretestens ISEB V2.0 25-Feb-1999 ISEB Foundation Syllabus V2.0 25. februar 1999 Version 2007 Side 3 af 80 1. maj 2007

Indholdsfortegnelse Certified Tester... 1... 1 Revisionshistorie... 3 Indholdsfortegnelse... 4 Taksigelser... 9 Introduktion til denne syllabus... 10 Formålet med dette dokument... 10 Certified Tester Foundationniveau i software-test... 10 Undervisningsformål/vidensniveau... 10 Eksamen... 10 Akkreditering... 11 Detaljeringsgrad... 11 Sådan er denne syllabus organiseret... 11 Testprincipper (K2)... 12 Undervisningsformål for grundlæggende test... 12 1.1. Hvorfor er test nødvendig? (K2)... 12 1.2. Hvad er test? (K2)... 12 1.3. Generelle testprincipper (K2)... 12 1.4. Grundlæggende testproces (K1)... 12 1.5. Psykologien i test (K2)... 12 1. Hvorfor er test nødvendig (K2)... 13 Termer... 13 1.1.1. Kontekst i softwaresystemer (K1)... 13 1.1.2. Årsager til softwarefejl (K2)... 13 1.1.3. Testrollen ved softwareudvikling, vedligeholdelse og drift (K2)... 13 1.1.4. Test og kvalitet (K2)... 13 1.1.5. Hvor megen test er nok? (K2)... 14 1.2 Hvad er test? (K2)... 15 Termer... 15 Baggrund... 15 1.3 Generelle testprincipper (K2)... 16 Termer... 16 Principper...16 Princip 1 Testviser tilstedeværelse af defekter... 16 Princip 2 Udtømmende test er umulig... 16 Princip 3 Tidlig test... 16 Princip 4 Defekt-klyngedannelse... 16 Princip 5 Pesticide-paradoks... 16 Princip 6 Test er afhængig af sammenhængen... 16 Princip 7 Fravær-af-fejl-fejltagelsen... 16 1.4 Grundlæggende testproces (K1)... 17 Termer... 17 Baggrund... 17 1.4.1 Testplanlægning og kontrol (K1)... 17 1.4.2 Testanalyse og design (K1)... 17 Version 2007 Side 4 af 80 1. maj 2007

1.4.3 Testimplementering og afvikling (K1)... 18 1.4.4 Evaluering af udgangskriterier og rapportering (K1)... 18 1.4.5 Testlukningsaktiviteter (K1)... 19 1.5 Psykologien i test (K2)... 20 Termer... 20 Baggrund... 20 Referencer... 21 2. Test igennem hele softwarens livscyklus (K2)... 22 2.1 Softwareudviklingsmodeller (K2)... 22 2.2 Testniveauer (K2)... 22 2.3 Testtyper (K2)... 22 2.4 Vedligeholdelsestest (K2)... 22 2.1 Softwareudviklingsmodeller (K2)... 23 Termer... 23 Baggrund... 23 2.1.1 -V-model (sekventiel udviklingsmodel) (K2)... 23 2.1.2 Iterativ-inkrementelle udviklingsmodeller (K2)... 23 2.1.3 Test i en livscyklusmodel (K2)... 23 2.2 Testniveauer (K2)... 25 Termer... 25 Baggrund... 25 2.2.1 Komponenttest (K2)... 25 2.2.2 Integrationstest (K2)... 25 2.2.3 Systemtest (K2)... 26 2.2.4 Accepttest (K2)... 26 Brugeraccepttest... 27 Drifts(accept)test... 27 Kontrakt- og regelaccepttest... 27 Alfa- og beta- (eller felt-)test... 27 2.3 Testtyper (K2)... 28 Termer... 28 Baggrund... 28 2.3.1 Test af funktion (funktionstest) (K2)... 28 2.3.2 Test af ikke-funktionelle softwareegenskaber (ikke-funktionel test) (K2)... 28 2.3.3 Test af softwarestruktur/-arkitektur (strukturel test) (K2)... 29 2.3.4 Test i forbindelse med ændringer (bekræftelsestest (gentest) og regressionstest) (K2)... 29 2.4 Vedligeholdelsestest (K2)... 30 Termer... 30 Baggrund... 30 Referencer... 30 3. Statiske teknikker (K2)... 31 3.1 Statiske teknikker og testproces (K2)... 31 3.2 Reviewproces (K2)... 31 3.3 Statisk analyse med værktøjer (K2)... 31 3.1 Statiske teknikker og testproces (K2)... 32 Termer... 32 Baggrund... 32 3.2 Reviewproces (K2)... 33 Termer... 33 Baggrund... 33 3.2.1 Faser ved et formelt review (K1)... 33 3.2.2 Roller og ansvar (K1)... 33 Version 2007 Side 5 af 80 1. maj 2007

3.2.3 Reviewtyper (K2)... 34 Uformelt review... 34 Walkthrough... 34 Teknisk review... 34 Inspektion...34 3.2.4 Succesfaktorer for reviews (K2)... 35 3.3 Statisk analyse vha. værktøjer (K2)... 36 Termer... 36 Baggrund... 36 Værdien ved statisk analyse er:... 36 Typiske defekter fundet ved statiske analyseværktøjer indbefatter:... 36 Referencer... 36 4. Testdesignteknik (K3)... 37 4.1 Testudviklingsprocessen (K2)... 37 4.2 Kategorier af testdesignteknik (K2)... 37 4.3 Specifikationsbaserede eller black-box-teknikker (K3)... 37 4.4 Strukturbaseret eller white-box-teknikker (K3)... 37 4.5 Erfaringsbaserede teknikker (K2)... 37 4.6 Valg af testteknik (K2)... 38 4.1 Testudviklingsprocessen (K2)... 39 Termer... 39 Baggrund... 39 4.2 Kategorier af testdesignteknikker (K2)... 40 Termer... 40 Baggrund... 40 4.3 Specifikationsbaserede eller black-box-teknikker (K3)... 41 Termer... 41 4.3.1 Ækvivalenspartitionering (K3)... 41 4.3.2 Grænseværdianalyse (K3)... 41 4.3.3 Test af beslutningstabel (K3)... 41 4.3.4 Tilstandsovergangstest (K3)... 42 4.3.5 Usecase test (K2)... 42 4.4 Strukturbaseret eller white-box-teknikker (K3)... 43 Termer... 43 Baggrund... 43 4.4.1 Instruktionstest og dækning (K3)... 43 4.4.2 Beslutningstest og dækning (K3)... 43 4.4.3 Andre strukturbaserede teknikker (K1)... 43 4.5 Erfaringsbaserede teknikker (K2)... 44 Termer... 44 Baggrund... 44 4.6 Valg af testteknikker (K2)... 45 Termer... 45 Baggrund... 45 Referencer... 45 5. Teststyring (K3)... 46 5.1. Testorganisation (K2)... 46 5.2. Testplanlægning og estimering (K2).... 46 5.3. Overvågning og kontrol af testfremdrift (K2)... 46 5.4. Konfigurationsstyring (K2)... 46 5.5 Risiko og test (K2)... 46 5.6 Hændelseshåndtering (K3)... 47 Version 2007 Side 6 af 80 1. maj 2007

5.1 Testorganisation (K2)... 48 Termer... 48 5.1.1 Testorganisation og uafhængighed (K2)... 48 5.1.2 Testlederes og testeres opgaver (K1)... 48 5.2 Testplanlægning og estimering (K2)... 50 Termer... 50 5.2.1 Testplanlægning (K2)... 50 5.2.2 Testplanlægningsaktiviteter (K2)... 50 5.2.3 Udgangskriterier (K2)... 50 5.2.4 Testestimering (K2)... 51 5.2.5 Testtilgang (teststrategier) (K2)... 51 5.3 Overvågning og kontrol af testfremdriften (K2)... 53 Termer... 53 5.3.1 Overvågning af testfremdrift(k1)... 53 5.3.2 Testrapportering (K2)... 53 5.3.3 Testkontrol (K2)... 53 5.4 Konfigurationsstyring (K2)... 55 Termer... 55 Baggrund... 55 5.5 Risiko og test (K2)... 56 Termer... 56 Baggrund... 56 5.5.1. Projektrisici (K2)... 56 5.5.2. Produktrisici (K2)... 56 5.6 Hændelseshåndtering (K3)... 58 Termer... 58 Baggrund... 58 6. Værktøjsstøtte til test (K2)... 60 6.1. Typer af testværktøjer (K2)... 60 6.2. Effektiv brug af værktøjer: Mulige fordele og risici (K2)... 60 6.3. Introduktion af værktøj i en organisation (K1)... 60 6.1 Typer af testværktøjer (K2)... 61 Termer... 61 6.1.1. Klassificering af testværktøj (K2)... 61 6.1.2. Værktøjssupport til styring af test og tests (K1)... 61 Teststyringsværktøjer... 61 Kravstyringsværktøjer... 62 Hændelseshåndteringsværktøjer... 62 Konfigurationsstyringsværktøjer... 62 6.1.3 Værktøjsstøtte til statisk test (K1)... 62 Reviewværktøjer... 62 Statiske analyseværktøjer (U)... 62 Modelleringsværktøjer (U)... 63 6.1.4. Værktøjsstøtte til testspecifikation (K1)... 63 Testdataforberedelsesværktøjer (U)... 63 6.1.5. Værktøjsstøtte til testafvikling og -logging (K1)... 63 Testafviklingsværktøjer... 63 Testharness-/enhedstest-rammeværktøjer (U)... 64 Testsammenlignere... 64 Dækningsmåleværktøjer (U)... 64 Sikkerhedsværktøjer... 64 6.1.6. Værktøjsstøtte til performance og overvågning (K1)... 64 Version 2007 Side 7 af 80 1. maj 2007

6.1.7. Værktøjssupport til specifikke programområder (K1)... 65 6.1.8 Værktøjssupport vha. af andre værktøjer (K1)... 65 6.2 Effektiv brug af værktøjer: mulige fordele og risici(k2)... 66 Termer... 66 6.2.1. Mulige fordele og risici ved værktøjsstøtte til test (for alle værktøjer (K2)... 66 6.2.2.Specielle overvejelser for nogle værktøjstyper (K1)... 66 Testafviklingsværktøjer... 66 Performancetestværktøjer... 67 Statiske analyseværktøjer... 67 Teststyringsværktøjer... 67 6.3 Introduktion af et værktøj i en organisation (K1)... 68 Termer... 68 Baggrund... 68 Referencer... 68 7. Referencer... 69 Tillæg A Syllabus-baggrund... 71 Historien om dette dokument... 71 Formål for Foundation Certificate qualification... 71 Formål for international kvalifikation (bearbejdet efter ISTQB-mødet i Sollentuna, November 2001)... 71 Adgangskrav for denne kvalifikation... 72 Baggrund og historie for Foundation Certificate in... 72 Tillæg B Undervisningsmål/vidensniveau... 73 Niveau 1: Husk (K1)... 73 Niveau 2: Forstå (K2)... 73 Niveau 3: Anvende(K3)... 73 Reference...73 Tillæg C Gældende regler for ISTQB... 74 Foundation syllabus... 74 Generelle regler... 74 Aktuelt indhold... 74 Undervisningsformål... 74 Referencer... 75 Informationskilder... 75 Tillæg D Bemærkning til undervisere... 76 4.3 Specifikationsbaseret eller black-box-teknikker... 76 4.4 Strukturbaseret eller white-box-teknikker... 76 5.6 Hændelseshåndtering... 76 Tillæg E Releasenotat syllabus 2007... 77 Indeks... 78 Version 2007 Side 8 af 80 1. maj 2007

Taksigelser Dette dokument er skrevet af Working Party Foundation Level (2007 udgave): Thomas Müller (formand), Dorothy Graham, Debra Friedenberg, og Erik van Veendendal. Hovedteamet takker reviewteamet (Hans Schaefer, Stephanie Ulrich, Meile Posthuma, Anders Pettersson, og Wonil Kwon) og alle nationale boards for forslag til den nuværende version af Syllabus. Dette dokument er skrevet af Working Party Foundation Level (2005 udgave): Thomas Müller (formand), Rex Black, Sigrid Eldh, Dorothy Graham, Klaus Olsen, Maaret Pyhäjärvi, Geoff Thompson og Erik van Veendendal. Kerne-teamet takker review-teamet og alle nationale nævn for forslag til den aktuelle syllabus. En særlig tak til (Østrig) Anastasios Kyriakopoulos, (Danmark) Klaus Olsen, Christine Rosenbeck- Larsen, (Tyskland) Matthias Daigl, Uwe Hehn, Tilo Linz, Horst Pohlmann, Ina Schieferdecker, Sabine Uhde, Stephanie Ulrich, (Indien) Vipul Kocher, (Israel) Shmuel Knishinsky, Ester Zabar, (Sverige) Anders Claesson, Mattias Nordin, Ingvar Nordström, Stefan Ohlsson, Kennet Osbjer, Ingela Skytte, Klaus Zeuge, (Schweiz) Armin Born, Sandra Harries, Silvio Moser, Reto Müller, Joerg Pietzsch, (Storbritannien) Aran Ebbett, Isabel Evans, Julie Gardiner, Andrew Goslin, Brian Hambling, James Lyndsay, Helen Moore, Peter Morgan, Trevor Newton, Angelina Samaroo, Shane Saunders, Mike Smith, Richard Taylor, Neil Thompson, Pete Williams, (USA) Dale Perry. Version 2007 Side 9 af 80 1. maj 2007

Introduktion til denne syllabus Formålet med dette dokument Denne syllabus danner grundlag for Qualification på Foundationniveau. (herefter kaldet ISTQB) giver den til den nationale eksaminationsenhed til godkendelse af kursusudbydere og til at udlede eksamensspørgsmål på deres lokale sprog. Kursusudbydere fremstiller undervisningsmateriale og bestemmer passende undervisningsmetoder til akkreditering, og syllabussen hjælper kandidater med deres forberedelse til eksamen. Information om historie og baggrund for denne syllabus findes i Bilag eller Appendix) A. Certified Tester Foundationniveau i software-test Kvalifikationen på Foundationniveau er rettet mod enhver, der er involveret i test af software. Dette inkluderer personer i roller som f.eks. testere, testanalytikere, testingeniører, testkonsulenter, testansvarlige, bruger- accepttestere og softwareudviklere. Kvalifikationen på Foundationniveau er også egnet til enhver, der ønsker grundlæggende forståelse af softwaretest, som f.eks. projektledere, kvalitetsansvarlige, softwareprogrammører, forretningsanalytikere, it-ledere og virksomhedsledere. Indehavere af Foundation Certificate vil være i stand til at opnå et højere kvalifikationsniveau i softwaretest. Undervisningsformål/vidensniveau Der gives kognitive niveauer for hvert afsnit i denne syllabus: K1: huske, kende, genkalde. K2: forstå, forklare, begrunde, sammenligne, klassificere, kategorisere, give eksempler, opsummere. K3: anvende, bruge. Der er yderligere oplysninger og eksempler om undervisningsformål i Bilag B. Alle termer, der er oplistet under Termer lige under kapiteloverskrifter, skal kunne huskes(k1), også selvom de ikke udtrykkeligt er nævnt i undervisningsformålet. Eksamen Eksamen i Foundation Certificate er baseret på denne syllabus. Svar på eksamensspørgsmål kan kræve brug af materiale i mere end et afsnit i denne syllabus. Alle afsnit i denne syllabus er eksamensrelevante. Eksamensformen er multiple choice-opgaver. Eksamen kan gennemføres som en del af et godkendt uddannelsesforløb eller tages individuelt (f.eks. i et uddannelsescenter). Version 2007 Side 10 af 80 1. maj 2007

Akkreditering Kursusudbydere, hvis kursusmateriale følger denne syllabus, kan godkendes af et nationalt nævn, der er godkendt af ISTQB. Retningslinjer for akkreditering kan indhentes fra nævnet eller enheden, der giver akkrediteringen. Et akkrediteret kursus er anerkendt som værende i overensstemmelse med denne syllabus og har tilladelse til at en ISTQB-eksamen kan gennemføres som en del af kurset. Yderligere retningslinjer for undervisere findes i Tillæg D. Detaljeringsgrad Detaljeringsgraden i denne syllabus gør det muligt at gennemføre ensartet undervisning og eksamination. For at opnå dette formål, består syllabus af: Generelle undervisningsformål, der beskriver hensigten med foundationniveauet. En liste over oplysninger om undervisningsform, indeholdende en beskrivelse og referencer til ekstra kilder, hvis det ønskes. Undervisningsformål for hvert vidensområde, der kognitivt beskriver udbytte af undervisning og den tankegang, der skal opnås. En liste over termer, som de studerende skal kunne huske og forstå. En beskrivelse af de nøglekoncepter, der skal undervises i, indeholdende kilder som godkendt litteratur eller standarder. Syllabussens indhold er ikke en beskrivelse af hele vidensområdet inden for softwaretest; den afspejler den detaljeringsgrad, der skal dækkes i kurser på foundationniveau. Sådan er denne syllabus organiseret Der er seks hovedkapitler. Overskriften viser niveauerne for de indlæringsmål, der er dækket i kapitlet. F.eks.: 2. Test igennem hele softwarens livscyklus (K2) 115 minutter viser, at kapitel 2 har indlæringsmål på K1 (antages, når der er vist et højere niveau) og K2 (men ikke K3), og det forventes, at det tager 115 minutter at undervise i kapitlets materiale. I hvert kapitel er der et antal afsnit. Hvert afsnit har også indlæringsmål og den fornødne tid angivet. Underafsnit, der ikke har nogen tidsangivelse, kan indeholdes i den tid, der er angivet for afsnittet. Version 2007 Side 11 af 80 1. maj 2007

Testprincipper (K2) 155 minutter Undervisningsformål for grundlæggende test Formålene viser, hvad du skal kunne efter fuldførelse af hvert enkelt modul. 1.1. Hvorfor er test nødvendig? (K2) Beskriv med eksempler hvordan en defekt kan skade en person, miljøet eller en virksomhed. (K2) Skeln mellem rodårsagen til en defekt og effekten heraf. (K2) Giv årsager til hvorfor det er nødvendigt at udføre test ved at give eksempler på det. (K2) Beskriv hvorfor test er en del af kvalitetssikring, og giv eksempler på, hvordan test bidrager til en højere kvalitet. (K2) Husk termerne fejltagelse (error) defekt, fejl, afvigelse og de tilsvarende termer fejltagelse (mistake) og bug. (K1) 1.2. Hvad er test? (K2) Husk de almindelige formål for test. (K1) Beskriv formålet ved test i softwareudvikling, vedligeholdelse og drift som en metode til at finde defekter, skabe tillid og forhindre defekter. (K2) 1.3. Generelle testprincipper (K2) Forklar de grundlæggende principper ved test. (K2) 1.4. Grundlæggende testproces (K1) Husk de grundlæggende testaktiviteter fra planlægning til testafslutningsaktiviteter og hovedopgaverne for hver enkelt testaktivitet. (K1) 1.5. Psykologien i test (K2) Husk, at testens succes påvirkes af psykologiske faktorer (K1): o klare testformål afdækker testerens effektivitet o blindhed overfor egne fejl; o venlig kommunikation og feedback på fejl. Stil testerens og udviklerens holdninger op imod hinanden. (K2) Version 2007 Side 12 af 80 1. maj 2007

1. Hvorfor er test nødvendig (K2) 20 minutter Termer Bug, defekt, fejl, afvigelse, fejltagelse, kvalitet, risiko. 1.1.1. Kontekst i softwaresystemer (K1) Softwaresystemer fylder mere og mere i vores liv, fra forretningssystemer (f.eks. bankverdenen) til forbrugerprodukter (f.eks. biler). Det fleste mennesker har haft oplevelser med software, der ikke fungerede som forventet. Software, der ikke fungerer korrekt, kan føre til mange problemer, herunder tab af penge, tid eller virksomhedsomdømme og kan medføre selv svære personskader eller død. 1.1.2. Årsager til softwarefejl (K2) En fejltagelse er en menneskelig handling, der kan medføre en defekt (fejl, bug) i koden, i softwaren, i et system eller i et dokument. Hvis der opstår en defekt i koden, vil systemet ikke gøre det, det skal (eller det det ikke skal gøre), hvilket medfører en afvigelse. Defekter i software, systemer eller dokumenter kan medføre afvigelser, men det er ikke alle defekter, der medfører dette. Defekter opstår, fordi vi ikke er perfekte, og fordi der er tidspres, kompleks kode, infrastrukturel kompleksitet, ændret teknologi og/eller mange samspil mellem systemer. Afvigelser kan også være forårsaget af miljøbetingelser: stråling, magnetisme, elektroniske felter, og forurening kan medføre fejl i firmware eller påvirke softwareafviklingen ved ændring af hardwaretilstande. 1.1.3. Testrollen ved softwareudvikling, vedligeholdelse og drift (K2) Omhyggelig systemtest og dokumentation kan hjælpe til med at reducere risikoen for problemer under drift og bidrage til softwaresystemets kvalitet, hvis de fundne defekter rettes, før systemet tages i brug. Softwaretest kan også være påkrævet til imødekommelse af kontraktlige, juridiske krav eller industrispecifikke standarder. 1.1.4. Test og kvalitet (K2) Ved hjælp af test er det muligt at måle softwarekvaliteten, hvad angår fundne defekter både for funktionelle og ikke-funktionelle krav og egenskaber (f.eks. pålidelighed, brugbarhed, effektivitet vedligeholdelsesegnethed og portabilitet). Se Kapitel 2 for mere information om ikke-funktionel test. For mere information om softwareegenskaber, se Softwareudvikling Softwareproduktkvalitet (ISO 9126). Test kan give tillid til softwarekvaliteten, hvis der findes få eller ingen defekter. En rigtig designet test, der gennemføres, reducerer det overordnede risikoniveau i et system. Når der findes defekter ved testen, forbedres softwarekvaliteten, når disse defekter rettes. Version 2007 Side 13 af 80 1. maj 2007

Der skal læres af tidligere projekter. Ved at forstå rodårsagen til de fundne defekter i andre projekter, kan processerne forbedres, og dermed kan man forhindre, at disse defekter opstår igen og dermed forbedre kvaliteten i fremtidige systemer. Dette er et aspekt af kvalitetssikring. Test bør være integreret som en del af kvalitetssikringsaktiviteterne (dvs. sideløbende med udvikling af standarder, uddannelse og defektanalyse). 1.1.5. Hvor megen test er nok? (K2) Når man skal beslutte, hvor megen test, der er behov for, skal man tage hensyn til risikoniveauet, herunder tekniske og virksomhedsprodukt- og projektrisici samt projektbegrænsninger, som f.eks. tid og budget. (Risiko drøftes yderligere i Kapitel 5.) Test bør give tilstrækkelige information til interessenterne til at de kan træffe beslutninger om frigivelse af softwaren eller systemet, der testes, til næste udviklingstrin eller til overdragelse til kunder på et veldefineret grundlag. Version 2007 Side 14 af 80 1. maj 2007

1.2 Hvad er test? (K2) 30 minutter Termer Debugging, krav, review, testcase, testning, test- formål. Baggrund En almindelig opfattelse af test er, at det kun betyder at køre tests, dvs. eksekvering af software. Dette er en del af det at teste, men udgør ikke alle testaktiviteterne. Der findes testaktiviteter både før og efter testafviklingen, nemlig aktiviteter såsom planlægning og kontrol, valg af testbetingelser, design af testcases og kontrol af resultater, evaluering af slutkriterier, rapportering om testprocessen og systemet under testen, og afslutning og lukning (f.eks. efter fuldførelse af en testfase). Test omfatter også review af dokumenter (herunder kildekode) og statisk analyse. Både dynamisk test og statisk test kan bruges som middel til opnåelse af de samme mål og giver information til forbedring af det testede system og til udviklings- og testprocessen. Der kan være forskellige testformål: finde defekter; få tillid til kvalitetsniveauet og give information; forebygge defekter. Den tankeproces, det er at designe tests tidligt i forløbet (verifikation af testgrundlag via testdesign) kan hjælpe med at forebygge, at defekter indføres i koden. Review af dokumenter (f.eks. krav) hjælper også med at forebygge at defekter opstår i koden. Forskellige synsvinkler på test afstedkommer forskellige formål. F.eks.: i udviklingstest (f.eks. komponent-, integrations- og systemtest) kan hovedformålet være at få så mange afgivelser som muligt, så softwaredefekter kan identificeres og rettes. I accepttest kan hovedformålet være at få bekræftet, at systemet virker som forventet, for at få tillid til, at det har opfyldt kravene. I nogle tilfælde kan hovedformålet med test være at vurdere softwarekvaliteten (uden hensigter om at rette defekter), for at give informationer til interessenter om risikoen ved at frigive systemet på et givet tidspunkt. Vedligeholdelsestest indebærer ofte test af, at der ikke er opstået nye defekter ved udvikling af ændringerne. Ved driftstest kan hovedformålet være at vurdere systemegenskaber, som f.eks. pålidelighed eller tilgængelighed. Debugging og test er ikke det samme. Test kan vise afvigelser, der er forårsaget af defekter. Debugging er den udviklingsaktivitet, der finder årsagen til en defekt, reparerer koden og kontrollerer, at defekten er rettet korrekt. Efterfølgende gentest foretaget af tester sikrer, at rettelsen rent faktisk retter afvigelsen. Ansvaret for hver aktivitet er meget forskellig, dvs. testere tester, og udviklere debugger. Testprocessen og dens aktiviteter er forklaret i Afsnit 1.4. Version 2007 Side 15 af 80 1. maj 2007

1.3 Generelle testprincipper (K2) 35 minutter Termer Udtømmende test. Principper Der er igennem de seneste 40 år foreslået en række testprincipper, som giver almindelige retningslinjer gældende for al test. Princip 1 Testviser tilstedeværelse af defekter Test kan vise at defekter er til stede, men kan ikke bevise, at der ikke er nogen defekter. Test reducerer sandsynligheden for, at der er endnu ikke afslørede defekter tilbage i softwaren, men selvom der ikke er fundet defekter, er det ikke et bevis for korrekthed. Princip 2 Udtømmende test er umulig Test af alt (alle kombinationer af inputs og startbetingelser) er ikke mulig, bortset fra i helt ubetydelige tilfælde. I stedet for udtømmende test bør risikovurdering og prioritering bruges for at fokusere testindsatsen. Princip 3 Tidlig test Testaktiviteter bør starte så tidligt som muligt i softwarens eller systemudviklingens livscyklus og bør være fokuseret på definerede formål. Princip 4 Defekt-klyngedannelse Et lille antal moduler indeholder de fleste af de defekter, der er fundet ved test forud for frigivelsen eller er ansvarlige for de fleste driftsafvigelser. Princip 5 Pesticide-paradoks Hvis de samme tests afvikles igen og igen, vil det samme sæt testcases til sidst ikke finde nogen nye fejl. For at overvinde dette pesticide-paradoks skal testcases reviewes og revideres regelmæssigt, og nye og anderledes tests skal skrives for at afprøve forskellige dele af softwaren eller systemet for muligvis at finde flere defekter. Princip 6 Test er afhængig af sammenhængen Test udføres forskelligt i forskellige sammenhænge. Sikkerhedskritisk software testes f.eks. anderledes end et e-handelssite. Princip 7 Fravær-af-fejl-fejltagelsen Det hjælper ikke at finde og rette defekter, hvis det fremstillede system ikke opfylder brugernes behov og forventninger. Version 2007 Side 16 af 80 1. maj 2007

1.4 Grundlæggende testproces (K1) 35 minutter Termer Bekræftet test. gentest, udgangskriterier, hændelse, regressionstest, testgrundlag, testbetingelser, testdækning, testdata, testafvikling, testlog, testplan, testprocedure, testpolitik, teststrategi, testsuite, testopsummeringsrapport og test-delprodukter. Baggrund Den mest synlige del af test er afvikling af tests. Men for at være effektiv bør testplaner også indeholde den tid, der skal bruges til planlægning af tests, design af testcases, forberedelse af afvikling og evaluering af status. Den grundlæggende testproces består af følgende hovedaktiviteter: planlægning og kontrol; analyse og design; implementering og afvikling; vurdering af slutkriterier og rapportering; testlukningsaktiviteter. Selv om der er en logisk rækkefølge, kan procesaktiviteterne overlappe hinanden eller finde sted samtidig. 1.4.1 Testplanlægning og kontrol (K1) Testplanlægning er verifikation af testopdraget, definition af testformålet og specifikation af testaktiviteter for at opnå formål og opdrag. Testkontrol er den løbende aktivitet at sammenligne den aktuelle fremdrift med planen og rapportere status, inklusiv afvigelser fra planen. Det omfatter træfning af de forholdsregler, der er nødvendige for at opfylde projektets opdrag og formål. For at testen kan kontrolleres, skal den overvåges gennem hele projektet. Test- planlægning skal tage højde for feedback fra overvågnings- og kontrolaktiviteter. Testplanlægning og kontrolopgaver er defineret i kapitel 5 i denne syllabus. 1.4.2 Testanalyse og design (K1) Testanalyse og design er den aktivitet, hvor det generelle testformål omdannes til håndgribelige testbetingelser og testcases. Testanalyse og design har følgende hovedopgaver: Review af testgrundlaget (som f.eks. krav, arkitektur, design, grænseflader). Evaluering af testbarhed for testgrundlag og testobjekter. Identificering og prioritering af testbetingelser eller testkrav baseret på analyse af testelementer, specifikationen, opførsel og struktur. Design og prioritering af testscases. Identifikation af nødvendige testdata til support af testvilkår og testcases. Version 2007 Side 17 af 80 1. maj 2007

Design af testmiljø-setup og identifikation af evt. påkrævet infrastruktur og værktøjer. 1.4.3 Testimplementering og afvikling (K1) Testimplementering og afvikling er aktiviteterne, hvor testprocedurer eller scripts er specificeret ved at kombinere testcases i en planlagt rækkefølge og inkludere nødvendig information for testafvikling, opsætning af testmiljø og kørsel af test. Testimplementering og afvikling har følgende hovedopgaver: Udvikling, implementering og prioritering af testcases. Udvikling og prioritering af testprocedurer, dannelse af testdata og eventuelt forberedelse af testharness og skrivning af automatiserede testscripts. Dannelse af sekvenser af test ud fra testprocedurer for effektiv testafvikling. Verifikation af at testmiljøet er korrekt opsat. Afvikling af testprocedurer enten manuelt eller vha. afviklingsværktøjer i forhold til den planlagte rækkefølge. Logging af resultatet af testafviklingen og registrering af identitet og version af softwaren under test, testværktøjer og test-delprodukter. Sammenligning af faktiske resultater med forventede resultater. Rapportering af uoverensstemmelser som hændelser og analyse af dem for at fastlægge deres årsag (f.eks. en defekt i koden, i de specificerede testdata, i testdokumentet eller en fejltagelse i udførelsen af testen). Gentagelse af testaktiviteter som et resultat af de aktiviteter, der er blevet udført for hver uoverensstemmelse. F.eks. gen-afvikling af en test, der tidligere fejlede for at få bekræftet en rettelse (gentest), afvikling af en rettet test og/eller afvikling af tests for at sikre, at der ikke er opstået defekter i uændrede områder i softwaren, eller at en defektrettelse ikke har afdækket andre defekter (regressionstest). 1.4.4 Evaluering af udgangskriterier og rapportering (K1) Evaluering af udgangskriterier er den aktivitet, hvor testafviklingen vurderes i forhold til de fastlagte formål. Det bør udføres for hvert testniveau. Evaluering af udgangskriterier har følgende hovedopgaver: Kontrol af testlogs i forhold til de udgangskriterier, der er specificeret i testplanlægningen. Vurdering af, om der er behov for flere tests, eller om de specificerede udgangskriterier bør ændres. Skrivning af en testopsummeringsrapport til interessenterne. Version 2007 Side 18 af 80 1. maj 2007

1.4.5 Testlukningsaktiviteter (K1) Testlukningsaktiviteter indsamler data fra fuldførte testaktiviteter for at konsolidere erfaring, testdelprodukter, facts og tal. F.eks. når et softwaresystem frigives, et testprojekt er fuldført (eller annulleret), når man er nået til en milepæl, eller når en vedligeholdelsesrelease er fuldført. Testlukningsaktiviteter indeholder følgende hovedopgaver: Kontrol af hvilke af de planlagte leverancer der er leveret, lukning af hændelsesrapporter eller oprettelse af ændringsregistreringer for dem der stadig måtte være åbne, og dokumentation af godkendelsen af systemet. Færdiggørelse og arkivering af test-delprodukter, testmiljøet og testinfrastrukturen til senere genbrug. Overdragelse af test-delprodukter til vedligeholdelsesorganisationen. Analyse af de opnåede erfaringer til brug for fremtidige releases og projekter og forbedring af testmodenhed. Version 2007 Side 19 af 80 1. maj 2007

1.5 Psykologien i test (K2) 35 minutter Termer Fejlgætning, uafhængighed. Baggrund Den tankegang, der skal bruges ved test og review, er forskellig fra den, der skal bruges ved softwareudvikling. Med den rette tankegang er udviklere i stand til at teste deres egen kode, men overdragelse af dette ansvar til en tester gøres typisk for at fokusere indsatsen og få ekstra udbytte i form af f.eks. en uafhængig vurdering fra uddannede og professionelle testressourcer. Uafhængig test kan udføres på alle testniveauer. En vis grad af uafhængighed (for at undgå ophavsmandens forudindtagethed) er ofte mere effektivt til at finde defekter og afvigelser. Uafhængighed er imidlertid ikke en erstatning for kendskab, og udviklere kan effektivt finde mange defekter i deres egen kode. Der kan defineres mange uafhængighedsgrader: Tests designet af den person/de personer, der skrev softwaren under test (lav uafhængighedsgrad). Tests designes af en anden person/andre personer (f.eks. fra et udviklingsteam). Tests designet af en person/personer fra en anden organisationsenhed (f.eks. et uafhængigt testteam) eller testspecialister (f.eks. usability eller performance testspecialister). Tests designes af en person/personer fra en anden organisation eller virksomhed (dvs. ved outsourcing eller certificering af en ekstern enhed). Mennesker og projekter styres af formål. Mennesker har en tendens til at tilpasse deres planer til de formål, der er sat af ledelsen eller interessenterne, f.eks. at finde defekter eller til at bekræfte, at softwaren virker. Det er derfor vigtigt klart at fastslå formålene for test. Fund af afvigelser under test kan opfattes som kritik af produktet og af ophavsmanden. Test ses derfor ofte som en destruktiv aktivitet, selvom den er meget konstruktiv hvad angår håndtering af produktrisici. At søge efter afvigelser i et system kræver nysgerrighed, professionel pessimisme, et kritisk øje, opmærksomhed på detaljen, god kommunikation med udviklingskollegaer og erfaring som fejlgætning kan baseres på. Hvis fejl, defekter eller afvigelser kommunikeres på en konstruktiv måde, kan misstemning mellem testere, analytikere, designere og udviklere undgås. Dette gælder såvel for review som for test. Både testeren og testlederen skal have gode samarbejdsevner for at kunne kommunikere faktuelle oplysninger om defekter, fremdrift og risici på en konstruktiv måde. For ophavsmanden til softwaren eller dokumentet kan defektoplysninger hjælpe dem med at forbedre deres færdigheder. De defekter, der findes og rettes under en test, sparer både tid og penge senere og reducerer risici. Der kan opstå kommunikationsproblemer, især hvis testere kun ses som nogle, der er budbringere af uønskede nyheder om defekter. Der er imidlertid mange måder, hvorpå man kan forbedre kommunikation og samarbejdet mellem testere og andre: Version 2007 Side 20 af 80 1. maj 2007

Start hellere med samarbejde end med kamp mind alle om det fælles mål om bedre kvalitet i systemer. Kommuniker produktobservationer på en neutral måde, med fokus på facts uden at kritisere den person, der har skabt det, skriv f.eks. objektive og faktuelle hændelsesrapporter og review-observationer. Forsøg at forstå den anden persons følelser, og hvorfor vedkommende reagerer, som han/hun gør. Sørg for, at den anden person har forstået, hvad du har sagt vice versa. Referencer 1.1.5 Black, 2001, Kaner, 2002 1.2 Beizer, 1990, Black, 2001, Myers, 1979 1,3 Beizer, 1990, Hetzel, 1988, Myers, 1979 1.4 Hetzel, 1988 1.4.5 Black, 2001, Craig, 2002 1.5 Black, 2001, Hetzel, 1988 Version 2007 Side 21 af 80 1. maj 2007

2. Test igennem hele softwarens livscyklus (K2) 115 minutter Undervisningsformål for test igennem hele softwarens livscyklus Formålene viser, hvad du skal kunne efter fuldførelse af hvert enkelt modul. 2.1 Softwareudviklingsmodeller (K2) Forstå sammenhængen mellem udvikling, testaktiviteter og arbejdsprodukter i udviklingslivscyklusen, og giv eksempler baseret på projekt- og produktegenskaber og kontekst K2) Vide at softwareudviklingsmodeller skal tilpasses projektets kontekst og produktegenskaberne. (K1) Husk baggrunden for forskellige testniveauer og egenskaber for en god test i enhver livscyklusmodel. (K1) 2.2 Testniveauer (K2) Sammenlign de forskellige testniveauer: hovedformål, typiske testobjekter, typiske testmål (f.eks. funktionel eller strukturel) og relaterede delprodukter, personer der tester, defekt- og afvigelsestyper, der skal findes. (K2) 2.3 Testtyper (K2) Sammenlign fire softwaretesttyper (funktionel, ikke-funktionel, strukturel og ændringsrelateret) med eksempler. (K2) Vide at funktionelle og strukturelle tests forekommer på alle testniveauer. (K1) Find og beskriv ikke-funktionelle testtyper, baseret på ikke-funktionelle krav. (K2) Find og beskriv testtyper, baseret på analysen af softwaresystemets struktur eller arkitektur. (K2) Beskriv formålet med gentest og regressionstest. (K2) 2.4 Vedligeholdelsestest (K2) Sammenlign vedligeholdelsestest (test af et eksisterende system) med test af et nyt program, hvad angår testtyper, testudløsere og testomfang. (K2) Angiv årsager til vedligeholdelsestest (ændring, konvertering og lukning). (K1) Beskriv den rolle regressionstest og effektanalyse har i vedligeholdelse. (K2) Version 2007 Side 22 af 80 1. maj 2007

2.1 Softwareudviklingsmodeller (K2) 20 minutter Termer Commercial off-the-shelf (COTS), iterativ-inkrementel udviklingsmodel, testniveau, validering, verificering, V-model. Baggrund Test eksisterer ikke i isolation. Testaktiviteter er knyttet til softwareudviklingsaktiviteter. Forskellig udviklingslivscyklusmodeller kræver forskellige tilgange til test. 2.1.1 -V-model (sekventiel udviklingsmodel) (K2) Skønt der findes forskellige V-modeller, anvender en almindelig V-modeltype fire testniveauer svarende til de fire udviklingsniveauer. De fire anvendte niveauer i denne syllabus er følgende: Komponent(unit-)test; Integrationstest; Systemtest Accepttest. Det betyder i praksis, at en V-model kan have flere, færre eller andre udviklingsniveauer, afhængig af projektet og softwareproduktet. Der kan f.eks. være komponentintegrationstest efter komponenttest, og systemintegrationstest efter systemtest. Softwarearbejdsprodukter (som f.eks. forretningsscenarier eller usecases, kravspecifikationer, designdokumenter og kode), der er produceret under udvikling, er ofte grundlag for test på et eller flere testniveauer. Referencer vedr. generiske arbejdsprodukter omfatter Capability Maturity Model Integration (CMMI) eller Softwarelivscyklusprocesser (IEEE/IEC 12207). Verificering og validering (og tidlig testdesign) kan udføres under udvikling af softwarearbejdsprodukterne. 2.1.2 Iterativ-inkrementelle udviklingsmodeller (K2) Iterativ-inkrementel udvikling er processen med etablering af krav, design, opbygning og test af et system, udført som en serie kortere udviklingscykler. Eksempler er: prototypefremstilling, rapid application development (RAD), Rational Unified Process (RUP) og agile udviklingsmodeller. Det endelige system, der er fremstilles i en iteration, kan testes på mange niveauer som en del af dets udvikling. Et inkrement, der føjes til andre, tidligere udviklede, danner et voksende delsystem, der også bør testes. Regressionstest bliver vigtigere og vigtigere i alle iterationerne efter den første. Verificering og validering kan udføres på hvert inkrement. 2.1.3 Test i en livscyklusmodel (K2) I enhver livscyklusmodel er der adskillige karakteristika for en god test: For hver udviklingsaktivitet er der en tilsvarende testaktivitet. Hvert testniveau har et testformål, der specifikt gælder for niveauet. Analyse og design af tests til et bestemt testniveau skal starte under den tilsvarende udviklingsaktivitet. Testere bør involveres i review af dokumenter, så snart udkast er tilgængelige i udviklingslivscyklusen. Version 2007 Side 23 af 80 1. maj 2007

Testniveauer kan kombineres og omorganiseres alt efter projektets eller systemarkitekturens natur. Ved f.eks. integration af et kommercielt off-the-shelf (COTS)-softwareprodukt i et system, kan køberen udføre integrationstest på systemniveau (f.eks. integration til infrastruktur og andre systemer, eller anden systemanvendelse) og accepttest (funktionel og/eller ikke-funktionel og bruger og/eller driftstest). Version 2007 Side 24 af 80 1. maj 2007

2.2 Testniveauer (K2) 40 minutter Termer Alfatest, betatest, komponenttest (også kendt som enheds-, modul- eller programtest), drivere, felttest, funktionelle krav, integration, integrationstest, ikke-funktionelle krav, regelaccepttest, robusthedstest, stubbe, systemtest, testdrevet udvikling, testmiljø, brugeraccepttest. Baggrund For hvert testniveau kan følgende identificeres: deres generiske formål, delprodukt(er) der refereres for udledning af testcases (dvs. testgrundlag), testobjekt (dvs. hvad der testes), typiske defekter og afvigelser, der skal findes, krav til testharness og værktøjsstøtte og specifikke metoder og ansvar. 2.2.1 Komponenttest (K2) Komponenttest søger efter defekter i og kontrollerer funktionen af software (f.eks. moduler, programmer, objekter, klasser etc.), der kan testes individuelt. Det kan gøres isoleret fra resten af systemet, afhængig af konteksten i udviklingslivscyklussen og systemet. Stubbe, drivere og simulatorer kan anvendes. Komponenttest kan indeholde test af funktionalitet og specifikke ikke-funktionelle egenskaber, f.eks. ressourceopførsel (f.eks. hukommelseslæk) eller robusthedstest såvel som strukturel test (f.eks. forgreningsdækning). Testcases tager udgangspunkt i arbejdsprodukter som f.eks. specifikation af komponenten, softwaredesignet eller datamodellen. Typisk foregår komponenttest med adgang til den kode, der testes og med støtte fra udviklingsmiljøet, som f.eks. en enhedstest-ramme eller et debugging-værktøj og involverer i praksis ofte den programmør, der skrev koden. Defekter rettes typisk, så snart de er fundet, uden formel hændelsesregistrering. En metode i komponenttest er at forberede og automatisere testcases før kodning. Det kaldes en test-først-metode eller testdrevet udvikling. Denne metode er meget iterativ og er baseret på cyklusser i udvikling af testcases, derpå fremstilling og integration af små stykker kode og afvikling af komponenttests, indtil de består. 2.2.2 Integrationstest (K2) Integrationstest tester grænseflader mellem komponenter, samspil med andre dele i et system, som f.eks. styresystem, filsystem, hardware eller grænseflader mellem systemer. Der kan være mere end et niveau af integrationstest, og det kan udføres på testobjekter af forskellig størrelse. F.eks.: Komponentintegrationstest tester samspillet mellem softwarekomponenter og udføres efter komponenttest. Systemintegrationstest tester samspillet mellem forskellige systemer og kan udføres efter systemtest. I dette tilfælde kan udviklingsorganisationen måske kun kontrollere den ene side af grænsefladen, så ændringer kan være destabiliserende. Forretningsprocesser, Version 2007 Side 25 af 80 1. maj 2007

der er implementeret som arbejdsforløb kan involvere en række systemer. Problemer på tværs af platforme kan være store. Jo større omfang af integration er, jo sværere bliver det at isolere afvigelser til en specifik komponent eller et system, hvilket kan føre til øget risiko. Systematiske integrationsstrategier kan være baseret på systemarkitekturen (som f.eks. top-down og bottom-up), funktionelle opgaver, transaktionsprocesrækkefølger, eller andre system- eller komponentaspekter. For at reducere risikoen for at finde en defekt på et sent tidspunkt, bør integration normalt være inkrementel i stedet for big-bang. Test af specifikke ikke-funktionelle egenskaber(f.eks. performance) kan være indeholdt i integrationstest. Ved hvert integrationstrin koncentrerer testerne sig udelukkende om selve integrationen. Hvis de f.eks. integrerer et modul A med et modul B, er de interesseret i at teste kommunikationen mellem modulerne, ikke funktionaliteten af hvert enkelt modul. Der kan anvendes både funktionelle og strukturelle metoder. Ideelt set bør testere forstå arkitekturen og have indflydelse på integrationsplanlægningen. Hvis integrationstests planlægges før komponenter eller systemer er bygget, kan disse bygges i den rækkefølge, der er nødvendig for at opnå den mest effektive test. 2.2.3 Systemtest (K2) Systemtest drejer sig om den adfærd for systemet/produktet, der er defineret af omfanget af et udviklingsprojekt eller program. Ved systemtest bør testmiljøet så vidt muligt svare til det endelige mål- eller produktionsmiljø for at minimere risikoen for at miljøspecifikke afvigelser ikke findes ved test. Systemtest kan indeholde tests, der er baseret på risici og/eller kravspecifikationer, forretningsprocesser, usecases eller andre højniveaubeskrivelser af systemadfærd, samspil med styresystem og systemressourcer. Systemtest bør undersøge både funktionelle og ikke-funktionelle krav til systemet. Krav kan være tekst og/eller modeller. Testere skal også håndtere ufuldstændige eller udokumenterede krav. Systemtest af funktionelle krav starter med brug af de bedst egnede specifikationsbaserede teknikker (Black-box) for det aspekt af systemet, der skal testes. Der kan f.eks. dannes en beslutningstabel for kombinationer af de effekter, der er beskrevet i forretningsreglerne. Strukturbaserede teknikker (white-box) kan derefter anvendes til at vurdere grundigheden af testen vedrørende et strukturelement, som f.eks. menu-struktur eller webside-navigation. (Se Kapitel 4.) Systemtest udføres ofte af et uafhængigt testteam. 2.2.4 Accepttest (K2) Accepttest er ofte kundernes eller systembrugernes ansvar; andre interessenter kan også være involveret. Målet med accepttest er at skabe tillid til systemet, dele af systemet eller specifikke ikkefunktionelle egenskaber i systemet. Det er ikke hovedformålet med accepttest at finde defekter. Accepttest kan fastlægge systemets parathed til anvendelse og brug, skønt det ikke nødvendigvis Version 2007 Side 26 af 80 1. maj 2007

er det sidste testniveau. Der kan f.eks. komme en stor-skala systemintegrationstest efter accepttesten af et system. Accepttest kan også forekomme som mere end blot et enkelt testniveau, f.eks.: Et COTS-softwareprodukt kan blive accepttestet, når det installeres eller integreres. Accepttest af en komponents brugervenlighed kan være udført under komponenttest. Accepttest af en ny funktionel forbedring kan komme før systemtest. Typiske former for accepttest indeholder følgende: Brugeraccepttest Verificerer typisk systemets brugsegnethed for virksomhedens brugere. Drifts(accept)test Systemadministratorernes accept af systemet, herunder: test af backup/gendan; katastrofegendannelse; brugerhåndtering; vedligeholdelsesopgaver; periodisk kontrol af sikkerhedssårbarhed. Kontrakt- og regelaccepttest Kontraktaccepttest udføres i forhold til en kontrakts acceptkriterier for fremstilling af kundetilpasset software. Acceptkriterierne bør være defineret, når aftalen indgås. Regelaccepttest udføres i forhold til de lovbestemmelser, der skal overholdes, som f.eks. statslige, retslige eller sikkerhedsmæssige lovbestemmelser. Alfa- og beta- (eller felt-)test Udviklere af markeds- eller COTS-software ønsker ofte at få feedback fra mulige eller eksisterende kunder på markedet, før et softwareprodukt frigives for kommercielt salg. Alfatest udføres hos udviklingsorganisationen. Betatest eller felttest udføres af personer på deres egne lokationer. Begge udføres af mulige kunder, ikke af produktudviklerne. Organisationer kan også bruge andre termer, som f.eks. fabriksaccepttest og accepttest på installationsstedet af systemer, der tidligere er testet og derefter flyttet til et en kundes lokation. Version 2007 Side 27 af 80 1. maj 2007

2.3 Testtyper (K2) 40 minutter Termer Black-box-test, kodedækning, funktionel test, tværoperationalitetstest, loadtest, vedligeholdelsesegnethedstest, performancetest, flytbarhedstest, pålidelighedstest, sikkerhedstest, specifikationsbaseret test, stresstest, strukturel test, brugervenlighedstest, whitebox test. Baggrund En gruppe testaktiviteter kan have det formål at verificere softwaresystemet (eller en del af et system), baseret på en specifik grund eller testmål. En testtype er fokuseret på et bestemt testformål; det kunne være test af en funktion, der udføres af softwaren; en ikke-funktionel kvalitetsegenskab, som f.eks. pålidelighed eller brugervenlighed, strukturen eller arkitekturen af softwaren eller systemet, eller relateret til ændringer, dvs. bekræftelse af at defekter er rettet (gentest) og søgning efter utilsigtede ændringer (regressionstest). Der kan udvikles og/eller anvendes en softwaremodel i strukturel og funktionel test. F.eks. i funktionel test en procesflowmodel, en tilstandsovergangsmodel eller en almindelig sprogspecifikation; og til strukturel test en kontrolflowmodel eller menustrukturmodel. 2.3.1 Test af funktion (funktionstest) (K2) De funktioner, som et system, undersystem eller en komponent, skal udføre, kan være beskrevet i arbejdsprodukter, som f.eks. kravspecifikation, usecases, en funktionel specifikation, eller de kan være udokumenterede. Funktionerne er hvad systemet gør. Funktionelle tests er baseret på funktioner og egenskaber (beskrevet i dokumenter eller forstået af testerne), og deres interoperalitet med specifikke systemer, og de kan udføres på alle testniveauer (f.eks. kan tests til komponenter være baseret på en komponentspecifikation). Specifikationsbaserede teknikker kan bruges til at udlede testbetingelser og testcases fra funktionaliteten af softwaren eller systemet. (Se Kapitel 4.) Funktionel test tager softwarens eksterne adfærd i betragtning (black-box-test). En type af funktionel test, sikkerhedstest, undersøgelser de funktioner (f.eks. firewall), der er relateret til opdagelse af trusler, som f.eks. vira, fra ondsindede personer udefra. En anden type funktionel test, interoperationel test, evaluerer softwarens evne til at interagere med en eller flere udvalgte componenter eller systemer. 2.3.2 Test af ikke-funktionelle softwareegenskaber (ikke-funktionel test) (K2) Ikke-funktionel testomfatter, men er ikke begrænset til, performancetest, loadtest, stresstest, brugervenlighedstest, vedligeholdelsesegnethedstest, pålidelighedstest og flytbarhedstest. Det er testen, der viser, hvordan systemet fungerer. Ikke-funktionel test kan udføres på alle testniveauer. Ordet ikke-funktionel test beskriver de tests, der er nødvendige for at måle de system- og softwareegenskaberne, der kan opgøres mængdemæssigt på en variabel skala, som f.eks. svartid for performancetest. Disse tests kan Version 2007 Side 28 af 80 1. maj 2007

henvise til en kvalitetsmodel, som f.eks. den der er defineret i Software Engineering Software Product Quality (ISO 9126). 2.3.3 Test af softwarestruktur/-arkitektur (strukturel test) (K2) Strukturel (white-box) test kan udføres på alle testniveauer. Strukturelle teknikker anvendes bedst efter specifikationsbaserede teknikker, for at hjælpe med måling af testens grundighed via fastlæggelse af dækning af en strukturtype. Dækning er det omfang en struktur er blevet berørt af en sekvens af testcases, udtrykt som en procentdel af de elementer, der er dækket. Hvis dækningen ikke er 100 %, kan der designes flere tests til at teste de elementer, der manglede og dermed øge dækningen. Dækningsteknikker er beskrevet i Kapitel 4. På alle testniveauer og især ved komponenttest og komponentintegrationstest kan værktøjer anvendes til måling af dækning af kodeelementer, som f.eks. instruktioner eller beslutninger. Strukturel test kan være baseret på systemets arkitektur, som f.eks. et kalde-hierarki. Strukturelle testmetoder kan også anvendes ved system-, systemintegrations- eller accepttest - niveauer (f.eks. til forretningsmodeller eller menustrukturer). 2.3.4 Test i forbindelse med ændringer (bekræftelsestest (gentest) og regressionstest) (K2) Efter en defekt er registreret og rettet, bør softwaren testes igen for at få bekræftet, at den oprindelige defekt er fjernet korrekt. Dette kaldes gentest. Debugging (defektrettelse) er en udviklingsaktivitet, ikke en testaktivitet. Regressionstest er en gentagelse af testen af et allerede testet program, efter der har været foretaget en ændring, for at finde ud af om der er opstået eller afdækket nogle defekter som følge af ændringen/ændringerne. Disse defekter kan være i softwaren der testes eller i en anden relateret eller urelateret softwarekomponent. Den udføres, når softwaren eller miljøet ændres. Omfanget af en regressionstest er baseret på risikoen, der er ved ikke at finde defekter i software, der fungerede tidligere. Tests bør være repeterbare, hvis de skal anvendes til gentest og til støtte for regressionstest. Regressionstest kan udføres på alle testniveauer gælder for funktionel, ikke-funktionel og strukturel test. Regressionssekvenser af testcases køres mange gange og udvikler sig normalt langsomt, så regressionstest er en god automatiseringskandidat. Version 2007 Side 29 af 80 1. maj 2007