공통
반드시 필요한 부분에만 테스트를 작성한다.
간단하고 당연한 내용의 테스트는 하지 않는다.
기존에 작성한 테스트도 필요 없다고 생각된다면 삭제한다.
FrontEnd
참고 : FE 테스트 전략
테스트 비용 최소화를 위해 아래 우선순위로 테스트를 수행한다.
Cypress를 이용한 통합 테스트 (feat. E2E 테스트)
유저의 관점에서 테스트를 수행한다.
유저에게 보이는 화면 단위로 테스트한다.
•
ex) “추가” 버튼을 눌렀을 때 내 할 일이 목록에 추가된다.
•
ex) 체크하면 내 할 일이 사라진다.
네트워크 요청과 상태 관리에 대한 모킹에 집중한다.
Jest를 이용한 단위 테스트
유틸성 로직에 대한 테스트를 수행한다.
화면 렌더링과 관련이 없는 유틸성 로직에 대해 테스트한다.
유틸성 로직 = "동일한 입력"에 대해서 "동일한 출력"을 내는 순수 함수
우선순위는 낮추되 필요성을 느끼면 과감하게 수행한다.
BackEnd
Jest를 이용한 통합테스트
API 중점으로 테스트를 진행한다.
모든 API에 대해 테스트를 진행한다.
받은 입력에 대해 올바른 출력을 하는지에 대한 테스트를 수행한다.
k6을 이용해 서버 부하 테스트
사용자가 서비스를 이용할 시나리오 중점으로 테스트를 진행한다.
k6를 이용해 서버에 대용량 트래픽에 대한 부하 테스트를 수행한다.
API 호출부터 assets 다운 시간까지 실제와 가깝게 데스트를 진행한다.