1. 유닛 테스트(Unit Test) == 단위 테스트
- 하나의 *모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
👉🏻 메서드 같이 작은 단위를 테스트, 하나의 모듈을 기준으로 진행된다는 것은 하나의 클래스를 기준으로 독립적으로 진행할 수 있게하면 유닛 테스트로 볼 수 있는 거겠지?
모듈(module): 프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위
특징
- 테스트 중심 개발(TDD) 시 작성하게 되는 테스트 코드가 유닛 테스트(=단위 테스트)
강점
- 어디에서 문제가 발생했는지 빨리 파악할 수 있어 디버깅 시간을 단축시켜줌
- 일부 의존 대상은 스텁이나 모의객체 등을 이용해서 대역으로 테스트함
2. 통합 테스트(Intergaration Test)
- 단위 테스트가 끝나고 그 하나하나를 결합해 가며 테스트 하는 방법
- 단위 테스트와 달리 외부 라이브러리 사용한 경우 등 개발자가 변경할 수 없는 부분까지 묶어 검증할 때 사용
👉🏻 DB, 의존하고 있는 라이브러리 등을 사용했을 때 그 것들과의 상호작용을 테스트 하는것
강점
- 시스템 내부 구성 요소에 대한 테스트 가능
약점
- 많은 코드를 테스트하기 때문에 신뢰성이 떨어질 수 있고 어디에서 문제가 발생했는지 찾기 어려움
3. 기능 테스트(Fuctional Test) == E2E(End To End) 테스트
- 사용자 입장에서 사용자가 사용하는 상황을 가정하고 테스트하는 것
- 웹이나 어플 등에서 GUI를 통해 시나리오 , 기능 테스트 등을 수행
- 사용자에게 직접적으로 노출되는 부분 점검
- 수행 시 시스템을 구동하고 사용하는데 필요한 모든 구성 요소가 필요(웹 서버, 데이터베이스, 웹브라우저 등)
'Spring > Test' 카테고리의 다른 글
📝 테스트 코드 작성의 장/단점과 테스트 범위에 따른 분류 (0) | 2022.11.18 |
---|---|
테스트 코드와 제이유닛(JUnit) (0) | 2022.11.16 |
Mock object를 이용한 단위 테스트 (0) | 2022.11.15 |
TDD (Test-Driven Development) 테스트 주도 개발 (0) | 2022.11.15 |
Edge 케이스를 고려한 단위 테스트 (0) | 2022.11.15 |