단위 테스트(Unit Test)

Test / / 2021. 11. 17. 21:21

1. 단위 테스트란?

하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있다.

 

또한 단위 테스트는 테스트 유형에 따라 논리 단위 테스트, 통합 단위 테스트 등으로 나눌 수 있습니다.

  • 논리 단위 테스트 : 한 메서드에 집중한 테스트로 mock이나 stub을 이용해 테스트 메서드의 경계를 제어할 수 있다.
  • 통합 단위 테스트 : 실제 운영 환경(혹은 그 일부)에서 컴포넌트 간 연동에 치중한 테스트, 예를 들어 데이터베이스를 사용하는 코드라면 데이터베이스를 효과적으로 호출하는가를 테스트할 수 있다.

단위 테스트의 경우 보통 해당 코드를 작성한 개발자가 진행한다.

 

 

2. 좋은 단위 테스트 속성(FIRST)

Fast : 테스트 코드 실행이 빨라야한다. 대개 단위 테스트는 내부 코드만 테스트할 시 얼마 걸리지 않지만, 외부 데이터베이스나 다른 자원을 사용할 경우 시간이 더 많이 걸린다. 하나에 평균 200밀리초라면 2500개의 테스트를 수행하는데는 8분 이상이 걸린다.

 

Isolated : 좋은 단위 테스트는 작은 양의 코드 (Unit)에 집중 해야한다. 하나의 테스트가 다른 테스트와 상호 작용하거나 의존할 경우 문제가 발생할 소지가 늘어난다.

 

테스트 대상 코드가 데이터베이스를 읽는 다른 코드와 상호작용할 수 있는데, 데이터 의존성은 많은 문제를 만들기도한다. 대상 데이터가 올바른지도 확인이 필요하며 외부 저장소에 접근성 이슈로 실패할 수도 있다.

 

Repeatabe : 반복 가능한 테스트는 실행할 때 마다 항상 결과가 같아야한다. 어떤 상황에서는 성공하고 어떤 상황에서는 실패하는 테스트 코드를 만들지 않는다.

 

Self-validationg : 테스트는 기대하는 결과가 무엇인지 단언(assert)하지 않으면 올바른 테스트라고 볼 수 없다. System.out.println()으로 결과를 콘솔로 출력하고 내가 비교해보면서 검증하지 말고 JUnit등에서 제공하는 검증 코드를 이용하자

 

Timely :  단위 테스트를 뒤로 미루지 말고 적시(즉시) 작성하자. 단위 테스트는 수행하면 할수록 어느 부분에 테스트가 필요한지 명확해지기 때문에 테스트 대상 코드가 줄어들며 이런 경험이 반복될수록 테스트를 작성하기 쉬워진다. 이런 장점들로 인해서 TDD같은 프로세스가 등장했다.

 

 

 

REFERENCE

https://sabarada.tistory.com/68

 

[Unit-Test] 하고 계신가요? 개발자 단위 테스트

안녕하세요. 많은 개발자들이 중요성은 알지만 하지 않거나 못하는 것이 있습니다. 바로 단위 테스트입니다. 하지 않는 이유로는 많은 이유를 듭니다. 비즈니스 로직에 집중하는 시간도 부족한

sabarada.tistory.com

https://haruhiism.tistory.com/23

 

좋은 단위 테스트의 속성(FIRST)

이전 포스트에서 언급한 JUnit 단위 테스트 도서에서 좋은 단위 테스트가 가져야 할 요건에 대하여 설명하고 있기에 옮겨적어본다. 만약 단위 테스트가 다음 중 하나의 경우라도 해당된다면 이는

haruhiism.tistory.com

https://coding-start.tistory.com/261

 

TDD - 좋은 단위 테스트 작성하는 방법(FIRST 속성)

단위 테스트를 작성하는데 있어서 FIRST 속성을 지킨다면 더 좋은 단위테스트를 작성할 수 있다. 그렇다면 FIRST 속성이란 무엇일까? Fast : 빠른 Isolated : 고립된 Repeatable : 반복 가능한 Self-validating :.

coding-start.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기