Martin Fowler's 'Refactoring: Improving the Design of Existing Code'. Recommended by Scott Bellware during the Test Bench talk Q&A to anyone who uses the word 'refactoring' — reading it will inform conversations about what refactorings actually are (e.g. Introduce Explaining Variable, the refactoring Test Bench's assert/refute design relies on).