Verschillende soorten tests voor een PHP-applicatie
Door Stan DaniëlsWil je weten of je ogen goed zijn? Dan laat je ze testen. Wil je weten of je applicatie goed is? Ook die laat je dan testen. Er zijn veel verschillende soorten tests. Hieronder lees je welke soorten het meeste worden gebruiken bij de applicaties van INOVA.
1. Unit tests
Dit zijn tests op het allerlaagste niveau van de software, dicht bij de broncode. In een unit test wordt een class of een functie geïsoleerd getest, dus deze tests zijn doorgaans erg snel doordat de interactie met andere onderdelen van de applicatie beperkt is. Unit tests worden bijvoorbeeld met PHPUnit uitgevoerd.
2. Integration tests
Zoals de naam van integration tests wellicht al doet vermoeden wordt in dit type test de integratie – de samenwerking van verschillende modules – getest. Een voorbeeld hiervan is het controleren of verwachte output van een functie in de database opgeslagen worden. Dit type is doorgaans trager dan een unit test omdat verschillende services van de applicatie worden aangesproken. Integration tests worden bijvoorbeeld met PHPUnit uitgevoerd.
3. End-to-end tests
Bij end-to-end test wordt een complete route die een gebruiker af kan leggen getest, bijvoorbeeld het inloggen of het succesvol betalen van een order. End-to-end tests kunnen geautomatiseerd worden middels tools als Laravel Dusk, maar vaak is het nodig om functionaliteit bijvoorbeeld tot en met de inbox van een gebruiker in verschillende mail clients te controleren om zo zeker te weten dat een e-mail verstuurd en ontvangen wordt. Hierom wordt een deel van end-to-end tests handmatig uitgevoerd.
4. Acceptance tests
De volgende stap is het uitvoeren van acceptance tests. Hierbij wordt bepaald of de applicatie acceptabel is; of de applicatie voldoet aan de gemaakt afspraken. Hierbij kan gebruik worden gemaakt van een framework zoals Behat. Daarnaast wordt vastgesteld of de applicatie klaar is om uitgerold te worden door de gebruikersvriendelijkheid vast te stellen en de performance te testen.
5. Static analysis
Dan is er nog static analysis, waarbij het doel is om ondanks de dynamische aard van PHP te controleren of de datatypes in de applicatie kloppen. Bij static analysis wordt bijvoorbeeld gecontroleerd of methodes de waarde retourneren die ze beloven te retourneren. Populaire static analysis tools voor PHP zijn Psalm en PHPStan.
Bij het testen van software gebruik je niet één van deze soorten, maar een combinatie van verschillende. Benieuwd waar je het beste kunt beginnen als je tests wilt introduceren bij een bestaande applicatie? Lees dan het artikel ‘Automatische tests toevoegen aan een reeds bestaande applicatie’.
Voor meer informatie over deze tests neem gerust contact met mij op via stan@teaminova.nl.