단위테스트

책에서 얻을 수 있는 것

  • 테스트에 대한 비용 편익 분석 방법을 배우고 특정 상황에 적절한 테스트 기술을 적용
  • 공통적인 안티 패턴을 피하는 방법
  • 어떤 단위 테스트 기술이 좋은지

단위 테스트의 목표

  • 코드를 단위 테스트하기 어렵다면 코드 개선이 반드시 필요하다.
  • 단위 테스트하기 쉽다고 좋은 코드인 것은 아니다.
  • 지속 가능한 성장을 가능하게 하는 것이 목표.
  • 소프트웨어 엔트로피 : 개발 속도가 빠르게 감소하는 현상
    • 품질을 떨어뜨리는 코드 형태로 나타남.
    • 무언가를 변경시, 지속적인 정리와 리팩터링이 없다면 엔트로피(무질서도)가 증가
  • 코드가 많을 수록 유비지가 많이 듦
    • 적은 코드로 문제를 해결하는 것이 좋음
    • 테스트 코드도 코드임
    • 고품질 테스트에만 집중

커버리지 지표가 괜찮은 부정 지표이지만 좋지 않은 지표다. 코드 커버리지가 높다고해서 좋은 테스트라 볼 수 없다. 커버리지가 너무 적을 때 (ex. 10%)라면 테스트는 충분치 않다는 좋은 증거다. 도메인은 매우 복잡하여, 일반적인 성공 케이스 뿐만 아니라 여러 케이스들이 존재하고 이를 모두 통과하도록 해야한다. 그러나 커버리지에만 집중한 테스트를 작성하면 이런 케이스들을 모두 작성하지 않아도 100%를 쉽게 달성할 수 있어 의미없는 테스트가 된다.

성공적인 테스트 스위트

  • 개발 주기에 통합돼 있음
  • 코드베이스에서 가장 중요한 부분만을 대상으로 함
  • 최소한의 유지비로 최대의 가치를 끌어냄
  • 초점은 도메인 모델에 머물러 있어야 함

results matching ""

    No results matching ""