How much refactoring should I be doing?

I watched a webinar recently, and one of the panellists asked, "How much refactoring should I be doing?".

The reply was, "More than you're doing now.".

It was quite tongue-in-cheek, but I agree that, in general, code isn't refactored enough.

One main reason is a fear of introducing regressions, and to avoid that, you need a good automated test suite.

If you break the existing functionality whilst refactoring, you want the test suite to fail so you can identify and fix the regression.

If the test suite passes, you can release the new code.

How many tests and how much coverage do you need? There's no specific answer - enough for you to be confident everything still works.