Regressie: de terugkeer van ongewenst gedrag in software

Blog  — wo. 19 jul. 2023

Regressie is een term die wordt gebruikt om eerder opgelost ongewenst softwaregedrag aan te duiden. In essentie is regressie dus simpelweg een bug die om een of andere reden weer is teruggekeerd.

Bug?

Ongewenst gedrag van software wordt vaak aangeduid met de term 'bug'. Het opsporen en oplossen van bugs door ontwikkelaars wordt 'debugging' genoemd. De oorsprong van de term 'bug' is omstreden. Er gaat een hardnekkig verhaal rond over Grace Hopper, maar de werkelijke oorsprong van de term 'bug' lijkt gecompliceerder.

De terugkeer van bugs, regressie dus, kan sporadisch voorkomen als gevolg van fouten in de CI/CD-pipeline of het versiebeheer bijvoorbeeld. Als regressie vaker voorkomt, kan dit een teken zijn dat er iets fundamenteel mis is. Zoals 'spaghetti code'.

Spaghetti code

Als bugs hardnekkig zijn en blijven optreden en/of terugkeren, kan dat duiden op 'spaghetti code'. Dat is vakjargon met een vleugje onschuldige humor. Het verwijst naar een onnodig complexe, onsamenhangende en verwarde code zonder goede structuur. De naam is afgeleid van het idee dat de code lijkt op een warboel, net als gekookte spaghetti.

'Spaghetti code' is dus een situatie die programmeurs liever vermijden, omdat goed gestructureerde code veel gemakkelijker te begrijpen, te onderhouden en te beveiligen is. Het streven naar goed leesbare en gestructureerde code helpt bugs te voorkomen, maakt het opsporen ervan eenvoudiger en vergemakkelijkt het toevoegen van nieuwe functies. Zo kunnen ontwikkelaars efficiƫnter werken en blijft de software van hoge kwaliteit.

Als er sprake is van 'spaghetti code' dan geeft dat aan dat de code mogelijkerwijs van erg lage kwaliteit lijkt te zijn, waarbij het oplossen van de ene bug soms meerdere andere veroorzaakt. Het herhaaldelijk optreden van regressie en bugs kan een signaal zijn dat er sprake is van onvoldoende expertise of middelen om deze problemen effectief op te lossen.