Testing/Jest

[Test] Testing 종류 : Unit Testing, Integration Testing, End to End Testing

닉네임없음ㅎ 2024. 11. 30. 00:59

애플리케이션 개발에 있어서 테스트는 매우 중요한 역할을 한다.
코드의 품질을 보장하고, 예상치 못한 오류를 사전에 예방하는데 도움을 준다.
테스트를 수행하는 방법에는 여러가지가 있으며, 
그 중 대표적으로 Unit Testing, Integration Testing, End-to-End Testing이 있다.

각 테스트는 목적과 범위가 다르며, 적절하게 조합하여 사용하면 굿 ! 


1. Unit Testing (단위테스트)
- 가장 작은 코드 단위에 초점을 둔다.
함수, 메서드, 클래스를 독립적으로 테스틑 하는 방법으로 유닛테스트의 핵심은
외부 의존성을 제거하고, 테스트 대상의 코드만을 집중적으로 검증하는 것이다 ! 

예를 들어, 
데이터베이스나 외부 api와 같은 의존성을 Mock(가짜 객체)나 Stub(미리 정의된 값)으로 대체하여,
함수가 기대하는대로 동작하는지 확인한다.

단위 테스트는 코드 변경시 버그를 빠르게 발견할 수 있도록 해주며, 
개발 초기 단계에서부터 작성하는 것이 좋다.

유닛테스트의 한계점은 
각 함수가 독립적으로 잘 동작하는지는 확인가능하지만, 전체 시스템의 상호작용을 테스트할 수는 없음 . 


2. Integration Testing (통합테스트)
- 여러 컴포넌트나 모듈이 서로 올바르게 상호작용하는지 확인하는 테스트임. 

예를 들어,
데이터베이스에 데이터를 저장하거나, 다른 API 와 통신하는 경우, 개별적인 기능이 잘 동작한다 하더라도,
이러한 기능들이 결합되었을때 제대로 동작하는지 확인하는것이 중요하다.

실제 환경과 유사한 상태에서의 테스트를 진행하며, 상대적으로 시간이 오래걸린다.


3. End-to-End testing
애플리케이션의 전체 워크플로우가 예상대로 동작하는지 확인하는 테스트.

예를 들어
로그인, 데이터 입력, 결과 확인 등의 과정을 실제 사용자처럼 시뮬레이션하여 
애플리케이션의 전체 흐름이 정상적인지 확인한다.

전체 시스템의 동작을 확인할 수 있기 때문에, 테스트가 실패하면 애플리케이션의 전체적인 문제를 찾을 수 있다.


'Testing > Jest' 카테고리의 다른 글

[Jest] 테스팅도구 - Jest란?  (1) 2024.12.01
[Test] Mock, Stub, Fake : 테스트의 세가지 핵심 개념  (0) 2024.11.28