Gisteren ben ik begonnen aan een nieuw project op mijn werk. Omdat het eigenlijk een gedeeltelijke rewrite van een bestand product is. Wil ik graag gebruik gaan maken van verificatie en testing. Omdat het systeem erg afhankelijk is van wanneer specifieke data binnenkomt wil ik dit graag automatische testen. Vooral omdat er andere dingen moeten gebeuren.
Een kleine voorbeeld:
Er loopt een campagne met een tijdsduur van 10 minuten binnen deze 10 minuten wordt er elke drie minuten een prijs getrokken (door een remote server). Deze server verstuurt vervolgens het resultaat door naar de terminal. Alleen als dit resultaat te laat aankomt dan moet het systeem een foutmelding geven totdat de volgende trekkingsresultaat binnenkomt. Bij elke trekking wordt ook de verwachte tijdstip van de volgende trekking meegestuurd. Nu wil ik dit graag testen. Ik heb een hele reeks datasets met alle combinaties qua resultaten van de externe server. Maar hoe kan ik dit testen?
Overigens is het bovenstaande een simpel voorbeeld. Denk maar meer aan dingen als:
Ik heb zelf nagenoeg geen ervaring met TDD moet ik zelf toegeven. Volgens mij noemen ze dit integratie testen? Moet je dan elke actie in het systeem loggen en vervolgens na de testrun controleren of de acties in de verwachte volgorde is uitgevoerd? Of heb je gewoon unit tests voor elke onderdeel van de terminal en ga je er vervolgens maar vanuit dat het werkt?
Een kleine voorbeeld:
Er loopt een campagne met een tijdsduur van 10 minuten binnen deze 10 minuten wordt er elke drie minuten een prijs getrokken (door een remote server). Deze server verstuurt vervolgens het resultaat door naar de terminal. Alleen als dit resultaat te laat aankomt dan moet het systeem een foutmelding geven totdat de volgende trekkingsresultaat binnenkomt. Bij elke trekking wordt ook de verwachte tijdstip van de volgende trekking meegestuurd. Nu wil ik dit graag testen. Ik heb een hele reeks datasets met alle combinaties qua resultaten van de externe server. Maar hoe kan ik dit testen?
Overigens is het bovenstaande een simpel voorbeeld. Denk maar meer aan dingen als:
- Is het resultaat van vandaag?
- Is het resultaat ouder dan halve minuut?
- Is het resultaat ouder dan een minuut?
- Is het resultaat ouder dan twee minuten?
- Is er nu een prijs gewonnen?
- Is er bij de vorige trekking een prijs gewonnen?
- Is de prijs in deze winkel gewonnen?
- Is de prijs in de regio gewonnen?
- Is het een prijs uit de categorie laag?
- Is prijs uit de vorige trekking uit de categorie laag?
Ik heb zelf nagenoeg geen ervaring met TDD moet ik zelf toegeven. Volgens mij noemen ze dit integratie testen? Moet je dan elke actie in het systeem loggen en vervolgens na de testrun controleren of de acties in de verwachte volgorde is uitgevoerd? Of heb je gewoon unit tests voor elke onderdeel van de terminal en ga je er vervolgens maar vanuit dat het werkt?
[ Voor 21% gewijzigd door alienfruit op 30-04-2011 13:40 ]