Vincent van Beek Hoofd Software Engineering en Distinguished Engineer
7 oktober 2022

Dé truc voor veilige software engineering in de cloud

Software engineers staan voor een dilemma. Het IT- en securitylandschap wordt complexer, maar de time-to-market moet alsmaar sneller. Om veilige software te ontwikkelen die ook nog tegemoet komt aan de verwachtingen van moderne gebruikers, moeten developers drie principes centraal stellen: testen, testen en testen.

De oproep om meer te testen is niet nieuw: er wordt al zo’n twintig jaar gelobbyd voor dit zogenoemde test-driven development. Maar deze methode wordt nog altijd niet breed ingezet, terwijl de complexiteit van het moderne IT-landschap er wel om vraagt. En bovendien: test-driven development leidt ook nog tot tijdwinst.

De ideale pipeline

Als je niet goed test, kom je in productieomgevingen vaak te laat achter fouten. Dit zorgt voor problemen bij klanten en hoge kosten in troubleshooting – zeker als de gemaakte fouten betrekking hebben op zaken als data-integriteit of security. Een test- en deployment pipeline met de juiste testmomenten is daarom cruciaal, want veel fouten kun je vóór releasemomenten al verhelpen. Dat begint met een gestructureerde uitwerking van requirements, gevolgd door een ontwikkelproces met meerdere testfasen: unit testing, integratie- en acceptatietesten. Uiteraard aangevuld met gedegen documentatie.

'"Door te automatiseren kun je goed geteste en veilige software maken, zonder vijf keer zo lang aan een release te moeten werken."
Testen met tijdwinst

Zo’n pipeline kun je met relatief weinig impact inrichten. Door te automatiseren kun je goed geteste en veilige software maken, zonder vijf keer zo lang aan een release te moeten werken. Denk bijvoorbeeld aan code analytics om te valideren dat variabelen consistent zijn genaamd en geschreven, of dat er geen te grote en complexe blokken code worden ingediend. Dit kun je zelfs als een soort autocorrect implementeren, zodat developers hun werk nog vóór een submit kunnen corrigeren.

Ook kun je ontzettend veel tijd besparen door geautomatiseerde acceptatietesten te schrijven – en dan het liefste via behaviour-driven testing. Opgeleverde features worden zo op een begrijpelijke manier getest. Kortgezegd beschrijf je het gewenste gedrag van de software in simpele menselijke taal, die door een tool wordt vertaald naar een geautomatiseerde test. Dat sluit goed aan bij de ideale pipeline, omdat de basis van die beschrijving al wordt gelegd tijdens de allereerste uitwerking van requirements.

Richting toekomstbestendige code

Het inrichten van een test-driven development pipeline betaalt zich in duizendvoud terug. Een goed testproces maakt de codebase onderhoudsvriendelijker, zodat je een codebase ook op langere termijn goed kan blijven beheren. Dat wordt des te belangrijker naarmate je codebase uitdijt en je bijvoorbeeld te maken krijgt met personeelsverloop.

Wel heb je hiervoor de juiste kennis nodig. Engineers moeten immers weten hoe ze unit- en acceptatietests moeten schrijven, en projectmanagers moeten kennis hebben over het inrichten van het juiste developmentproces. Investeer dus in zaken als bijscholing of kennisuitwisseling, zodat je efficiënt en effectief je software engineering naar een hoger, toekomstbestendig niveau kunt tillen – óf haak een ervaren en betrouwbare partner als Solvinity aan, bijvoorbeeld voor ondersteuning in het opzetten van een cloud-based CI/CD ontwikkelstraat, automatisering én bewaking van security en compliance.

Meer weten?

Wil je advies over veilige software engineering, neem dan contact op via info@solvinity.com of 020 364 36 00.

Lees ook

Meer