테스트?
- 제품이 예상하는 대로 동작하는지 확인
- 제품 or 서비스의 품질을 확인
- 소프트웨어의 버그를 찾음
- 개발하면서 테스트를 작성(자동화)하는 방식으로 변화해 옴.
- QA 팀은 여전히 있음. 사용자 입장에서의 테스트 필요.
- 자신감 있게 기능 구현 & 리팩터링할 수 있다.
테스트 피라미드
Unit Test
단위 테스트.
독립적인 하나의 컴포넌트(함수, 모듈, 클래스 등)를 테스트
상호작용X
작성하기 쉽고 빠르며, 자동화가 쉽고, 비용이 거의 들지 않는다.
Integration Test
통합 테스트.
여러 단위들(모듈들, 클래스들 등)의 상호작용을 테스트
E2E(end-to-end) Test
UI 테스트 or 사용자 테스트.
제품을 사용할 때의 Flow를 테스트
작성하기 어렵고 느리며, 자동화가 어렵고, 비용이 많이 든다.
Unit => E2E 순서로 비용이 많이 든다.
그 외에도 Contract Test, A/B Test, Stress Test 등이 존재한다.