Unit Test : 무엇인가? 그리고 왜?

Yong·2022년 5월 23일
0

Unit Test는 자동화 테스트 방법 중 하나이다.

Unit 이란?

App을 만드는데 필요한 기본 구성 요소이다. 이상적으로 가장 작은 단위의 기본 구성요소를 말한다. 예를 들면, function, class, component등 이다.
이러한 Unit들을 합쳐서 Application을 만들게 된다.

즉, 'App = Unit들의 조합' 이다. 만약 모든 unit들이 테스트를 마치면 App은 동작하게된다. (integration tests에 의해서 테스트된다) App의 코드가 변경되게 되면 테스트를 다시 진행하게되고 이 때 버그를 발견하기 쉽다.

왜 Unit Testing을 하는가?

첫번째, 수동으로 테스트 하는 양을 줄일 수 있다. 왜냐하면 코드를 변경하면 언제든지 실행할 수 있는 사전에 정의된 Unit Test코드가 있기 때문이다. 그러므로 우리는 쉽게 전체 코드를 테스트할 수 있게 되고 테스팅을 자동화할 수 있게 된다.

두번째, 전체 코드와 시나리오를 커버할 수 있게 된다. Unit이 많은만큼 Unit Test를 추가할 수 있다. 그러므로 코드가 변경되게 되면 어디에서 버그가 발생했는지 어느 Unit이 다른 Unit에 영향을 끼치는지 쉽게 알 수 있다.

세번째, 클린 코드 & 더 나은 코드를 작성하게 된다. 왜냐하면 테스팅은 메인코드가 깔끔하면 할 수록 쉽기 떄문이다.

다른 종료의 Testing

Integration Test (통합 테스트)

통합 테스트는 App의 Unit들이 잘 합쳐지는지 테스트 하는 것이다. Unit들을 합쳤을때 예상했던대로 동작하는지 테스트한다. Unit들이 각각 테스트가 잘 되었더라도 Unit들을 합쳤을때는 예상과 다르게 동작할 수 있다.

End-to-End (E2E)

E2E test는 종단 간 테스트이다. 사용자의 입장에서 테스트 하는 것. App에서 시나리오대로 잘 동작하는지 기능 테스트를 한다고 보면 된다.

Unit,Integration,E2E를 모두 사용하자.

위에서 말한 테스트 방법을 모두 활용하여 테스트를 진행해야한다. 하지만 무엇이 더 중요하다고는 할 수 없다. 어떤 사람은 E2E Tests가 Unit Tests 보다 더 중요하다고 하는 사람도 있다.

profile
If I can do it, you can do it.

0개의 댓글