Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Teststrategien Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering
20 februari 2014
HOM/FHTeL
Teststrategien
20 februari 2014
1/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
1
2
3 4
5
Acceptatietesten Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points Validation and verification Inspection and review Review plan debugging Het ontwikkelproces Test strategie Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning Classification Tree Method
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
2/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Hebben we wel het juiste gebouwd?
Figuur : Communicatie tussen domeinafdeling en ontwikkeling
Bij de communicatie tussen domeinafdeling en ontwikkeling vindt een overdracht van de ene in de andere vaktaal plaats. HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
3/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Wat is een acceptatietest? Bij oplevering van maatwerk-software vindt een acceptatietest plaats. Doel van de acceptatietest: Voldoet de software aan eisen en wensen van de opdrachtgever? Is de software geschikt is voor bedrijfsmatige ingebruikname?
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
4/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Belangen Opdrachtgever Garantiebepalingen De leverancier kan de kosten van herstel in rekening brengen indien de fouten bij het uitvoeren van de overeengekomen acceptatietest hadden kunnen worden vastgesteld. Na acceptatie is leverancier op grond van deze overeenkomst niet gehouden tot het herstel van gebreken in de software.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
5/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Belangen Softwareontwikkelaar Kwaliteit en effici¨entie: Door een grondige acceptatietest uit te voeren worden mogelijk kosten voor herstelwerk bespaard. De testperiode biedt een goede gelegenheid om de kwaliteit en de betrouwbaarheid van de software te verbeteren.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
6/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
De onderhandeling Onvolkomenheden zijn fouten en gebreken of het op andere wijze niet functioneren overeenkomstig de overeengekomen specificaties. Hoe preciezer die zijn, des te groter de kans dat de opdrachtgever onvolkomenheden kan vinden. De opdrachtgever zal toch zijn eisen zo nauwkeurig mogelijk willen omschrijven.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
7/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Inhoud acceptatietest 1 De functionaliteit: alle aspecten van gedrag en resultaten volgens de overeengekomen specificaties. Robuustheid. Zinvol reageren op foute invoer, technische foutsituaties en gebruikersfouten. De conversieprocedure voor overzetten van gegevens op de nieuwe software. Koppelingen met uw andere informatiesystemen.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
8/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Inhoud acceptatietest 2 De performance. De gebruiksvriendelijkheid. Voldoen aan kwaliteitsgaranties als overeengekomen. In de informatica algemeen aanvaarde uitgangspunten van kwaliteit en deugdelijkheid. De documentatie voor beheerders en gebruikers. De procedures voor handmatige werkzaamheden.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
9/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Hoe de test uitvoeren? Richt tijdig de testomgeving in (hardware, software, documentatie, licenties en werkruimte). Bepaal wie de testen gaat(n) uitvoeren. Schrijf vooraf concrete test-scenario’s. Mee beginnen zodra de functionele specificaties beschikbaar zijn. Zorg voor de tijdelijke administratieve organisatie in voor het verzamelen en administreren van testresultaten.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
10/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Belangen Inhoud Acceptatietest Uitvoeren van de tests Validation and verification points
Soorten V & V
Software Inspections
Requirements specification
High level design
Formal specification
Detailed design
Program
Program testing
Prototype
Figuur : Static and dynamic verification and validation. HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
11/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Inspection and review Review plan debugging
Het verschil Validation: maken we het juiste product? Is meer algemeen onderdeel. Maken we dat wat de klant wil?
Verification: Maken we het product goed? Dynamisch testen is draaien van de software met testdata. V&V zijn statisch: inspecties en reviews tijdens alle fasen van het ontwikkelingsproces. Validatie testen: aantonen dat de software doet wat de klant wil. Zoals prestatie en betrouwbaarheid. Een scherpe grens is niet te trekken tussen al deze indelingen.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
12/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Inspection and review Review plan debugging
Inspection and review Inspectie en review zijn beide statische verificatie technieken, waardoor het systeem niet uitgevoerd hoeft te worden. Inspection is de preciezere variant. De zogenaamde Fagan inspectie volgt een strict protocol met verschillende rollen voor de deelnemers tijdens de inspectie. Reviewen is een minder strikte methode. Het dient evengoed volgens een plan met een doel te worden uitgevoerd.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
13/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Inspection and review Review plan debugging
Doel van de review Net als de andere test technieken, kan reviewen hooguit fouten vaststellen. De soort inhoudelijke fouten waarnaar gezocht moet worden zijn: 1 2 3
Onvolledigheid of missende informatie. Inconsistentie of tegenspraken. Onduidelijkheden of vaagheden.
Door deze gebreken zijn er keuzes mogelijk in de vervolgstappen, waardoor de onzekerheid toeneemt.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
14/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Test results
Specification
Locate error
Design error repair
Inspection and review Review plan debugging
Test cases
Repair error
Retest Program
Figuur : Debugging process.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
15/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
V-model
Figuur : Uiteraard verwachten we dat coderen en testen hand in hand gaan. HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
16/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
V-model als test en ontwikkelcyclus In moderne ontwikkelmethodology is het V-Model aan de winnende hand. Het V-model schrijft een overeenstemming voor tussen specificatie aan de linker zijde en verificatie/validatie aan de rechterzijde, op alle niveaus van de ontwikkeling Merk op dat de stappen aan beide kanten van de V steeds gepaard gaan met documenten.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
17/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Inhoud testplan Organisatie: beschrijving hoe de test is georganiseerd, waar liggen verantwoordelijkheden en wat zijn de gebruikte middelen. Communicatie en procedures: o.a. procedures rond herstel van fouten, versie beheer. Test strategie: Overzicht van de test strategie, criteria voor acceptatie van de test en tot op welk nivo wordt er getest?
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
18/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Inhoud testplan 2 Test onderdelen: overzicht van de functies die getest gaan worden met hun prioriteiten. Test deliverables: beschrijving van de gebruikte producten: inputs, test-reporten, infrastructuur en voortgangsrapporten. Test activiteiten: installatie van de infrastructuur, schrijven van testscripts, de uitvoering van de test, de voortgangsmonitoringe en het maken van de testrapporten. Planning: de feitelijke planning van de software testactiviteiten en gebruikte middelen.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
19/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Test scenario’s Zijn in essentie de concrete scenario’s behorende bij een use-case. Soms bedoelt met testscenario’s een testprogramma, d.w.z.: welke testen en in welke volgorde worden uitgevoerd. Men gebruikt ook zogenaamde test scripts als er bij een testprocedure met een softwaretool automatisch een aantal testen uitgevoerd moet worden.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
20/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Test tools Er zijn commerci¨ele producten voor automatisch testen, maar er is ook ant in combinatie met JUnit. Een ander framework is Castor. Er is meer:.. (http://java-source.net/open-source/testing-tools): JUnit, Cactus, Abbot (waar is Costello?), JUnitPerf, Jamelon, DbUnit, Mockrunner, dbMonster, The Grinder, XMLUnit, jfcUnit, JTestCase, StrutsTestCase, jMock, EasyMock, MockEJB, MockCreator, SQLUnit, Marathon, TestNG, Surrogate Test framework, JTR Java Test Runner, TESTARE, MockLib, TagUnit, TestGen4J, UISpec4J, Jacareto, Jemmy, DDTUnit, Mocquer,Mockito
zijn allemaal frameworks voor of ter ondersteuding van testen. En de lijst is zeker niet volledig! Groovy van IBM.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
21/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Hoe vinden we testdata? Men wil natuurlijk alles testen! Men kan niet alle waarden testen Er zijn nuttige technieken om een beperkte maar voor het testen complete verzameling van testdata te vinden Grenswaarden en extreme waarden. Bepalen van equivalentieklassen.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
22/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
In- en output partitions invalid invalid invalid invalid
valid valid valid valid
valid valid valid valid
system
output output output output
output output output output
Figuur : De invoer en uitvoer kan men verdelen in verschillende klassen. HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
23/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Voorbeeld equivalence partitioning 1
2
3
a Er is hier sprake van 4 partities: 1 2 3 4
HOM/FHTeL
x
b
4 c
Partitie equivalentie veronderstelt dat elke waarde in de partitie op gelijk manier behandeld moet worden. Kies bijvoorbeeld een waarde ’uit het midden’. Maar ook de grenzen verdienen aandacht: Test of de grenswaarden door het programma behandeld worden volgens de regels bij de juiste partitie. Hier hoort a bijvoorbeeld bij partitie 2.
SEN1 Software Engineering 1
20 februari 2014
24/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Clock12 interface public interface Clock12 { void tick (); void setTime ( boolean pm , int hrs , int min , int sec ); int getHour (); int getMinutes (); int getSeconds (); void setHour ( int hour ); void setMinutes ( int minutes ); void setSeconds ( int seconds ); boolean isPM (); void setPM ( boolean pm ); String getTime (); } HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
25/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Testen schrijven en plannen Test scenarios Test tools Equivalence partitioning
Equivalence classes Equivalenc classes : setHour : 1 2 3 4
hour < 0 0 <= hour <12 12 <= hour <= 24 hour > 24
input : hour =16 -7 5 57
-> -> -> ->
hour =4 && exception hour =5 && exception
invalid data valid data valid data invalid data
PM = true " hour not negative " PM = false " hour not greater than 24 "
etc . HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
26/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Classification Tree Method Met de Classification Tree Method kunnen systematisch blackbox test ontwerpen. Deze testontwerpmethode omvat vier stappen 1
2 3 4
HOM/FHTeL
Identificeer de aspecten van het testobject. Aspecten zijn de invloeden die effect hebben op het systeem. Verdeel de invoer overeenkomstig de gevonden aspecten. Specificeer de logische test cases. Maak het test (script/scenario/plan).
SEN1 Software Engineering 1
20 februari 2014
27/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
CTM Stap 1 1
Identificeer de aspecten van het testobject. Aspecten zijn de invloeden die effect hebben (of zouden moeten hebben) op het systeem. Dat omvat normale invoer maar ook de toestand waarin het systeem is, de volgorde van bediening, etc.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
28/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
CTM Stap 2 2
Verdeel de invoer overeenkomstig de gevonden aspecten. Verdeel de invoer over partities of klassen, met betrekking tot de verschillende aspecten. Voor elke input in een partitie zal het systeem op een vergelijkbare manier reageren.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
29/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
CTM Stap 3 3
Specificeer de logische test cases. Neem een element uit een partitie voor elk aspect. Combineer deze elementen en let daarbij ook op de onmogelijke combinaties.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
30/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
CTM Stap 4 4
Maak het test (script/scenario/plan). Cre¨eer de re¨ele testgevallen. Definieer de acties binnen een test. Definieer de verificatiepunten vast. Bepaal de uitgangssituaties van de tests. Stel het volledige tests script samen.
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
31/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Voorbeeld cruise control De aspecten
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
32/33
Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Classification Tree Method
Voorbeeld cruise control De gecombineerde tests
HOM/FHTeL
SEN1 Software Engineering 1
20 februari 2014
33/33