TEST CODE_테스트 커버리지

박민우·2022년 4월 13일
0

모아부자

목록 보기
1/9


TEST CODE

  • 테스트 영역 : Service Logic
  • 테스트 체크 툴 : jacoco
  • 코드 커버리지 : 75% 이상
  • MemberService를 테스트하지 못했다. OAuth2를 사용하면서 카카오 코드를 이용해서 JWT Token을 만드는 과정 등 외부적인 요소가 많다고 판단하여 다른 곳의 테스트 코드를 탄탄하게 가져가고자 했다. MemberService 부분을 제외한다면 훨씬 높은 커버리지를 보인다.
  • jacoco reports를 통해서 확인할 수 있었던 것은 커버리지가 떨어지는 부분들은 예외처리에 관한 부분들이었다. 실 사용에서는 거의 일어나지 않을 오류이지만, 서버를 안전하게 관리하기 위해 현재 사용자를 확인하는 로직들을 테스트코드에서 제외하였더니 커버리지가 떨어지는 부분들이 있었다.

TEST CODE 회고

개인적으로 주특기 마지막 주차 때 테스트코드를 열심히했었다. Github _ TestCode.md
테스트코드는 계속 관심이 자꾸 간다. 이번 프로젝트는 기간이 짧아 TDD는 엄두도 못냈지만 테스트 커버리지만이라도 높이고 싶다는 생각을 했다.
아래 첨부한 영상을 보면서 테스트 커버리지가 높은 것이 주는 코드에 대한 신뢰가 굉장히 매력적으로 느껴졌기 때문이다.

구현하기에도 시간이 빠듯한 것이 사실이었기에, 테스트코드는 배포 후 유저테스트 기간에 작성해서 로직 상에서 놓친 부분이 어디인지 찾고자 하였다.

작은 에러들은 유저들이 서비스를 직접 사용하면서 발견하는 것이 더 빠르다고 느껴지는 경우도 있었지만, 서버에서 에러가 난 것인지 프론트에서 난 것인지 확인하는 것이 쉽지 않았기에 테스트코드는 매우 유용하게 느껴졌다.
테스트코드를 짜기에 늦은 시간 같기도 했지만, 테스트코드를 통해 발견한 오류들 덕분에 아깝지 않은 시간이었다.

우리 팀의 경우 기본 기능이 거의 다 구현된 뒤에 Alarm에 관한 로직을 추가해서 붙였다. 이러한 과정에서 어려웠던 부분은 알람이 어떤 부분에서 보내져야 되고, 자동으로 지워줄 지 등등 고민하는 것과 고민하는 만큼 실제로 구현하는 것이 까다롭게 느껴졌다.
경우의 수가 너무 많았기 때문이다.

여러 경우를 고려하면서 구현하다보니 빈틈이 많았다. 그리고 그 빈틈을 메울 수 있는 것이 테스트코드였다.
테스트코드를 통해 알람이 오고가는 지점들을 더 쉽게 파악할 수 있었다.

테스트 커버리지 100%가 되면 배포하는데 있어서 정말 큰 자신감이 생길 것 같다. 내가 짠 코드에서 오류가 날까 벌벌 떨 일이 없고, 무엇보다 리팩토링하는데 큰 도움이 될 것 같다.

테스트 커버리지 100%는 꼭 도전해봐야겠다.


참고 블로그 : jacoco를 통한 테스트 커버리지 체크
참고 영상 : 토스ㅣSLASH 21 - 테스트 커버리지 100%

profile
KingdomOfGod newPerson = new KingdomOfGod();

0개의 댓글