De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen."— Transcript van de presentatie:

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

2 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 2 | 58 Testmethoden TMap Next – Sogeti TestFrame – Logica (CMG) smarTEST – Valori TestGoal – Collis (testfilosofie)

3 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 3 | 58 TestGoal: de tien testprincipes 1.Focus op resultaat 2.Bouw aan vertrouwen 3.Neem verantwoordelijkheid 4.Beheers het testvak 5.Sla bruggen 6.Test gefaseerd 7.Faciliteer de gehele IT-lifecycle 8.Geef overzicht en inzicht 9.Zorg voor herbruikbaarheid 10.Bedenk: testen is leuk

4 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 4 | 58 TestGoal: de tien testprincipes Focus op resultaat Test gefaseerd Faciliteer de gehele IT-lifecycle Zorg voor herbruikbaarheid  Businessresultaat Work Breakdown Structure Testsoorten Kwaliteitsattributen Requirements en ontwerp toetsen op testbaarheid Regressietesten

5 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 5 | 58 Faciliteer de gehele IT-lifecycle

6 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 6 | 58 Faciliteer de gehele IT-lifecycle Requirements en ontwerp toetsen op testbaarheid Kwaliteit van ontwerp in vroeg stadium vaststellen Statische testen – toetsen review, walkthrough, Inspectie voor documenten of code Dynamisch testen code

7 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 7 | 58 Test gefaseerd - testsoorten Moduletest (unittest) Integratietest Systeemtest Acceptatietest Ketentest Regressietest

8 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 8 | 58 Test gefaseerd – testsoorten - V-model

9 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 9 | 58 Test gefaseerd – testsoorten - V-model

10 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 10 | 58 Moduletest Integratietest: Top-down  Gebruik stubs dummy voor nog te ontwikkelen functionaliteit Bottom-up  Gebruik drivers roept de reeds ontwikkelde modules aan Combinatie top-down en bottom-up

11 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 11 | 58 Logisch 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

12 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 12 | 58 Stappenplan Ontwerp Intake testbasis Opstellen logische testgevallen (logisch testontwerp) Op basis van testontwerptechniek Opstellen fysieke testgevallen (fysiek testontwerp) Definiëren testdata

13 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 13 | 58 Stappenplan Inrichting Testautomatisering Bijvoorbeeld JUnit bij moduletesten  Borging  Vaststellen regressietesten  Uitvoering  Bevindingenbeheer  Vrijgaveadvies  Testrapportage

14 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 14 | 58 Ontwerp

15 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 15 | 58 Intake testbasis Testbasis Totaalverzameling van documenten en systeembeschrijvingen die definiëren waaraan het testobject moet voldoen  Requirements, specificaties  Use case beschrijvingen  PSD  code  Enz

16 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 16 | 58 Voorbeeld fysieke testgevallen Testbasis: Specificaties: “Bereken de prijs van een theaterkaartje. 1 e rang: 70 euro; 2 e rang 50 euro; Onder de 18: 50% korting” Fysieke testgevallen:

17 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 17 | 58 Voorbeeld logische testgevallen Testbasis: Specificaties: “Bereken de prijs van een theaterkaartje. 1 e rang: 70 euro; 2 e rang 50 euro; Onder de 18: 50% korting” Logische testgevallen (beslissingstabellentest):

18 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 18 | 58 Voorbeeld logische testgevallen Testbasis: Specificaties: “Bereken de prijs van een theaterkaartje. 1 e rang: 70 euro; 2 e rang 50 euro; Onder de 18: 50% korting” Logische testgevallen (equivalentieklassen):

19 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 19 | 58 Black/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 testbasis  Logische testgevallen (en testacties) worden op grond van specificaties opgesteld.

20 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 20 | 58 White-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; }

21 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 21 | 58 logische testgevallen (white box) Testbasis: 1.Code 2.Specificaties: “Bereken de prijs van een theaterkaartje. 1 e rang: 70 euro; 2 e rang 50 euro; Onder de 18: 50% korting” Logische testgevallen op grond van code (white box):

22 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 22 | 58 fysieke testgevallen (white box) Fysieke testgevallen:

23 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 23 | 58 fysieke testgevallen (white box) Fysieke testgevallen - alternatief:

