30 nov
Sprintcode TYPO3

Deelname aan TYPO3 PHPUnit codesprint

Hoe test je kwaliteit?

Een van de slogans van MaxServ is dat kwaliteit het fundament van succes is. De vraag is alleen hoe bepaal je nu de kwaliteit van het werk? Is dat puur of de websites het goed doen, of niet? Of is kwaliteit een website die goed aanslaat bij de bezoeker? Al deze zaken hebben invloed op de kwaliteit van een website. Voor MaxServ gaat dit echter nog een stuk verder. 

Iedere regel code die door een ontwikkelaar van MaxServ wordt geschreven, wordt door minimaal 2 andere ontwikkelaars gecontroleerd waarvan minimaal 1 senior ontwikkelaar. Pas nadat alle “reviewers” de code hebben goedgekeurd komt het terecht in de website van de klant. Zo wordt voorkomen dat er niet goed onderbouwde code in de website van een klant terecht komt. Er is echter nog een stap waarmee we deze tests nog naar een hoger niveau tillen: unit-testing. 

Met unit-testing wordt er geautomatiseerd gecontroleerd of de losstaande onderdelen van de code het resultaat geven wat verwacht wordt van de betreffende functie. Deze tests worden uitgevoerd bij iedere wijziging in de code en wordt er steeds gecontroleerd of een aanpassing in de code geen invloed heeft op zowel de huidige functie, als functies die gebruik maken van deze functie. Om dit te kunnen toepassen binnen TYPO3 kan er gebruik gemaakt worden van de module PHPunit.

Binnen de TYPO3 community worden regelmatig zogenaamde codesprints gehouden. Deze sprints zijn bedoeld om met een aantal mensen te werken aan een of meerdere onderdelen van TYPO3 zonder dat er te veel nagedacht hoeft te worden over andere projecten. Afgelopen weekend was er zo’n codesprint voor de PHPUnit module van TYPO3 en namens MaxServ ben ik dus naar deze codesprint geweest. 

De codesprint

De codesprint werd gehouden in het kantoor van een Duitse TYPO3-agency genaamd CPS-IT in het centrum van Berlijn. In het kantoor met een prachtig uitzicht over de stad verzamelden we vrijdagmiddag met zo’n 15 ontwikkelaars uit Duitsland, Frankrijk en Nederland om te beginnen met de codesprint.  Na een voorstelronde werd eerst gekeken naar de doelstellingen van de codesprint. Gezamenlijk werden deze gesteld op:

- Nieuwe mensen leren te werken met PHPUnit en hoe op de juiste manier bij te dragen aan de community projecten binnen TYPO3
- Zo snel mogelijk een nieuwe versie lanceren waarin een aantal belangrijke bugs opgelost zijn
- Extensie klaar maken voor het gebruik in TYPO3 CMS 7
- De tests voor de PHPUnit extensie laten slagen op Travis
- Een nieuwe test runner die de huidige tests van de TYPO3 core kan uitvoeren
- Algemene bugfixes en opschoning van verouderde code

Gedurende de codesprint kon iedereen aangeven aan welk doel hij of zij wilde werken en kon vervolgens een van de onderdelen binnen dat doel gaan oppakken.

De resultaten waren al vrij snel zichtbaar en met alleen een pizza tussendoor als “afleiding” konden we vrijdagavond al een nieuwe versie uitbrengen van de module. Een beter begin van de codesprint konden we ons dus niet wensen.

De zaterdag stond vervolgens vooral in het teken van de extensie verbeteren en uitbreiden met nieuwe functies en zorgen dat de module goed gaat werken in TYPO3 CMS 7. De taken werden weer verdeeld tussen de aanwezigen en iedereen kon aan de slag. Persoonlijk heb ik me vooral gericht op het verbeteren van de backendmodule en het testen van de wijzigingen om de module in TYPO3 CMS 7 te laten werken. De complete dag werd er hard gewerkt aan deze onderdelen wat ook zichtbaar tot resultaat leidde. Naast het ontwikkelen werden er ook onderling ervaringen uitgewisseld van zowel het geautomatiseerd testen als ook de algemene kennis van TYPO3. Deze productieve en leerzame dag werd afgesloten met een door MaxServ gesponsord etentje in een Berlijns steakhouse. Ook daar werd uiteraard als echte IT-ers weer veel gepraat over de technische uitdagingen waar eenieder tijdens zijn dagelijks werk voor stond en werden er over en weer goede en bruikbare ideeën uitgewisseld. Na het diner gingen we terug naar het kantoor en zijn we nog even doorgegaan met de laatste aanpassingen.

Na een (voor sommige) wat korte nacht, werd er zondag weer gestart met de laatste aanpassingen en werd de focus vooral gelegd op het controleren en testen van de aanpassingen die de laatste dagen gemaakt zijn en werd er zoveel mogelijk samengevoegd richting een nieuwe versie. Daarmee kwam ook het einde van een productieve codesprint in zicht. Inmiddels waren de eerste mensen reeds naar huis gegaan en hebben we met de nog aanwezige ontwikkelaars nog even een groepsfoto gemaakt en het kantoor weer in oorspronkelijke staat gebracht en ging iedereen weer zijn eigen weg met de afspraak om allemaal af en toe tijd te blijven besteden aan deze module.

Al met al kijk ik terug op een zeer productieve en leerzame codesprint. Er zullen er zeker meer gaan volgen. Daarbij heeft MaxServ ook reeds aangegeven dat ze graag ruimte ter beschikking stellen voor een van de volgende codesprints. Wie weet kunnen we volgend jaar de TYPO3-caravaan in Waalwijk begroeten. 

De op het laatst overgebleven ontwikkelaars

Geschreven door:

  • Richard Haeser

    Development Lead / Certified TYPO3 specialist