테스트 주도 개발(Test Driven Development, TDD)
테스트가 기능의 디자인을 주도하는 반복적인 개발 방법론


기존 VS TDD 프로세스
- 설계 → 개발 → 테스트로 이어지던 기존의 개발 프로세스를
설계 → 테스트 → 개발의 프로세스로 변경 - 버그 조기 발견 및 해결 가능, 변경 점에 따라 테스트를 진행해야 하는 상황에 대한 부담 축소
테스트의 종류
단위 테스트
검증이 필요한 코드에 대해 테스트 케이스를 작성하는 절차 혹은 프로세스
하나의 메서드가 잘 작동함은 보장할 수 있지만 그들이 결합하는 시점에서도 잘 작동하는지에 대해서는 보장할 수 없음
통합 테스트
모듈을 통합하는 과정에서 모듈 간 호환성의 문제를 찾아내기 위해 수행되는 테스트
단위 테스트에서 찾지 못하는 통합 시 발생하는 버그 등을 찾을 수 있음

E2E 테스트 (End To End Test)
전체 시스템이 제대로 동작하는지 확인하기 위한 테스트
사용자의 입장에서 사용자가 사용하는 상황을 가정하고 시뮬레이션을 진행
특징
- 실제 상황에서 발생할 수 있는 에러를 사전에 발견할 수 있음
- 테스트 작성 시 들어가는 비용이 큼
- 수행 속도가 느림
- "실패했다"라는 결과만 있기 때문에 피드백의 질이 낮음
E2E 테스트 시 사용하는 도구
- Cypress
- Nightwatch
- TestCafe

'TIL' 카테고리의 다른 글
Infrastructure as Code [Terraform] (0) | 2023.05.16 |
---|---|
TIL_GitHub Action (0) | 2023.04.20 |
TIL_빌드 Build 프레임워크 Framework (0) | 2023.04.20 |
0420_TIL_CI/CD (0) | 2023.04.20 |
ifconfig (0) | 2023.04.07 |