단위 테스트 -> 통합 테스트 -> 기능 테스트 또는 시스템 테스트 또는 E2E 테스트(V 모델 참조)
단위 테스트
- 테스트 단위가 거의 없습니다.
독립 실행형 모듈 테스트- E) 클래스, 함수, 컴포넌트, …
- 개발자가 구현한 각 모듈을 직접 테스트
- 대표적인 단위 테스트 도구: JavaScript(Karma, Jasmine, Jest, Mocha…), Java(JUnit), React(react-testing-library)
통합 테스팅
- 단위 테스트를 통과한 모듈에 대한 테스트
- 여러 모듈이 상호 작용하는 방식을 확인하기 위한 테스트(예: 전체적으로 잘 작동하는지 확인)
- 단위 테스트만으로는 충분하지 않으며 단위 테스트가 불가능한 상황이 있습니다.
- 개발자가 아닌 타사 테스터가 테스트할 수 있습니다.
참고) TDD
- 테스트 기반 개발.테스트 주도 개발
- 애자일 개발 방식 중 하나
- 개발자는 먼저 테스트 케이스를 생성하여 요구 사항을 검증한 다음 테스트 케이스를 통과하는 코드를 개발합니다.
- 아래의 과정을 반복
- 테스트 코드 작성
- 테스트를 통과하기 위한 (최소) 코드 작성
- 리팩토링
- 장점: 코드에 버그와 버그가 적습니다.
소스 코드는 간결합니다. - 단점 : 테스트 코드 작성에 많은 시간이 소요되며, 초기 학습 비용이 많이 든다.