Leiden University. The university to discover. Leiden University. The university to discover....

59
Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen

Transcript of Leiden University. The university to discover. Leiden University. The university to discover....

Page 1: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

1 | 58

Testen

Page 2: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

2 | 58Testmethoden

TMap Next – SogetiTestFrame – Logica (CMG)smarTEST – ValoriTestGoal – Collis (testfilosofie)

Page 3: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

3 | 58

TestGoal: de tien testprincipes1. Focus op resultaat2. Bouw aan vertrouwen3. Neem verantwoordelijkheid4. Beheers het testvak5. Sla bruggen6. Test gefaseerd7. Faciliteer de gehele IT-lifecycle8. Geef overzicht en inzicht9. Zorg voor herbruikbaarheid10.Bedenk: testen is leuk

Page 4: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

4 | 58TestGoal: de tien testprincipesFocus op resultaat

Test gefaseerd

Faciliteer de gehele IT-lifecycle

Zorg voor herbruikbaarheid

Businessresultaat

Work Breakdown StructureTestsoortenKwaliteitsattributen

Requirements en ontwerp toetsen op testbaarheid

Regressietesten

Page 5: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

5 | 58Faciliteer de gehele IT-lifecycle

Page 6: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

6 | 58Faciliteer de gehele IT-lifecycle

Requirements en ontwerp toetsen op testbaarheidKwaliteit van ontwerp in vroeg stadium vaststellen

Statische testen – toetsenreview, walkthrough, Inspectievoor documenten of code

Dynamisch testencode

Page 7: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

7 | 58Test gefaseerd - testsoorten

Moduletest (unittest)IntegratietestSysteemtestAcceptatietestKetentestRegressietest

Page 8: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

8 | 58Test gefaseerd – testsoorten - V-model

Page 9: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

9 | 58

Test gefaseerd – testsoorten - V-model

Page 10: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

10 | 58Moduletest

Integratietest:Top-down Gebruik stubs

dummy voor nog te ontwikkelenfunctionaliteit

Bottom-up Gebruik drivers

roept de reeds ontwikkelde modules aan

Combinatie top-down en bottom-up

Page 11: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

11 | 58Logisch versus fysiek testontwerp

Logisch testontwerp (logische testgevallen):

Beschrijft WAT er getest moet worden

Fysiek testontwerp (fysieke testgevallen):

Beschrijft HOE er getest moet worden

© Haagse Hogeschool Academie voor ICT & Media

Page 12: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

12 | 58Stappenplan

OntwerpIntake testbasisOpstellen logische testgevallen (logisch testontwerp)

Op basis van testontwerptechniek

Opstellen fysieke testgevallen (fysiek testontwerp)Definiëren testdata

Page 13: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

13 | 58Stappenplan

InrichtingTestautomatiseringBijvoorbeeld JUnit bij moduletesten

BorgingVaststellen regressietesten

UitvoeringBevindingenbeheerVrijgaveadviesTestrapportage

Page 14: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

14 | 58Ontwerp

Page 15: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

15 | 58Intake testbasis

Testbasis

Totaalverzameling van documenten en systeembeschrijvingen die definiëren waaraan het testobject moet voldoen

Requirements, specificaties

Use case beschrijvingenPSDcodeEnz

Page 16: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

16 | 58Voorbeeld fysieke testgevallenTestbasis:

Specificaties: “Bereken de prijs van een theaterkaartje. 1e rang: 70 euro; 2e rang 50 euro; Onder de 18: 50% korting”

Fysieke testgevallen:Testactie

ID

Testactie Voer in: rang leeftijd

verwacht resultaat

1 1 21 70 2 1 16 35 3 2 21 50 4 2 16 25

Page 17: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

17 | 58Voorbeeld logische testgevallen

Testbasis:Specificaties: “Bereken de prijs van een theaterkaartje. 1e rang: 70 euro; 2e rang 50 euro; Onder de 18: 50% korting”

Logische testgevallen (beslissingstabellentest): rang leeftijd resultaat

geval 1 rang = 1 lft >= 18 geen korting geval 2 rang = 1 lft < 18 korting geval 3 rang = 2 lft >= 18 geen korting geval 4 rang = 2 lft < 18 korting

Page 18: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

18 | 58Voorbeeld logische testgevallen

