Computest bevordert kwaliteit middels een code quality review. Tijdens een dergelijke review analyseert een engineer van Computest broncode, documentatie en procesbeschrijvingen van een softwareproject, om de klant een onderbouwd oordeel te kunnen geven over verschillende kwaliteitsaspecten van het project.
Wat levert een code quality review op?
Een code quality review geeft antwoord op verschillende vragen, zoals:
- Zijn we op de goede weg met onze development-inspanningen?
- Zijn de technische keuzes die we maken houdbaar op lange termijn?
- Welke risico's lopen we op kwaliteitsvlak?
- Is de algehele kwaliteit van deze code base wat we ervan verwachten?
Waar kijken we naar?
In de review wordt gekeken naar veel aspecten van kwaliteit, zoals schaalbaarheid en complexiteit, maar ook hoe thema’s als isolatie, functiescheiding en coupling in de architectuur verwerkt zitten. Security, defensive programming en consistentie in de code base is ook een belangrijk onderdeel. Daarnaast worden eigenschappen van het ontwikkelproces meegenomen in de review, zoals hoe met non-functional requirements wordt omgegaan, hoe testautomation is ingericht, welke security-maatregelen deel zijn van het ontwikkelproces e.d. Na een dergelijke review wordt een rapport opgeleverd met bevindingen op alle onderdelen, en een gewogen totaaloordeel over de kwaliteit. Tevens worden verbeterstappen beschreven waar nodig.
Wat doen we bij een code quality review?
Onze ervaren engineers duiken tijdens een code quality review de code base in en leren de structuur en architectuur kennen. Hierna richten ze hun aandacht op specifieke onderdelen van de architectuur die te maken hebben met de schaalbaarheid, beheersbaarheid, robuustheid e.d. Voor een volledig beeld wordt ook gebruik gemaakt van tools die kwaliteitsissues opsporen en complexiteit inzichtelijk maken. Daarnaast lezen onze engineers de documentatie door. Desgewenst worden ook interviews met het development team gehouden om inzicht te verschaffen in hoe kwaliteit wel of niet geborgd is in de ontwikkel- en deployment-processen!