Unit Testing Principles, Practices, and Patterns를 읽고 내용을 정리한 글입니다.

코드는 자산이 아니라 부채입니다.
같은 문제를 풀 때 작성된 코드는 적을수록 좋습니다.
이는 테스트 코드에서도 마찬가지입니다.

그렇기 때문에, 테스트 코드가 많다고 항상 좋은 것이 아닙니다.
테스트의 목표를 효율적으로 달성하면서 동시에 적은 양의 테스트코드를 작성하는 것이 필요합니다.

테스트는 지속 가능한 확장을 목표로 삼아야 합니다.
즉, 새로운 기능이 추가되거나 리팩토링이 진행되는 과정에서 소프트웨어의 복잡도가 증가해도 기존 기능들이 잘 작동함을 보장하는 안전망이 되도록 구성해야 합니다.

좋은 테스트의 조건은 다음과 같습니다.

  1. 테스트는 개발 사이클 내에 통합되어야 한다.
    즉, 빌드 시스템 내에 포함되어 있어야 합니다.
  2. 코드베이스에서 가장 중요한 부분들을 목표로 삼아야 한다.
    언급했듯, 테스트는 비용이 듭니다. 그렇기 때문에, 비즈니스 로직을 담당하는 domain model 을 다른 레이어와 분리하고, 이 domain model 을 테스트하는 유닛 테스트를 중점적으로 작성하는 것을 목표로 삼아야 합니다.
  3. 유지보수 비용 대비 최대한의 가치를 뽑아낼 수 있어야 한다.
    유의미하고 중요한 테스트만 진행해야 한다는 의미입니다.

어떻게 테스트의 목표를 달성하는 좋은 유닛 테스트를 작성할 수 있을지는 이 책을 읽어가며 공부하고 이어서 정리하도록 하겠습니다. 😀

Comments