[자바] 단위 테스트(unit test) 알아보기

단위 테스트 알아보기


TDD란 Test Driven Development의 약자로 테스트 주도 개발을 말한다.

테스트를 먼저 만들어 이를 통과하기 위한 코드를 짜는 것. 즉, 만드는 과정에서 테스트를 작성하고 그걸 통과하는 것을 만들고 반복하면서 제대로 동작하는 것에 대한 피드백을 받는 것이다.

테스트의 종류로는 단위 테스트와 통합 테스트가 있다.

단위 테스트(Unit Test)

단위 테스트는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 모듈이란 애플리케이션에서 하나의 기능 또는 메서드라고 이해하면 된다.

즉, 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것이다.

통합 테스트(Integration Test)

통합 테스트는 모듈을 통합하는 과정에서 모듈간의 호환성을 확인하기 위해 수행되는 테스트이다. 애플리케이션은 여러 개의 모듈로 구성이 되고, 모듈끼리 메세지를 주고받으며 기능을 수행한다.

즉, 통합 테스트는 모듈들이 올바르게 연계되어 동작하는지를 검증하기 위한 테스트이다.

단위 테스트 작성의 필요성

통합 테스트는 실제 여러 컴포넌트들 간의 상호작용을 테스트하기 때문에 모든 컴포넌트들이 실행된 상태에서 테스트를 하게 된다. 따라서, 시스템을 구성하는 컴포넌트들이 많아질수록 테스트를 하기 위한 비용이 커진다.

반면, 단위 테스트는 특정 부분만 독립적으로 테스트하기 때문에 빠르게 문제 여부를 확인할 수 있다.

  • 테스트에 대한 시간과 비용을 절감할 수 있다.
  • 새로운 기능 추가시에 빠르게 테스트할 수 있다.
  • 리팩토링시에 안정성을 확보할 수 있다.
  • 코드에 대한 문서가 될 수 있다.

테스트 주도 개발(TDD)에서의 테스트도 단위 테스트를 의미한다. 단위 테스트를 통해 테스트 코드를 빠르게 돌리면서 문제를 파악할 수 있다.

좋은 테스트 코드가 되기 위해서는 FIRST라는 규칙을 따라야한다.

1. Fast: 빠르다.
2. Isolated: 고립시킨다.
3. Repeatable: 반복 가능하다.
4. Self-validating: 스스로 검증 가능하다.
5. Timely: 적시에 사용한다.