리팩터링을 언제 하느냐가 아니라 어떻게 안전하게 하느냐를 다룹니다. 리팩터링의 정의에서 출발해 특성화 테스트로 안전망을 만들고, 손댈 수 없는 코드에 접합부를 내고, 병렬 변경으로 인터페이스를 바꾸고, 큰 변경을 되돌릴 수 있는 조각으로 자르는 절차를 순서대로 정리합니다. 자동 리팩터링과 코드모드의 검증 방법, 그리고 멈출 때를 정하는 기준까지 포함합니다.
테스트 피라미드와 테스팅 트로피 중 무엇이 맞는지 고르는 대신, 그 논쟁을 실제 축으로 분해해 팀이 자기 비율을 스스로 정하는 방법을 정리합니다. 단위의 정의, 비용 함수, 목 사용 범위, 커버리지 숫자, 결함 분포 데이터, 느리고 깨지는 테스트의 운영 규칙까지 결정 기준 중심으로 다룹니다.