De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Testen.

Verwante presentaties


Presentatie over: "Testen."— Transcript van de presentatie:

1 Testen

2 Testmethoden TMap Next – Sogeti TestFrame – Logica (CMG)
smarTEST – Valori TestGoal – Collis (testfilosofie)

3 TestGoal: de tien testprincipes
Focus op resultaat Bouw aan vertrouwen Neem verantwoordelijkheid Beheers het testvak Sla bruggen Test gefaseerd Faciliteer de gehele IT-lifecycle Geef overzicht en inzicht Zorg voor herbruikbaarheid Bedenk: testen is leuk

4 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 Faciliteer de gehele IT-lifecycle
Faciliteer de gehele IT-lifecycle Ton Biegstraaten

6 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 Test gefaseerd - testsoorten
Moduletest (unittest) Integratietest Systeemtest Acceptatietest Ketentest Regressietest

8 Test gefaseerd – testsoorten - V-model
Systeem acceatatietest: op grond van requirements Gebruikers acceptatietest: validerende test: is gebouwd wat bedoeld is

9 Test gefaseerd – testsoorten - V-model
Test gefaseerd – testsoorten - V-model Oorspronkelijk gebaseerd op het waterval model. Ook bruikbaar bij iteratieve methoden. Dynamische testen zijn op te stellen in een zeer vroeg stadium. Een opgestelde acceptatietest draagt ook bij aan de kwaliteit van requirements. Ton Biegstraaten

10 Integratietest: Moduletest 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 Logisch versus fysiek testontwerp
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 Ton Biegstraaten

12 Ontwerp Stappenplan Intake testbasis
Opstellen logische testgevallen (logisch testontwerp) Op basis van testontwerptechniek Opstellen fysieke testgevallen (fysiek testontwerp) Definiëren testdata

13 Inrichting Uitvoering Borging Stappenplan Testautomatisering
Bijvoorbeeld JUnit bij moduletesten Uitvoering Bevindingenbeheer Vrijgaveadvies Testrapportage Borging Vaststellen regressietesten

14 Ontwerp

15 Testbasis Intake testbasis Totaalverzameling van documenten en
Intake testbasis Testbasis Totaalverzameling van documenten en systeembeschrijvingen die definiëren waaraan het testobject moet voldoen Requirements, specificaties Use case beschrijvingen PSD code Enz Ton Biegstraaten

16 Voorbeeld fysieke testgevallen
Voorbeeld fysieke testgevallen Testbasis: Specificaties: “Bereken de prijs van een theaterkaartje. 1e rang: 70 euro; 2e rang 50 euro; Onder de 18: 50% korting” Fysieke testgevallen: Ton Biegstraaten

17 Voorbeeld logische testgevallen
Voorbeeld 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): Ton Biegstraaten

18 Voorbeeld logische testgevallen
Voorbeeld 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): Ton Biegstraaten

19 Black/White-box test White-box:
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. Overgang vaak gradueel door gebruik van pseudo code. Hierdoor technieken soms zowel voor black als white-box benadering bruikbaar. Het hangt van de wijze van specificatie af. Black-box vaak op basis van de uiteindelijke versie van een programma, white-box op gedeelten van een programma, door ontwikkelaar/programmeur/integrator. Dit alles maakt gebruik van het draaien van code. Dit is traditioneel de enige methode. Testen kan meer omvatten. Ton Biegstraaten

20 Code is onderdeel van de testbasis:
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; } Ton Biegstraaten

21 logische testgevallen (white box)
logische testgevallen (white box) Testbasis: Code 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): Code: rang =1; rang<>1 Specificaties: rang = 1; rang = 2 (zie eerder op sheet) Ton Biegstraaten

22 fysieke testgevallen (white box)
fysieke testgevallen (white box) Fysieke testgevallen: Ton Biegstraaten

23 fysieke testgevallen (white box)
fysieke testgevallen (white box) Fysieke testgevallen - alternatief: Ton Biegstraaten

24 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 Unit test: automatiseren
interface Adder { int add(int a, int b); } class AdderImpl implements Adder { int add(int a, int b) { return a + b; 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); } Bron: wikipedia

26 Beslissingstabellentest
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 Ton Biegstraaten

27 Beslissingstabellentest
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 Ton Biegstraaten

28 Beslissingstabellentest
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; } Ton Biegstraaten

29 Identificatie testsituaties
Identificatie testsituaties Bepaal condities in de testbasis: Conditie is altijd enkelvoudig Opstellen conditielijst Bepalen acties/resultaten in de testbasis Opstellen actielijst Opstellen beslissingtabel Ton Biegstraaten

30 Identificatie testsituaties
Identificatie testsituaties Testsituatie Condities/acties 1 2 3 4 5 6 7 8 C1: lft > 65 C2: lft < 18 C3: gehuwd A1/R1:Korting = 0 X A2/R2: Korting = 5 A3/R3: Korting = 10 Opmerking: kortingen optellen Ton Biegstraaten

31 Opstellen logische testgevallen
Opstellen logische testgevallen Logische testgevallen 1 2 3 4 5 6 7 8 C1: lft > 65 C2: lft < 18 C3: gehuwd A1/R1:Korting = 0 X A2/R2: Korting = 5 A3/R3: Korting = 10 Niet mogelijk Opmerking: kortingen optellen Ton Biegstraaten

32 Opstellen fysieke testgevallen
Opstellen fysieke testgevallen Logische testgevallen 1 2 3 4 5 6 Actie: invoeren leeftijd 25 16 70 Actie: invoeren gehuwd false true Resultaat: Korting 10 15 Ton Biegstraaten

