Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
SEN1 Software Engineering 1 Pieter van den Hombergh Ferd van Odenhoven Fontys Hogeschool voor Techniek en Bedrijfsmanagement Software Engineering
6 maart 2008
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
1/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
1
2
3 4
5
Acceptatietesten Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
2/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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. FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
3/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering Validation and verification points
Acceptatietesten waarom acceptatietesten?
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
4/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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?
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
5/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
6/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
7/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
8/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
9/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
10/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
11/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Acceptatietest voor wie? Belangen Wat te testen? Inhoud Acceptatietest Uitvoering 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. FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
12/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
13/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
14/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
15/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Test results
Specification
Locate error
Design error repair
Inspection and review Review plan debugging
Test cases
Retest Program
Repair error
Figuur: Debugging process.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
16/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
V-model
Figuur: Uiteraard verwachten we dat coderen en testen hand in hand gaan. FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
17/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
V-model als test en ontwikkelcyclus In moderne ontwikkelmethodology is het V-Model aan de winnende hand. Het V-model schrijft een balans voor tussen specificatie aan de linker zijde en verificatie/validatie aan de rechterzijde, op alle niveaus van de ontwikkeling Let op dat de stappen aan beide kanten van de V steeds gepaard gaan met documenten.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
18/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Testen schrijven en plannen Test scenarios Test tools
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?
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
19/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Testen schrijven en plannen Test scenarios Test tools
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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
20/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Testen schrijven en plannen Test scenarios Test tools
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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
21/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Testen schrijven en plannen Test scenarios Test tools
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 En de lijst is zeker niet volledig! Groovy van IBM. FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
22/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie 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.
FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
23/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie 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
Software Engineering 1 6 maart 2008 Figuur: De invoer enSEN1 uitvoer kan men verdelen in verschillende klassen.
FvO,PvdH/FHTBM
24/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie Equivalence partitioning
Voorbeeld equivalence partitioning 1
2
3
a Er is hier sprake van 4 partities: 1 2 3 4
x
FvO,PvdH/FHTBM
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
6 maart 2008
25/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie 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 (); } FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
26/27
Overzicht Acceptatietesten Validation and verification Het ontwikkelproces Test strategie 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 . FvO,PvdH/FHTBM
SEN1 Software Engineering 1
6 maart 2008
27/27