I’ve already written about why you need automated tests, but let’s take a step back. Why do you even need to test legacy software at all? It’s running fine isn’t it? Until it isn’t.
Legacy Software Is Important
First and foremost, many legacy software systems are important to the business. They often actively bring in revenue.
So their stability and reliable operation has real business value.
Therefor, testing these systems has business value. We want to verify that the system does what it is expected to do and performs as desired.
Legacy Software Is Alive
Most legacy software isn’t dead software. We still add new features and improve existing ones.
Tests will make it easier to add new features while reducing the amount of bugs in these new features.
Adding tests for existing features will avoid introducing regression bugs.
Finally, tests make it easier for developers to refactor existing code, i.e. improve the structure of the code without changing the functionality.
Refactoring is necessary in legacy applications because it makes it easier for developers to work in the code. This allows them to implement business requirements more easily and with a lower chance of introducing bugs.
Where To Start
Of course, if your application will be end-of-life soon, it might not be worth all the time and money.
If you need an assessment of the current code or if you need help with automated tests, don’t hesitate to ask my opinion.