Hieronder wordt een lijst weergegeven met unit-testen die zijn uitgevoerd. Hierbij wordt een beschrijving gegeven van de test en het corresponderende
user-requirement nummer. Test nr. Beschrijving User requirement nr.
1. Deze test controleert of de gebruiker inlogt en of de gegevens goed worden opgeslagen.
U.01
2. Deze test controleert of er een API-token gegenereerd is voor de gebruiker.
U.02
3. Deze test controleert of de API-token verwijderd wordt als de gebruiker zich uitlogt.
U.03
4. Deze test controleert of het systeem door middel van een API-token ‘helloworld’ kan ophalen uit het geautoriseerde gedeelte van de applicatie.
U.04
5. Deze test controleert of een WerknemerCreated-event wordt aangemaakt wanneer de gebruiker een werknemer toevoegt.
U.05
6. Deze test controleert of de werknemer volledig is verwijderd uit het systeem. Hierbij wordt bekeken of de uuid van de werknemer nog bestaat in de
werknemer-projector, verzuimmeldingen-projector en de verzuimlogger-projector.
U.06
7. Bij deze test zal het systeem een werknemer ziekmelden, gedeeltelijke hersteld melden, volledig hersteld melden en 10 dagen later wederom ziekmelden. Hierna zal het systeem controleren of alle vier de events zijn toegevoegd aan de eventstore.
U.07, U.08, U.09, U.14
8. Het systeem zal een GET-request uitvoeren om de werknemers op te halen. Hierna zal de statuscode
gecontroleerd worden en wordt bekeken of de toegevoegde werknemer ook in het systeem staat.
U.10
9. Het systeem zal een GET-request uitvoeren om de verzuimperiodes op te halen. Hierna zal de statuscode
gecontroleerd worden en er wordt bekeken of de toegevoegde ziekmelding ook in het systeem staat. 10 Het systeem zal een GET-request uitvoeren om de verzuim-gebeurtenissen op te halen. Hierna zal de
statuscode gecontroleerd worden en wordt bekeken of de toegevoegde verzuim-gebeurtenis ook in het systeem staat.
U.12
11. Het systeem zal een GET-request uitvoeren om de werknemers op te halen die ziek zijn. Hierna zal de
statuscode gecontroleerd worden en wordt bekeken of de eerder toegevoegde werknemer ook in het systeem staat.
U.13
Tabel 5: Uitgevoerde testen.
Reflectie
In de periode van februari tot november 2020 heb ik mijn afstudeertraject uitgevoerd bij Verzuimsignaal. Naar aanleiding van deze afstudeerperiode zal ik reflecteren over mijn eigen handelen in een bepaalde situatie.
Halverwege de maand maart moesten we van de overheid zoveel mogelijk thuiswerken. Zelf ben ik thuiswerken niet gewend, maar ik zag het wel als een uitdaging. De eerste paar dagen had ik moeite om de concentratie bij het werk te houden. We kregen tips vanuit Verzuimsignaal hoe we beter konden thuiswerken. Hierdoor stelde ik dagelijks een doel dat ik wilde behalen en had ik ook wekelijks een gesprek met mijn begeleider. Dit werkte redelijk voor mij. Waar ik afgelopen afstudeerperiode achter ben gekomen is dat ik beter werk als ik tegen iemand anders vertel wat mijn doel is. Dit geeft mij net weer iets meer druk en motivatie om het doel daadwerkelijk te bereiken. Zelf vind ik dit heel fijn werken en dit doe ik nu ook dagelijks bij de standup-meeting van het A-team (een development team binnen Verzuimsignaal).
Tijdens mijn afstudeerperiode liep ik vast bij het maken van mijn eerst prototype. Dit was een omgeving waar ik Kafka als pup/sub-systeem zou gebruiken. Hierbij liep ik vast en ik wilde zelf het probleem oplossen, maar dit lukt niet. Hierna heb ik mijn technisch begeleider gevraagd om mee te kijken. Ik had veel eerder moeten aangeven dat ik niet verder kwam. Hierdoor kwam ik met mijn planning in tijdnood en moesten we nog een andere oplossing bedenken. Dit vond ik zelf heel vervelend, want ik had er veel moeite ingestopt. Achteraf had ik minder tijdverlies gehad als ik dit eerder had aangeven of als ik eerder had meegedaan aan de standup-meetings. Een ander punt waar ik mezelf in kon verbeteren, was het opstellen van mijn
planning. Deze planning had ik al binnen de eerste drie weken gemaakt, maar er waren een aantal dingen mis. Bij het maken van de planning had ik
gebruikgemaakt van de afstudeerhandleiding. Hierin werd aangegeven wanneer welk document moest worden ingeleverd. Een voorbeeld hiervan was het inleveren van je conceptversie van je scriptie. Dit moest vier weken voor het einde van je afstuderen worden ingeleverd. Mijn interpretatie hiervan was vrijdagavond kwartiel vier, week zes. De interpretatie van school was maandagmiddag om twaalf uur in kwartiel vier, week vijf. Hierdoor heb ik mijn planning verkeerd ingeschat en kwam ik op het einde in meer tijdnood. Zelf vond ik dit heel naar want ik had er rekening mee gehouden dat ik die twee weken nog had. Dit had ik kunnen voorkomen door een tweede bron te gebruiken of door bevestiging te vragen.
Een punt wat ik vond wat wel goed is gegaan is het leren van nieuwe
technologieën. Voordat ik begon met mijn afstudeerproject had ik weinig tot geen kennis van: Docker, Kubernetes, Redis, Kafka en microservices. Nu dat ik op het einde ben van mijn afstudeertraject mag ik mezelf geen expert noemen, maar ik weet wel waarvoor het gebruikt kan worden en hoe het werkt.
Kort samengevat heb ik geleerd dat ik beter kan werken als ik tegen iemand anders vertel wat ik ga doen, dat ik eerder moet vertellen wanneer ik ergens mee vast loop
Figuren
1. Microservice Architectuur. 8
2. Voorbeeld microservice architectuur. 18
3. Verschillende patterns. 20
4. Architectuur diagram Google Cloud Platform. 27
5. Microservice architectuur Verzuimsignaal. 34
6. Archimate components diagram. 42
7. Code snippet unauthorized calls. 44
8. Code snippet authorized calls. 44
9. Business logica aggregate root 45
10. Business logica projector 46
11. Sequence diagram. 47 12. Dashboard Kubernetes 49
Tabellen
1. Probleemomschrijving 9 - 102. De gekozen patterns voor het ontwerp en het prototype. 32 - 33
3. System requirements. 38
4. User requirements 38 - 39
5. Uitgevoerde testen. 60-61