24 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 24 | 58 Testscripts Het uitvoeren van testcases in een bepaalde volgorde noemt men een testscript. Deze wordt uitgevoerd door De automatische testomgeving De tester De opdrachtgever De volgorde is hierbij soms van belang, soms niet.

25 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 25 | 58 Unit 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

26 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 26 | 58 Beslissingstabellentest Testbasis: bevat condities Grondige techniek voor het testen van detailfunctionaliteit Alle combinaties van de condities worden doorlopen White box en black box is mogelijk

27 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 27 | 58 Beslissingstabellentest 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 korting  Code fragment

28 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 28 | 58 Beslissingstabellentest 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; }

29 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 29 | 58 Identificatie testsituaties Bepaal condities in de testbasis: Conditie is altijd enkelvoudig Opstellen conditielijst Bepalen acties/resultaten in de testbasis Opstellen actielijst Opstellen beslissingtabel

30 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 30 | 58 Identificatie testsituaties Testsituatie Condities/acties C1: lft > C2: lft < C3: gehuwd A1/R1:Korting = 0 X A2/R2: Korting = 5 XXXX A3/R3: Korting = 10 XXXXXX Opmerking: kortingen optellen

31 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 31 | 58 Opstellen logische testgevallen Logische testgevallen C1: lft > C2: lft < C3: gehuwd A1/R1:Korting = 0 X A2/R2: Korting = 5 XXX A3/R3: Korting = 10 XXXX Niet mogelijk XX Opmerking: kortingen optellen

32 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 32 | 58 Opstellen fysieke testgevallen Logische testgevallen Actie: invoeren leeftijd Actie: invoeren gehuwd falsetruefalsetruefalsetrue Resultaat: Korting

33 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 33 | 58 Opstellen fysieke testgevallen Logische testgevallen Actie: Invoeren leeftijd Actie: Invoeren gehuwd Resultaat: korting Geval 125false0 Geval 225true5 Geval 316false10 Geval 416true15 Geval 570false10 Geval 670true15

34 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 34 | 58 Opstellen testscript De volgorde van de tests maakt hier niets uit. Geef b.v. aan dat de tests in de gegeven volgorde uitgevoerd moeten worden.

35 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 35 | 58 beslissingstabellentest naamBereken contributie per jaar samenvattingBerekent de contributie voor een lid van de sportvereniging. De contributie is afhankelijk van de beoefende sport en de leeftijd van het lid. actorenpenningmeester aannamenDe 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“. resultaatDe 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.

36 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 36 | 58 Identificatie testsituaties Testsituatie Condities/acties C1: sport = ‘H’ C2: sport = ‘V’ C3: lft > A1/R1:contributie = 150 XX A2/R2: contributie = 100 XX A3/R3: Korting = 50% XXX Foutmelding sport XX Niet mogelijk XX

37 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 37 | 58 Opstellen logische testgevallen Testsituatie Condities/acties C1: sport = ‘H’ C2: sport = ‘V’ C3: lft > A1/R1:contributie = 150 XX A2/R2: contributie = 100 XX A3/R3: Korting = 50% XXX Foutmelding sport XX

38 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 38 | 58 Opstellen fysieke testgevallen Logische testgevallen Actie: Invoeren sport Actie: Invoeren leeftijd Resultaat: contributie Geval 1“P”“P”40foutmelding Geval 2“P”“P”50foutmelding Geval 3“V”“V”40100 Geval 4“V”“V”50 Geval 5“H”“H”40150 Geval 6“H”“H”5075

39 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 39 | 58 Algoritmetest Grondige 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

40 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 40 | 58 Algoritmetest - 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

41 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 41 | 58 Algoritmetest

42 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 42 | 58 Identificatie testsituaties 1.Opstellen stroomschema Vaststellen acties/statements Vaststellen paden Vaststellen beslispunten 2.Vaststellen beslispunten en in en uitgaande paden 3.Vaststellen van de feitelijke testsituaties: Bij testmaat 1: paden Bij testmaat 2: padcombinaties

43 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 43 | 58 Identificatie testsituaties 1.Opstellen stroomschema

44 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 44 | 58 Identificatie 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;

