First, getting this right without unplanned downtime can be hard to achieve and as well as lots of diligence it also really requires the right level of general application architecture plus hands on engineering experience.
The general process is assessment and understanding the system, refactoring and improving code without program changes, and re-achitecting key pieces to enable the testing, then getting test coverage to where it gives you the required confidence to make the change.
Comments
First, getting this right without unplanned downtime can be hard to achieve and as well as lots of diligence it also really requires the right level of general application architecture plus hands on engineering experience.
The general process is assessment and understanding the system, refactoring and improving code without program changes, and re-achitecting key pieces to enable the testing, then getting test coverage to where it gives you the required confidence to make the change.