33 Opstellen fysieke testgevallen
Opstellen fysieke testgevallen Logische testgevallen Actie: Invoeren leeftijd Invoeren gehuwd Resultaat: korting Geval 1 25 false Geval 2 true 5 Geval 3 16 10 Geval 4 15 Geval 5 70 Geval 6 Ton Biegstraaten

34 Opstellen testscript De volgorde van de tests maakt hier niets uit.
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. Ton Biegstraaten

35 beslissingstabellentest
naam 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.

36 Identificatie testsituaties
Identificatie testsituaties Testsituatie Condities/acties 1 2 3 4 5 6 7 8 C1: sport = ‘H’ C2: sport = ‘V’ C3: lft > 45 A1/R1:contributie = 150 X A2/R2: contributie = 100 A3/R3: Korting = 50% Foutmelding sport Niet mogelijk Ton Biegstraaten

37 Opstellen logische testgevallen
Opstellen logische testgevallen Testsituatie Condities/acties 1 2 3 4 5 6 C1: sport = ‘H’ C2: sport = ‘V’ C3: lft > 45 A1/R1:contributie = 150 X A2/R2: contributie = 100 A3/R3: Korting = 50% Foutmelding sport Ton Biegstraaten

38 Opstellen fysieke testgevallen
Opstellen fysieke testgevallen Logische testgevallen Actie: Invoeren sport Invoeren leeftijd Resultaat: contributie Geval 1 “P” 40 foutmelding Geval 2 50 Geval 3 “V” 100 Geval 4 Geval 5 “H” 150 Geval 6 75 Ton Biegstraaten

39 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 Ton Biegstraaten

40 Algoritmetest - voorbeeld
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 Ton Biegstraaten

41 Algoritmetest

42 Identificatie testsituaties
Identificatie testsituaties Opstellen stroomschema Vaststellen acties/statements Vaststellen paden Vaststellen beslispunten Vaststellen beslispunten en in en uitgaande paden Vaststellen van de feitelijke testsituaties: Bij testmaat 1: paden Bij testmaat 2: padcombinaties Ton Biegstraaten

43 Identificatie testsituaties
Identificatie testsituaties Opstellen stroomschema Ton Biegstraaten

44 Identificatie testsituaties
Identificatie testsituaties Vaststellen beslispunten en in en uitgaande paden Beslispunt A: IN: 1,2,3 UIT: 2,3,4 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-3; 3-4; Ton Biegstraaten

45 Opstellen logische testgevallen
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). Ton Biegstraaten

46 Opstellen logische testgevallen
Opstellen logische testgevallen Testmaat 1 testgeval paden 1 1-4 0 herhalingen 2 2 herhalingen Testmaat 2 testgeval paden 1 1-4 0 herhalingen 2 1-2-4 1 herhalingen 3 5 herhalingen Ton Biegstraaten

47 Opstellen fysieke testgevallen
Opstellen fysieke testgevallen Testmaat 1 logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 1 Geval 2 4 8 0 Testmaat 2 logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 1 Geval 2 4 0 4 1 Geval 3 onmogelijk Ton Biegstraaten

48 Opstellen fysieke testgevallen Aanpassen logische testgevallen
Opstellen fysieke testgevallen Aanpassen logische testgevallen Testmaat 2 Logische testgevallen testgeval paden 1 1-4 0 herhalingen 2 1-2-4 1 herhalingen 3 6 herhalingen Testmaat 2 Fysieke testgevallen logische testgevallen Actie: Invoeren getal Verwacht resultaat Werkelijk resultaat Geval 1 Geval 2 4 0 4 1 Geval 3 Ton Biegstraaten

49 Test coverages Testen hebben verschillende dekkingsgraden
Tester bepaalt welke dekkingsgraad vereist is.

50 Path coverage Elk pad en elke combinatie van paden worden doorlopen.
Path coverage Elk pad en elke combinatie van paden worden doorlopen. Voorbeeld: algoritmetest Ton Biegstraaten

51 Statement coverage Elk statement wordt tenminste 1 keer uitgevoerd
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; Ton Biegstraaten

52 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 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 testgevallen aantal < 5 boete < 25 resultaat Geval 1 1 0 (niet uitlenen) Geval 2 Fysieke testgevallen aantal boete resultaat Geval 1 4 30 niet uitlenen Geval 2 6 20

54 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 testgevallen aantal < 5 boete < 25 resultaat Geval 1 1 1(uitlenen) Geval 2 0 (niet uitlenen) Fysieke testgevallen aantal boete resultaat Geval 1 4 30 uitlenen Geval 2 6 niet uitlenen

55 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 testgevallen aantal < 5 boete < 25 resultaat Geval 1 1 1(uitlenen) Geval 2 0 (niet uitlenen) Fysieke testgevallen aantal boete resultaat Geval 1 4 20 uitlenen Geval 2 6 30 niet uitlenen

56 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 testgevallen aantal < 5 boete < 25 resultaat Geval 1 1 0 (niet uitlenen) Geval 2 0 (niet uitlenen Geval 3 1 (uitlenen)

57 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 testgevallen aantal < 5 boete < 25 resultaat Geval 1 0 (niet uitlenen Geval 2 1 0 (niet uitlenen) Geval 3 Geval 4 1 (uitlenen)

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 Bronvermelding Sheets zijn gebaseerd op: TestGoal T-Map
Sheets van De Haagse Hogeschool Blokken I-2 & D


Download ppt "Testen."

Verwante presentaties


Ads door Google