Regression: the return of undesired behavior in software

Blog  — Wed 19 Jul 2023

Regressie is a term used to indicate previously resolved undesired software behavior. Essentially, regression is simply a bug that has somehow reappeared.

Bug?

Undesired behavior in software is often referred to as a 'bug'. The process of detecting and fixing bugs by developers is called 'debugging'. The origin of the term 'bug' is contentious. There is a persistent story about Grace Hopper, but the actual origin of the term 'bug' appears to be more complicated.

The return of bugs, thus regression, can occur sporadically due to errors in the CI/CD pipeline or version control, for example. If regression occurs frequently, it may be a sign of something fundamentally wrong, like 'spaghetti code'.

Spaghetti code

If bugs persistently occur and/or reappear, it could indicate 'spaghetti code'. That's technical jargon with a touch of harmless humor. It refers to unnecessarily complex, incoherent, and confused code without proper structure. The name is derived from the idea that the code resembles a tangle, much like cooked spaghetti.

'Spaghetti code' is a situation programmers prefer to avoid, as well-structured code is much easier to comprehend, maintain, and secure. Striving for well-readable and structured code helps prevent bugs, simplifies debugging, and facilitates adding new features. This allows developers to work more efficiently, ensuring high-quality software.

If 'spaghetti code' is present, it suggests that the code may be of very low quality, where fixing one bug sometimes causes several others. The recurring incidence of regression and bugs can signal a lack of expertise or resources to effectively resolve these issues.