테스트란?
- 소프트웨어의 품질을 확인, 버그 찾기
- 제품이 예상하는 대로 동작하는지 확인
- 검증하고자 하는 목표에 따라 다양한 테스트가 존재함
언제 테스트를 해야하나?
- 이전 QA가 수동으로 테스트하는 방식은 비용이 많이 든다. → 병목현상
- 자동화된 테스트의 필요성
- 개발단계에서 테스트를 작성함으로 속도 상승, 비교적 쉽게 테스트, 높은 커버리지
테스트를 작성의 장점
- 자신감
- 이슈에 대한 예측
- 기능이 정상 동작
- 버그를 빨게 발견
- 코드 품질 향상
- 코드간 의존성 낮춤
- 좋은 문서화
테스트 피라미드
- 유닛테스트 → 통합테스트 → E2E 테스트
- 유닛테스트 (단위테스트)
- 함수, 모듈, 클래스단위
- 통합테스트
- 여러개의 단위를을 묶어 상호작용 테스트
- E2E
- ui 테스트, 사용자 테스트
테스트 비용
- 비용 코스트
- E2E > 통합 > 유닛
- 테스트 실행 속도
- 유닛 > 통합 > E2E
- 결론
- 유닛 > 통합 > E2E 비중으로 테스트를 작성하자
TDD
- 테스트 주도 개발
- 개발 전에 테스트를 먼저 작성하는 방법론
- 테스트 작성 → 실패 (레드) → 리팩토링 → 성공
- 장점
- 요구사항 분석 및 이해, 설계가 선행됨
- 사용자 입장에서 코드를 작성
- 구현 보다 인터페이스를 기준으로 코드를 작성하므로 퀄리티 향상
- 시스템 전반적인 설계 향상
- 개발 집중력 향상
TDD 모든 개발자가 해야하나?
- TDD는 자유, 테스트는 짜야함
- UI 보단 비즈니스 로직 위주
ci/cd에서 테스트
Loading Comments...