정답은 아니고 그냥 내가 이해하고 적용하는수준임.
일단 애자일 할거면 테스트코드는 필수임.
CI/CD를 해야하기때문임.

그리고 리팩토링이 쉬움.
테스트코드없이 코드리뷰는 거의 불가능함.
코드리뷰를 통해 책임의 분산이 용이함.
테스트코드 짜기가 너무 어렵다거나
혹은 테스트코드를 짰는데도 리팩토링이 어려우면
그건 설계가 잘못되었을 확률이 큼.

관심사가 확실히 분리되고, 클래스들이 충분히 디커플되어있다면
다른말로 객체지향적으로 잘짜인 코드라면
테스트코드 짜는건 어렵지않음.
특히 상속보단 컴포지션과 DI로 짜여진 코드라면 더더욱 쉬움.