회의 안건
- 단위테스트, 통합테스트, 성능테스트, 부하테스트 학습 및 논의(미완)
- 상품 재고 소모시에 스케쥴러를 이용해서 재고 늘려주기 (미완)
- 2주차 단위, 통합 이용해서 테스트 커버리지 채워보기(미완)
- 김태현 멘토님 질문 준비
오늘의 목표
- 오전 시간 : 질문준비
- 오후 시간 : Unit Test 작성법 학습 및 View Page 초안 구현
- 저녁 시간 : 정리 및 멘토님 질의응답 시간
테스트 툴
- 프로젝트에 적합한 테스트 툴
- 단위 테스트
- Junit5 : Java 프로그래밍 언어에 사용되는 테스트 도구. 데이터를 테스트 한 다음 코드에 삽입
TestNG : 종속성이 있는 복잡한 테스트에 적합하다
- Mockito : 제일 쉬운 mocking
JMockit : 오픈 소스 단위 테스트 도구. 기록 및 검증 구문으로 API를 Mocking 할 수 있음
NUnit : 모든 .net 언어에 널리 사용되는 단위 테스트 프레임 워크. 병렬로 실행할 수 있는 데이터 중심 테스트 지원
EMMA : 코드 분석 오픈 소스 툴 킷. JAVA 기반 이므로 외부 라이브러리 종속성이 없으며 소스 코드에 액세스 할 수 있음
- 통합 테스트 : Junit5
- 성능 테스트 : Jmeter,
- 부하 테스트 : Jmeter, ngrinder
- 프로젝트에 적합한 모니터링 툴
- Spring Actuator + Prometheus(수집 및 통합) + Grafana(시각화)
- CloudWatch
- Jmeter + PinPoint :
- Logstash + Kibana :
- 테스트 툴 지원 가능한 기능
- 시나리오 기반의 테스트가 가능해야 합니다.
- 동시 접속자 수, 요청 간격, 최대 Throughput 등 부하를 조정할 수 있어야 합니다.
- 부하 테스트 서버 스케일 아웃을 지원하는 등 충분한 부하를 줄 수 있어야 합니다.
최종 테스트 툴
- SpringBoot, JUnit5, Mockito
- ELK