Testbasis:Specificaties: “Bereken de prijs van een theaterkaartje. 1e rang: 70 euro; 2e rang 50 euro; Onder de 18: 50% korting”

Logische testgevallen (equivalentieklassen): rang leeftijd resultaat

geval 1 rang = 1 lft >= 18 geen korting geval 2 rang = 2 lft < 18 korting

Page 19: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

19 | 58Black/White-box test

White-box:PSD of code is onderdeel van de testbasis.Logische testgevallen (en testacties) worden op grond van PSD of code opgesteld.Verwacht resultaat altijd op grond van specificaties Black-box:

Structuur van de code is geen onderdeel van de testbasisLogische testgevallen (en testacties) worden op grond

van specificaties opgesteld.

Page 20: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

20 | 58White-box test

Code is onderdeel van de testbasis: double berekenPrijs ( int leeftijd, int

rang) { double prijs = 0 ;

if (rang == 1) prijs = 70;

else prijs = 30;

if (leeftijd < 18) prijs = prijs / 2; return prijs;

}

Page 21: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

21 | 58logische testgevallen (white box)

Testbasis:1.Code2.Specificaties: “Bereken de prijs van een

theaterkaartje. 1e rang: 70 euro; 2e rang 50 euro; Onder de 18: 50% korting”

Logische testgevallen op grond van code (white box): rang leeftijd resultaat

geval 1 rang = 1 lft >= 18 geen korting geval 2 rang = 1 lft < 18 korting geval 3 rang ≠ 1 lft >= 18 geen korting geval 4 rang ≠ 1 lft < 18 korting

Page 22: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

22 | 58fysieke testgevallen (white box)

Fysieke testgevallen:

Testactie ID

Testactie Voer in: rang leeftijd

verwacht resultaat

werkelijk resultaat

1 1 21 70 70 2 1 16 35 35 3 2 21 50 30 4 2 16 25 15

Page 23: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

23 | 58fysieke testgevallen (white box)

Fysieke testgevallen - alternatief:

Testactie ID

Testactie Voer in: rang leeftijd

verwacht resultaat

werkelijk resultaat

1 1 21 70 70 2 1 16 35 35 3 3 21 fout? 30 4 3 16 fout? 15

Page 24: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

24 | 58Testscripts

Het uitvoeren van testcases in een bepaalde volgorde noemt men een testscript.Deze wordt uitgevoerd door

De automatische testomgevingDe testerDe opdrachtgever

De volgorde is hierbij soms van belang, soms niet.

Page 25: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

25 | 58Unit test: automatiseren

