The Perils of Software Regression

Learn the dangers of software regression and interact with sample code to know how a software regression bug is introduced.

Introduction

In his book, Working Effectively with Legacy Code, Michael Feathers says “The adage, if it ain’t broke, don’t fix it doesn’t necessarily apply in the case of technology. Projects continually require alterations, updates, and enhancements.”

Whenever a change is made in code, it may break existing functionality. ​​If these changes result in breaking existing functionality or in degrading the quality of the code, the code undergoes software regression. Software regression is a type of software bug where a feature that has worked before stops working. These bugs happen through changing existing code and typically, the developer misses these bugs.

Code change rationale

If there is a probability that software regression occurs after a change is made, the natural question then is: why change the software? In reality, software always changes, even software that has reached a very high level of maturity. This concept is illustrated below:

Get hands-on with 1200+ tech skills courses.