45 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 45 | 58 Opstellen logische testgevallen Alle testsituaties moeten tenminste één keer doorlopen worden. Testmaat 1: Elk pad wordt 1 keer doorlopen Testmaat 2: Alle combinaties van 2 opeenvolgende paden zijn afgedekt Herhalingen moeten bij testmaat 1: 0 én 1 of meer keer doorlopen worden Herhalingen moeten bij testmaat 2: 0 én 1 én 2 of meer keer doorlopen worden Het hele algoritme moet doorlopen worden (elk logisch testgeval begint dus bij pad 1 en eindigt bij pad 4).

46 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 46 | 58 Opstellen logische testgevallen Testmaat 1 testgevalpaden herhalingen herhalingen Testmaat 2 testgevalpaden herhalingen herhalingen herhalingen

47 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 47 | 58 Opstellen fysieke testgevallen Testmaat 1 logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 10 Geval Testmaat 2 logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 10 Geval Geval 3onmogelijk

48 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 48 | 58 Opstellen fysieke testgevallen Aanpassen logische testgevallen Testmaat 2Fysieke testgevallen logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 10 Geval Geval Testmaat 2Logische testgevallen testgevalpaden herhalingen herhalingen herhalingen

49 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 49 | 58 Test coverages Testen hebben verschillende dekkingsgraden Tester bepaalt welke dekkingsgraad vereist is.

50 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 50 | 58 Path coverage Elk pad en elke combinatie van paden worden doorlopen. Voorbeeld: algoritmetest

51 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 51 | 58 Statement coverage Elk statement wordt tenminste 1 keer uitgevoerd Zwakker dan padendekking met testmaat 1; Voorbeeld: x = 0; if a > b x = 1; a = b/x;

52 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 52 | 58 Dekkingsvormen m.b.t. beslispunten Een 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

53 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 53 | 58 Dekkingsvormen m.b.t. beslispunten Condition coverage: De mogelijke uitkomsten (true, false) van elke conditie worden minimaal 1 keer getest aantal boeken< 5 and uitstaande boete < 25 Logische testgevallenaantal < 5boete < 25resultaat Geval 1100 (niet uitlenen) Geval 2010 (niet uitlenen) Fysieke testgevallenaantalboeteresultaat Geval 1430niet uitlenen Geval 2620niet uitlenen

54 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 54 | 58 Dekkingsvormen m.b.t. beslispunten Decision coverage: De mogelijke uitkomsten (true, false) van de beslissing worden minimaal 1 keer getest aantal boeken< 5 and uitstaande boete < 25 Logische testgevallenaantal < 5boete < 25resultaat Geval 1111(uitlenen) Geval 2010 (niet uitlenen) Fysieke testgevallenaantalboeteresultaat Geval 1430uitlenen Geval 2630niet uitlenen

55 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 55 | 58 Dekkingsvormen m.b.t. beslispunten Condition/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 < 25 Logische testgevallenaantal < 5boete < 25resultaat Geval 1111(uitlenen) Geval 2000 (niet uitlenen) Fysieke testgevallenaantalboeteresultaat Geval 1420uitlenen Geval 2630niet uitlenen

56 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 56 | 58 Dekkingsvormen m.b.t. beslispunten Modified 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 testgevallenaantal < 5boete < 25resultaat Geval 1010 (niet uitlenen) Geval 2100 (niet uitlenen Geval 3111 (uitlenen)

57 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 57 | 58 Dekkingsvormen m.b.t. beslispunten Multiple 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 testgevallenaantal < 5boete < 25resultaat Geval 1000 (niet uitlenen Geval 2010 (niet uitlenen) Geval 3100 (niet uitlenen Geval 4111 (uitlenen)

58 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 58 | 58 Opdracht in practicum Lever voor jullie applicatie testscripts die kunnen dienen als acceptatietest. Lever indien wenselijk (lastige algoritmes) ook testscripts voor whitebox testing Vergeet niet de integratietesten! Deze zijn ook onderdeel van de acceptatie. Werk dus samen met de collegagroep Je hoeft geen systeemtest te leveren.

59 Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 59 | 58 Bronvermelding Sheets zijn gebaseerd op: TestGoal T-Map Sheets van De Haagse Hogeschool Blokken I-2 & D


Download ppt "Leiden University. The university to discover. Leiden University. The university to discover. “Software Engineering” 1 | 58 Testen."

Verwante presentaties


Ads door Google