14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
Oplossingen voor het testen van objectgeori¨enteerde software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering
14 maart 2013
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
1/21
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
Oplossingen voor het testen van objectgeori¨enteerde software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering
14 maart 2013
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
2/21
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
Overzicht 1
2
3
Test driven development: Processen en uitzonderingen Processen Proces: Waterval of iteraties? V-Model Incrementeel-iteratief proces How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren? Example Extreme Programming (incl. Scrum) XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
1
3/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
Processen Proces: Waterval of iteraties? V-Model
Test driven design: Processen en uitzonderingen Aanpak aanpassen aan project De test driven aanpak is niet een star patroon maar kan individueel op ieder project toegesneden worden. Belangrijk hierbij is dat van meet af aan een unittest-infrastructuur wordt opgebouwd die een eventueel noodzakelijke uitbreiding eenvoudig toelaat. We krijgen zo een hoge mate van flexibiliteit en kunnen heel gericht prioriteiten toekennen.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
4/21
Processen Proces: Waterval of iteraties? V-Model
Wat is een project Eenmalige gebeurtenis: Een project is altijd iets bijzonders dat we eerder zo nog niet hebben uitgevoerd. Risico Een project is altijd blootgesteld aan het gevaar dat het kan mislukken. Daarom is een expliciet risicomanagement onvermijdelijk. Projectstructuren: Er is een opdrachtgever, projectleider, projectteam, projectopdracht, stuurgroep enz. Beperkingen: Een project vindt plaats binnen het kader van gedefinieerde grenzen. We hebben gelimiteerde resources en een vast budget. Projectmanagement heeft dus altijd iets van het beheren van tekorten.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
5/21
Processen Proces: Waterval of iteraties? V-Model
Het watervalmodel
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
2
6/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
Processen Proces: Waterval of iteraties? V-Model
Stagewise models Het oorspronkelijke werkwijzemodel van Walker Royce breidde de stagewise models uit met terugkoppelingslussen (in de figuur links).
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
7/21
Processen Proces: Waterval of iteraties? V-Model
Het V-model – uitbreiding op het watervalmodel
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
8/21
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
Incrementeel-iteratief proces (RUP) Een incrementeel- iteratief geleid project valt in twee lagen uiteen, de chronologische, in fases onderverdeelde horizontale laag en de aan de hand van taken resp. disciplines onderverdeelde laag.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
3
9/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
Incrementeel iteratieve werkwijze, schematisch
Een huis in eigenbouw
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
10/21
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
Vaststellen en verdelen van prioriteiten
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
11/21
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
De reserves in een timebox inplannen
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
4
12/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
structuur van een iteratie, timebox Een iteratie heeft een tweeledige structuur: Implementatiegedeelte en een integratie- en reviewgedeelte.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
13/21
How concrete can you get? Priorities Timeboxing Altijd de tests automatiseren?
Wanneer tests automatiseren? Of automatisering lonend is, hangt van verschillende omstandigheden af. Er moeten voldoende herhalingen van een onveranderde stabiele test uitgevoerd worden. Testautomatisering is een eigen softwareproject en krijgt pas zijn waarde na vijf tot tien herhalingen. De tests moeten over een langere tijd stabiel verlopen. Gebeurt de automatisering via de GUI van het projectproduct of andere vaste systeeminterfaces dan is dat meestal het geval. Moet ik de geautomatiseerde test echter na iedere verandering aanpassen, dan is automatisering veeleer niet lonend. Er zijn tests die ik alleen geautomatiseerd kan uitvoeren zoals bijvoorbeeld lasttests of test van componenten zonder GUI. Dan mag de test niet weggelaten worden maar moet juist automatisch draaien ook wanneer de bovengenoemde criteria misschien niet gelden. HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
14/21
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Aannamen over kosten van veranderingen
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
5
15/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Extreme programming is not yust programming I Planningsspel: Sterke en duurzame integratie van de opdrachtgever(s). Snel vastleggen van de omvang van de volgende versie. Dit houdt vaak het actualiseren van de planning in. Korte releasecycli: Het tijdsbestek tussen het onderkennen van een eis en de omzetting ervan moet zo kort mogelijk houden worden Metafoor: De communicatie en ori¨entatie van het team gebeurt aan de hand van goed gekozen metaforen die de manier van functioneren van het systeem aanschouwelijk maken.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
16/21
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Extreme programming is not yust programming II Eenvoudig ontwerp: Om op ieder tijdstip en daarmee ook later in het projectverloop eenvoudig en daarmee voordelig veranderingen te kunnen doorvoeren, moet het gekozen design zo eenvoudig mogelijk gestructureerd zijn. Onnodige complexe structuren dienen vermeden te worden. Testen: De ontwikkelaars schrijven voortdurend en van begin af aan geautomatiseerde unit-tests. De klanten ontwikkelen op hun beurt de opleveringstests die tegelijkertijd ook als eis gelden.
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
17/21
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Extreme programming is not yust programming III Refactoring: Op grond van eenvoudige designs en automatische unit-tests kunnen naar behoefte relatief eenvoudig en veilig designveranderingen plaatsvinden om tot een meer adequaat design te komen. Refactoring betekent dat geen gedragsveranderingen geprogrammeerd worden, maar alleen het design veranderd wordt om op deze nieuwe basis beter verder te kunnen ontwikkelen. Pair programming: De productcode wordt paargewijs geprogrammeerd. Er zitten dus altijd twee programmeurs aan de terminal, waarbij de ene codeert en de andere controleert. De beide rollen worden dan van tijd tot tijd verwisseld. HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
6
18/21
14 maart 2013
Oplossingen voor het testen van objectgeori¨enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Extreme programming is not yust programming IV Collectief code-eigendom: Iedereen mag te allen tijde de hele code veranderen. Alle programmeurs dragen de verantwoordelijkheid voor de gehele code. Voortdurende integratie: Het systeem wordt gecompileerd, gelinkt en ge¨ıntegreerd zodra een taak uitgevoerd is, dus meerdere keren per dag. 40-uren-week: Overuren dienen vermeden te worden en worden niet langer dan een week gedaan Voortdurend, direct klantencontact: Er is minstens een vertegenwoordiger van de gebruiker resp. van de opdrachtgever permanent als aanspreekpartner voor het projectteam beschikbaar. Programmeerstandaards: De standaards dienen de communicatie via de code te vergemakkelijken en alle ontwikkelaars dienen zich eraan te houden. HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
19/21
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Test driven design Klassiek Analyse
test driven analyse
Design
testcases maken
Co¨ordinatie
codering
Test
test refactoring
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
Overzicht Test driven development: Processen en uitzonderingen Incrementeel-iteratief proces Example Extreme Programming (incl. Scrum)
14 maart 2013
20/21
XP proces en proces stappen. En vergeet dit volgende niet. Test driven design
Test driven design
HOM/FHTeL
Oplossingen voor het testen van objectgeori¨ enteerde software
14 maart 2013
7
21/21