Unit Test -> Integration Test -> Functional Test or System Test or E2E Test (V 모델 참고)
단위 테스트(Unit Test)
- 가장 적은 테스트 단위. 하나의 독립적인 모듈을 테스트함
- 에) class, function, component, ...
- 각 개발자가 구현한 모듈을 직접 테스트
- 대표적인 단위 테스트 툴 : JavaScript(Karma, Jasmine, Jest, Mocha ...), Java(JUnit), React(react-testing-library)
통합 테스트(Integration Test)
- 단위 테스트를 통과한 모듈을 대상으로 하는 테스트
- 여러 모듈의 상호작용을 확인하기 위한 테스트 (즉, 전체적으로 잘 동작하느지를 확인)
- 단위 테스트만으로는 충분한 테스트라고 하기 어려우며, 단위 테스트가 불가능한 경우도 존재
- 개발자 이외의 제 3자 테스터에 의한 테스트가 이루어질 수도 있음
참고) TDD
- Test Driven Developement. 테스트 주도 개발
- 애자일한 개발 방법론 중 하나
- 개발자는 요구사항을 검증하기 위한 테스트 케이스를 먼저 작성하고, 그 테스트 케이스를 통과하기 위한 코드를 이후에 개발한다.
- 아래 과정을 반복
- 테스트 코드 작성
- 테스트를 통과하도록 (최소한의) 코드 작성
- 코드 리펙토링
- 장점 : 코드의 버그와 오류가 줄어든다. 소스 코드가 간결해진다.
- 단점 : 테스트 코드를 작성하는 시간이 많이 들고, 초기 학습 비용이 필요하다.
'Computer Science > Software Engineering' 카테고리의 다른 글
[Software Engineering] Chapter 10. 코딩 컨벤션 및 네이밍 컨벤션 (0) | 2023.02.25 |
---|---|
[Software Engineering] Chapter 09. 프로세스 - 구현 단계 (0) | 2023.02.23 |
[Software Engineering] Chapter 08. 소프트웨어 개발 프로세스 - 현대적 모델(Agile, 점진적) (0) | 2023.02.23 |
[Software Engineering] Chapter 07. 소프트웨어 개발 프로세스 - 전통적 모델(폭포수, 나선형, V) (0) | 2023.02.23 |
[Software Engineering] Chapter 06. 소프트웨어 개발 프로세스 (0) | 2023.02.23 |
댓글