ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 유닛 테스트(Unit Test) 의 기본 개념
    IT/Unit Test 2020. 9. 10. 18:54

    1. 유닛 테스트란??

     - 소스코드의 특정 모듈이 의도된 대로 정확히 동작하는지 검증하는 절차, 모든 함수에 대한 테스트케이스를 작성한다.

     - 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현 되었는지 확인한다.

     - Unit Test 코드를 먼저 작성하고 그에따라 개발하는 방법 (TDD - Test Driven Development) 기법도 존재한다.

     - 이상적으로, 각 테스트 케이스는 서로 분리되어야 한다.

     

    2. 유닛 테스트의 필요성

     - 전체적인 목적은 버그를 줄이고 코드 퀄리티를 높이기 위해 수행한다.

     - 프로그램을 작은 단위로 쪼개서 정확하게 동작하는지 검사하고, 이를통해 문제 발생시 어느부분이 잘못되었는지 쉽게 알 수 있다.

     - 리팩토링을 진행할 때, 후에도 해당 모듈이 의도대로 작동하고 있음을 확신할 수 있다.

     - 프로그램이 크고, 리소스가 많이 드는 경우 쉽게 로컬 환경에서 코드를 실행시키기 어려운데, 이때 빠른 테스트를 위해 사용한다.

     - 유닛 자체의 불확실 성을 제거 해 주므로, 상향식(bottom up) 테스트 방식에 유용하다. (모듈 통합시 유용하다)

     

    3. 좋은 테스트 작성을 위한 요소

     - 빠르다 : 프로젝트 규모가 커질수록 단위테스트는 많아진다, 이러한 테스트들이 많아지면 전체 테스트코드 수행시간이 상당시간 걸릴 우려가 있다. (수ms의 단위테스트 수천개가 모이면 수min 단위의 단위 테스트를 거쳐야 한다)

     - 고립시킨다 : 은 단위테스트는 검증하려는 작은 양의 코드에 집중한다. 이것은 여기서 말하는 단위(Unit)의 정의와 부합한다. 의존적인 테스트 코드는 예상치 못한 문제를 야기할 수 있다.

     - 반복 가능하다 : 반복 가능한 테스트는 실행할 때 마다 결과가 같아야 한다.(직접 통제할 수 없는 외부 항목들과 격리시켜야 한다.) Mock 객체를 주로 사용한다.

     - 스스로 검증 가능하다 : 테스트 결과를 정확히 하고, 결과를 자동으로 판단할 수 있어야 한다. 테스트의 준비부터  결과까지 수동으로 무언가를 해야한다면, 좋은 테스트가 아니다.

     - 적시에 사용한다 : 테스트 코드 작성을 미룰 수 있지만, 그렇게되면 코드적 결함이 늘어난다. 그때그때 적시 적소에 테스트 코드를 작성하자.

     

    'IT > Unit Test' 카테고리의 다른 글

    Junit Test 에서 Config 클래스의 Bean 생성하기  (0) 2021.05.11
    2. Test Double 의 개념  (0) 2020.09.11
Designed by Tistory.