Refactors code without changing behavior. Requires tests first, refactors step by step, verifies after each step.