Use when code needs restructuring and observable behavior must stay unchanged, with existing tests kept green at every step.