Test

최대 1 분 소요




테스트 피라미드

마틴파울러의 테스트피라미드는 어플리케이션을 테스트 하는 방법 중 하나로 다양한 종류의
테스트를 적절하게 조합하여 효율적인 테스트를 수행할 수 있도록 도와준다.


단위 테스트

  • 가장 작은 단위인 모듈을 테스트 하는 단계
  • 빠르고 자주 실행할 수 있으며, 주로 개발자들이 로직, 함수등을 검증한다.
  • 어플리케이션의 다른부분과 독립적으로 수행할 수 있어야 한다.
  • 마틴 파울러는 단위 테스트가 테스트 피라미드 중 가장많은 부분을 차지해야 한다고 말한다.
  • 대표적인 도구로 JUnit, Mockito 등이 있다.


  • 코드 품질 개선
    • 작은 단위의 코드블록에 대한 테스트로 버그를 미리 발견할 수 있다.
    • 단위테스트 작성 시 코드를 더 객체지향적으로 작성할 수 있다.
  • 리팩토링의 안전망
    • 리팩토링을 안전하게 수행할 때 중요한 역할을 한다.
  • 개발시간 단축
    • 빠른 실행 시간으로 버그를 빠르게 발견하고 수정할 수 있다.
  • 팀 혐업 개선
    • 팀원들간의 코드통합을 용이하게 만든다.


통합 테스트

  • 여러 모듈이 상호작용하는 시스템을 테스트 하는 단계
  • 단위 테스트보다 더 많은 리소스가 소요된다.


  • 여러 모듈들 간의 상호작용 확인
    • 단위테스트가 개별적인 코드블록을 검증한다면, 통합테스트는 이들의 결합을 테스트한다.
  • 문제발견 가능성 증가
    • 단위테스트에서 발견하지 못한 결합되었을 때의 문제를 발견할 수 있다.


인수 테스트

  • 시스템 전체가 의도한 대로 동작하는지 테스트 하는 단계
  • 사용자 관점에서 기능 및 비기능적 요구사항(성능, 보안)을 검증한다.
  • 테스트 피라미드의 단계 중 가장 많은 리소스가 들어간다.


  • 사용자 관점에서의 검증
    • 사용자가 경험하는것과 동일한 환경에서 검증할 수 있다.
  • 요구사항 충족여부 확인
    • 개발된 기능이 요구사항을 충족하는지 확인한다.









댓글남기기