728x90
테스트란 무엇인가?
제품(함수, 기능, ui, 성능, API 스펙)이 원하는데로 동작하는지 확인하는 것 어떤 플랫폼에서 하는지 어떤 환경에서 하는지에 따라 다양한 테스트가 존재
진행 순서
수행하는 js.code가 있고 이 코드가 제대로 수행하는지 알 수 있는 test 코드를 작성합니다. 이 test코드는 우리가 원하는 epectation(함수, 기능, ui, 성능, API 스펙)의 요구 사항에 맞게 확인할 수 있도록 테스트를 작성한다.
TDD테스트의 장점
- 자동화
- 속도(빠르게)
- 쉽게 작성
- 높은 커버리지
TDD테스트를 하는 이유
- 기능이 정상 동작
- 요구 사항 만족
- 이슈에 대해 예측
- 버그를 빠르게 발견
- 자신감 있게 리팩토링
- 손쉬운 유지 보수
- 코드의 품질 향상
- 코드간 의존성을 낮춤
- 좋은 문서화
- 시간을 절약
테스트 피라미드
테스트에는 피라미드가 있는데 가장 낮은 단계에는 unit test 그 다음으로 intergration Test 꼭대기에는 E2E Test가 있습니다.
E2E Test 통합 테스트(UI 테스트, 사용자 테스트)
intergration Test 통합 테스트(모듈들, 클래스들)
unit test(함수, 모듈, 클래스)
장점
즉각적인 피드백이 가능함
심플하기 때문에 속도가 빠름
유닛테스트만 구성하면 안된다.
그 이유는 자동차의 바퀴만 잘 굴러간다고 해서 자동차가 정상 작동할지는 아무도 모르기 때문
CI(Continuous Intergration) / CD(Continuous Delivery || Continuous Deployment)
어플리케이션 개발 단계부터 배포 때까지 이 모든 단계들을 자동화를 통해서 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것
CI(Continuous Intergration) 지속적인 통합
버그 수정이나 새로운 기능들이 main Repository에 주기적으로 test가 되어서 merge되는 것을 말함
Point
- 코드 변경사항을 주기적으로 빈번하게 merge해야한다.
- 통합을 위한 단계(빌드, 테스트, 머지)의 자동화
CD(Continuous Delivery || Continuous Deployment)
최종적으로 사용자에게 배포해도 되겠다 라고 결정이 되고 수동적으로 배포하면 Continuous Delivery 자동의 배포하면 Continuous Deployment라고 한다.
728x90