public class TestAdder { public void testSum() { Adder adder = new AdderImpl(); // can it add positive numbers? assert(adder.add(1, 1) == 2); assert(adder.add(1, 2) == 3); assert(adder.add(2, 2) == 4); // is zero neutral? assert(adder.add(0, 0) == 0); // can it add negative numbers? assert(adder.add(-1, -2) == -3); // can it add a positive and a negative? assert(adder.add(-1, 1) == 0); // how about larger numbers? assert(adder.add(1234, 988) == 2222); }}

interface Adder { int add(int a, int b);}class AdderImpl implements Adder { int add(int a, int b) { return a + b; }}

Bron: wikipedia

Page 26: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

26 | 58Beslissingstabellentest

Testbasis: bevat conditiesGrondige techniek voor het testen van detailfunctionaliteit

Alle combinaties van de condities worden doorlopen

White box en black box is mogelijk

Page 27: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

27 | 58Beslissingstabellentest

Testbasis:Specificaties:

Berekening korting bij een pretpark is als volgt:

65 plussers en jeugd onder de 18 krijgen 10 euro korting.

Een gehuwd persoon krijgt 5 euro kortingCode fragment

Page 28: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

28 | 58Beslissingstabellentest

Te testen code (onderdeel testbasis):

int berekenkorting (int leeftijd, boolean gehuwd) {

int korting = 0; if (leeftijd > 65 || leeftijd < 18)

korting = korting + 10; if (gehuwd) korting = korting + 7; //foutje dus return korting;}

Page 29: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

29 | 58Identificatie testsituaties

Bepaal condities in de testbasis:Conditie is altijd enkelvoudig

Opstellen conditielijstBepalen acties/resultaten in de testbasisOpstellen actielijstOpstellen beslissingtabel

Page 30: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

30 | 58Identificatie testsituaties

TestsituatieCondities/acties 1 2 3 4 5 6 7 8

C1: lft > 65 0 0 0 0 1 1 1 1

C2: lft < 18 0 0 1 1 0 0 1 1

C3: gehuwd 0 1 0 1 0 1 0 1

A1/R1:Korting = 0 X

A2/R2: Korting = 5 X X X X

A3/R3: Korting = 10 X X X X X X

Opmerking: kortingen optellen

Page 31: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

31 | 58Opstellen logische testgevallenLogische testgevallen 1 2 3 4 5 6 7 8

C1: lft > 65 0 0 0 0 1 1 1 1

C2: lft < 180 0 1 1 0 0 1 1

C3: gehuwd 0 1 0 1 0 1 0 1

A1/R1:Korting = 0 X

A2/R2: Korting = 5X X X

A3/R3: Korting = 10 X X X X

Niet mogelijk X X

Opmerking: kortingen optellen

Page 32: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

32 | 58Opstellen fysieke testgevallen

Logische testgevallen 1 2 3 4 5 6

Actie: invoeren leeftijd

25 25 16 16 70 70

Actie: invoerengehuwd

false true false true false true

Resultaat:Korting 0 5 10 15 10 15

Page 33: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

33 | 58Opstellen fysieke testgevallen

Logische testgevallen

Actie:Invoeren leeftijd

Actie:Invoeren gehuwd

Resultaat:korting

Geval 1 25 false 0

Geval 2 25 true 5

Geval 3 16 false 10

Geval 4 16 true 15

Geval 5 70 false 10

Geval 6 70 true 15

Page 34: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

34 | 58Opstellen testscript

De volgorde van de tests maakt hier niets uit.Geef b.v. aan dat de tests in de gegeven volgorde uitgevoerd moeten worden.

Page 35: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

35 | 58beslissingstabellentestnaam Bereken contributie per jaar

samenvatting Berekent de contributie voor een lid van de sportvereniging. De contributie is afhankelijk van de beoefende sport en de leeftijd van het lid.

actoren penningmeester

aannamen De penningmeester kent de sport die het lid beoefent en is ook op de hoogte van zijn leeftijd

beschrijving [1] De penningmeester voert een 'H' of een 'V' in afhankelijk van of de beoefende sport handbal of voetbal is.[2] De penningmeester voert de leeftijd in.[3] De penningmeester drukt op de knop 'OK'[4] Het systeem berekent de contributie en toont dit op het scherm.

uitzondering [onbestaande sport] Als geen sport wordt opgegeven of er een verkeerde invoer gegeven wordt verschijnt de melding "Sport moet 'H' of 'V' zijn“.

resultaat De contributie is berekend volgens onderstaande regels, en is op het scherm getoond.Contributieregels:- Handballers betalen 150 euro- Voetballers betalen 100 euro- Bovendien krijgen leden ouder dan 45 jaar 50% korting.

Page 36: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

36 | 58Identificatie testsituatiesTestsituatieCondities/acties 1 2 3 4 5 6 7 8

C1: sport = ‘H’ 0 0 0 0 1 1 1 1

C2: sport = ‘V’ 0 0 1 1 0 0 1 1

C3: lft > 45 0 1 0 1 0 1 0 1

A1/R1:contributie = 150 X X

A2/R2: contributie = 100 X X

A3/R3: Korting = 50% X X X

Foutmelding sport X X

Niet mogelijk X X

Page 37: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

37 | 58Opstellen logische testgevallen

TestsituatieCondities/acties 1 2 3 4 5 6

C1: sport = ‘H’ 0 0 0 0 1 1

C2: sport = ‘V’ 0 0 1 1 0 0

C3: lft > 45 0 1 0 1 0 1

A1/R1:contributie = 150 X X

A2/R2: contributie = 100 X X

A3/R3: Korting = 50% X X X

Foutmelding sport X X

Page 38: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

38 | 58Opstellen fysieke testgevallen

Logische testgevallen

Actie:Invoeren sport

Actie:Invoeren leeftijd

Resultaat:contributie

Geval 1 “P” 40 foutmelding

Geval 2 “P” 50 foutmelding

Geval 3 “V” 40 100

Geval 4 “V” 50 50

Geval 5 “H” 40 150

Geval 6 “H” 50 75

Page 39: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

39 | 58AlgoritmetestGrondige techniek voor het testen van detailfunctionaliteit;kwaliteitstattribuut: functionality

Testbasis: bevat code of PSD (verwerkingslogica met beslispunten en paden);Het gedrag van het systeem is dus beschreven m.b.v. beslispunten en paden.

Formele white box testontwerptechniek

Page 40: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

40 | 58Algoritmetest - voorbeeld

Testbasis:Specificaties:

Lees een aantal getallen in, afgesloten door een 0 (nul).Druk dezelfde getallen eenmaal af en daarachter hoe vaak dit getal voorkomt.

PSD - verwerkingslogica met beslispunten en paden

Page 41: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

41 | 58Algoritmetest

Page 42: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

42 | 58Identificatie testsituaties

1. Opstellen stroomschemaVaststellen acties/statementsVaststellen padenVaststellen beslispunten

2. Vaststellen beslispunten en in en uitgaande paden

3. Vaststellen van de feitelijke testsituaties:Bij testmaat 1: padenBij testmaat 2: padcombinaties

Page 43: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

43 | 58Identificatie testsituaties

start

actie a

A

actie b actie c

actie d

eind

actie ben c

1

2 3

4

1. Opstellen stroomschema

Page 44: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

44 | 58Identificatie testsituaties

2. Vaststellen beslispunten en in en uitgaande paden

Beslispunt A:

IN: 1,2,3

UIT: 2,3,4

3. Vaststellen van de feitelijke testsituaties:Bij testmaat 1:

paden 1;2;3;4;Bij testmaat 2:

padcombinaties: 1-2; 1-3; 1-4; 2-2; 2-3; 2-4;

3-2; 3-3; 3-4;

Page 45: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

45 | 58Opstellen logische testgevallen

Alle testsituaties moeten tenminste één keer doorlopen worden.

Testmaat 1: Elk pad wordt 1 keer doorlopenTestmaat 2: Alle combinaties van 2 opeenvolgende paden zijn afgedekt

Herhalingen moeten bij testmaat 1: 0 én 1 of meer keer doorlopen wordenHerhalingen moeten bij testmaat 2: 0 én 1 én 2 of meer keer doorlopen wordenHet hele algoritme moet doorlopen worden (elk logisch testgeval begint dus bij pad 1 en eindigt bij pad 4).

Page 46: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

46 | 58Opstellen logische testgevallen

Testmaat 1

testgeval paden1 1-4 0 herhalingen2 1-2-3-4 2 herhalingen

Testmaat 2

testgeval paden1 1-4 0 herhalingen2 1-2-4 1 herhalingen3 1-3-2-2-3-3-4 5 herhalingen

Page 47: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

47 | 58Opstellen fysieke testgevallen

Testmaat 1logischetestgevallen

Actie:Invoeren getal

Verwacht resultaat

Werkelijk resultaat

Geval 1 0

Geval 2 4 8 0 4 1 8 1

Testmaat 2logischetestgevallen

Actie:Invoeren getal

Verwacht resultaat

Werkelijk resultaat

Geval 1 0

Geval 2 4 0 4 1

Geval 3 onmogelijk

Page 48: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

48 | 58Opstellen fysieke testgevallenAanpassen logische testgevallen

Testmaat 2 Fysieke testgevallen

logischetestgevallen

Actie:Invoeren getal

Verwacht resultaat

Werkelijk resultaat

Geval 1 0

Geval 2 4 0 4 1

Geval 3 4 8 6 6 6 2 0 4 1 8 1 6 3 2 1

Testmaat 2 Logische testgevallen

testgeval paden1 1-4 0 herhalingen2 1-2-4 1 herhalingen3 1-2-3-3-2-2-3-

46 herhalingen

Page 49: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

49 | 58Test coverages

Testen hebben verschillende dekkingsgradenTester bepaalt welke dekkingsgraad vereist is.

Page 50: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

50 | 58Path coverage

Elk pad en elke combinatie van paden worden doorlopen.

Voorbeeld: algoritmetest

Page 51: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

51 | 58Statement coverage

Elk statement wordt tenminste 1 keer uitgevoerdZwakker dan padendekking met testmaat 1;Voorbeeld:

x = 0;if a > b x = 1;a = b/x;

start

x = 0

a > b

x = 1

a = b/x

eind

1

2 3

Page 52: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

52 | 58

Dekkingsvormen m.b.t. beslispuntenEen beslispunt is een samenstelling van een of meer

condities,

die de voorwaarden definieert voor de verschillende

mogelijkheden in het systeemgedrag.

Testbasis: bevat in ieder geval een formele beschrijving van

het beslispunt, waarbij de afzonderlijke condities verbonden

zijn met and, or, not

Dekkingsvormen gaan altijd over precies één beslispunt

Black box en white box

Voorbeeld:aantal boeken< 5 and uitstaande boete < 25

Page 53: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

53 | 58

Dekkingsvormen m.b.t. beslispuntenCondition coverage:De mogelijke uitkomsten (true, false) van elke

conditie worden minimaal 1 keer getest

aantal boeken< 5 and uitstaande boete < 25Logische testgevallen

aantal < 5 boete < 25 resultaat

Geval 1 1 0 0 (niet uitlenen)

Geval 2 0 1 0 (niet uitlenen)Fysieke testgevallen aantal boete resultaat

Geval 1 4 30 niet uitlenen

Geval 2 6 20 niet uitlenen

Page 54: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

54 | 58

Dekkingsvormen m.b.t. beslispuntenDecision coverage:De mogelijke uitkomsten (true, false) van de

beslissing worden minimaal 1 keer getest

aantal boeken< 5 and uitstaande boete < 25Logische testgevallen

aantal < 5 boete < 25 resultaat

Geval 1 1 1 1(uitlenen)

Geval 2 0 1 0 (niet uitlenen)

Fysieke testgevallen

aantal boete resultaat

Geval 1 4 30 uitlenen

Geval 2 6 30 niet uitlenen

Page 55: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

55 | 58

Dekkingsvormen m.b.t. beslispuntenCondition/Decision coverage:De mogelijke uitkomsten (true, false) van elke

conditie én van de beslissing worden minimaal 1 keer getest.

Dit impliceert zowel condition coverage als decision coverage

aantal boeken< 5 and uitstaande boete < 25Logische testgevallen aantal < 5 boete < 25 resultaat

Geval 1 1 1 1(uitlenen)

Geval 2 0 0 0 (niet uitlenen)

Fysieke testgevallen aantal boete resultaat

Geval 1 4 20 uitlenen

Geval 2 6 30 niet uitlenen

Page 56: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

56 | 58Dekkingsvormen m.b.t. beslispuntenModified Condition/Decision coverage:Elke mogelijke uitkomst (true, false) van een conditie is

minimaal één keer bepalend voor de uitkomst van de beslissing

Dit impliceert condition/decision coverage

aantal boeken< 5 and uitstaande boete < 25

Logische testgevallen

aantal < 5 boete < 25 resultaat

Geval 1 0 1 0 (niet uitlenen)

Geval 2 1 0 0 (niet uitlenen

Geval 3 1 1 1 (uitlenen)

Page 57: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

57 | 58Dekkingsvormen m.b.t. beslispuntenMultiple Condition coverage: De mogelijke combinaties van uitkomsten

(true, false) van elke conditie in een beslissing worden

minimaal 1 keer getest (volledige beslissingstabel) Dit impliceert modified condition/decision

coverage

aantal boeken< 5 and uitstaande boete < 25

Logische testgevallen

aantal < 5 boete < 25 resultaat

Geval 1 0 0 0 (niet uitlenen

Geval 2 0 1 0 (niet uitlenen)

Geval 3 1 0 0 (niet uitlenen

Geval 4 1 1 1 (uitlenen)

Page 58: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

58 | 58Opdracht in practicum

Lever voor jullie applicatie testscripts die kunnen dienen als acceptatietest.Lever indien wenselijk (lastige algoritmes) ook testscripts voor whitebox testingVergeet niet de integratietesten! Deze zijn ook onderdeel van de acceptatie.

Werk dus samen met de collegagroepJe hoeft geen systeemtest te leveren.

Page 59: Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen.

Leiden University. The university to discover.

“Software Engineering”

59 | 58Bronvermelding

Sheets zijn gebaseerd op:TestGoalT-MapSheets van De Haagse Hogeschool

Blokken I-2 & D